All pastes #264573 Raw Edit

foo

public text v1 · immutable
·published 2006-12-02 15:26 UTC
rendered paste body

\documentclass[draft,10pt]{book}

\usepackage{listings}
\usepackage{times}
\lstset{language=Python}

\title{urwid: A Wrapper to Python Curses Zen}

\begin{document}

\chapter{Concepts}

\section{Flow Widgets vs. Box Widgets}

Flow widgets can fill multiple rows depending on the number of columns available to them. When calling the render() function for a flow widget, the first parameter is a one-element tuple (columns,).

\begin{enumerate}
\item Text widget
\item Edit widget (which is based on a Text widget)
\end{enumerate}

A box widget has fixed dimensions, i.e. fixed rows and fixed columns. When one calls the render() function of a box widget, the first parameter is a two-element tuple (columns, rows). Examples of box widgets are:

\begin{enumerate}
\item Filler widgets
\item ListBox widgets
\end{enumerate}

\section{Atribute Wrappers}

Attribute wrappers take widgets as input and applies formatting attributes such as color or alignment. It is a decorator.

\section{Frame widgets}

A frame widget provides what in X window terms we would call window decorations; a frame around a certain widget.

\section{Working with Listboxes}

A listbox is a box widget, unsurprisingly. It takes a list of widgets as input, which populate the ListBox. To take an example:

\begin{lstlisting}
# three Text objects (flow widgets, remember?)
foo = urwid.Text("Hello, world!")
bar = urwid.Text("Hej, verden!")
zot = urwid.Text("Buon goirno, mondo!")

# Now, we stick them into a predictably named list (just a regular python list, nothing urwid-ic)
widgetList = (foo, bar, zot)

ourAmazingListbox = urwid.ListBox(widgetList)
\end{lstlisting}

\chapter{Edit widgets}

Edit widgets are little gizmos you can use for when the user needs to enter information.

\chapter{Three}

\chapter{Four}

\chapter{Five}

\chapter{Six}

\chapter{Seven}

\chapter{Eight}

\chapter{Nine}

\chapter{Ten}


\end{document}