<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module ranger.gui.displayable</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.displayable</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/code/ranger/ranger/gui/displayable.py">/home/hut/code/ranger/ranger/gui/displayable.py</a></font></td></tr></table>
<p><tt># Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com><br>
#<br>
# This program is free software: you can redistribute it and/or modify<br>
# it under the terms of the GNU General Public License as published by<br>
# the Free Software Foundation, either version 3 of the License, or<br>
# (at your option) any later version.<br>
#<br>
# This program is distributed in the hope that it will be useful,<br>
# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
# GNU General Public License for more details.<br>
#<br>
# You should have received a copy of the GNU General Public License<br>
# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="_curses.html">_curses</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
</font></dt></dl>
</dd>
</dl>
</dd>
<dt><font face="helvetica, arial"><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
</font></dt></dl>
</dd>
</dl>
</dd>
<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
</font></dt></dl>
</dd>
</dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="Displayable">class <strong>Displayable</strong></a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Displayables are objects which are displayed on the screen.<br>
<br>
This is just the abstract class, defining basic operations<br>
such as resizing, printing, changing colors.<br>
Subclasses of displayable can extend these methods:<br>
<br>
<a href="#Displayable-draw">draw</a>() -- draw the object. Is only called if visible.<br>
<a href="#Displayable-poke">poke</a>() -- is called just before <a href="#Displayable-draw">draw</a>(), even if not visible.<br>
<a href="#Displayable-finalize">finalize</a>() -- called after all objects finished drawing.<br>
<a href="#Displayable-click">click</a>(event) -- called with a MouseEvent. This is called on all<br>
visible objects under the mouse, until one returns True.<br>
<a href="#Displayable-press">press</a>(key) -- called after a key press on focused objects.<br>
<a href="#Displayable-destroy">destroy</a>() -- called before destroying the displayable object<br>
<br>
Additionally, there are these methods:<br>
<br>
<a href="#Displayable-__contains__">__contains__</a>(item) -- is the item (y, x) inside the widget?<br>
<br>
These attributes are set:<br>
<br>
Modifiable:<br>
focused -- Focused objects receive <a href="#Displayable-press">press</a>() calls.<br>
visible -- Visible objects receive <a href="#Displayable-draw">draw</a>() and <a href="#Displayable-finalize">finalize</a>() calls<br>
need_redraw -- Should the widget be redrawn? This variable may<br>
be set at various places in the script and should eventually be<br>
handled (and unset) in the <a href="#Displayable-draw">draw</a>() method.<br>
<br>
Read-Only: (i.e. reccomended not to change manually)<br>
win -- the own curses window object<br>
parent -- the parent (<a href="#DisplayableContainer">DisplayableContainer</a>) object or None<br>
x, y, wid, hei -- absolute coordinates and boundaries<br>
settings, fm, env -- inherited shared variables<br> </tt></td></tr>
<tr><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="ranger.gui.displayable.html#Displayable">Displayable</a></dd>
<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="Displayable-__bool__"><strong>__bool__</strong></a> = <a href="#Displayable-__nonzero__">__nonzero__</a>(self)</dt></dl>
<dl><dt><a name="Displayable-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
<dl><dt><a name="Displayable-__init__"><strong>__init__</strong></a>(self, win, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>, settings<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="Displayable-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always True</tt></dd></dl>
<dl><dt><a name="Displayable-__str__"><strong>__str__</strong></a>(self)</dt></dl>
<dl><dt><a name="Displayable-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called when a mouse key is pressed and self.<strong>focused</strong> is True.<br>
Override this!</tt></dd></dl>
<dl><dt><a name="Displayable-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test whether the point (with absolute coordinates) lies<br>
within the boundaries of this object.</tt></dd></dl>
<dl><dt><a name="Displayable-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called when the object is destroyed.<br>
Override this!</tt></dd></dl>
<dl><dt><a name="Displayable-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw the object. Called on every main iteration if visible.<br>
Containers should call <a href="#Displayable-draw">draw</a>() on their contained objects here.<br>
Override this!</tt></dd></dl>
<dl><dt><a name="Displayable-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called after every displayable is done drawing.<br>
Override this!</tt></dd></dl>
<dl><dt><a name="Displayable-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called before drawing, even if invisible</tt></dd></dl>
<dl><dt><a name="Displayable-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called when a key is pressed and self.<strong>focused</strong> is True.<br>
Override this!</tt></dd></dl>
<dl><dt><a name="Displayable-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize the widget</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
<dl><dt><strong>env</strong> = None</dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
<dl><dt><strong>fm</strong> = None</dl>
<hr>
Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
<dl><dt><a name="Displayable-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
<dl><dt><a name="Displayable-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
<dl><dt><a name="Displayable-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change the colors from now on.</tt></dd></dl>
<dl><dt><a name="Displayable-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change the colors at the specified position</tt></dd></dl>
<dl><dt><a name="Displayable-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change the colors to the default colors</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="DisplayableContainer">class <strong>DisplayableContainer</strong></a>(<a href="ranger.gui.displayable.html#Displayable">Displayable</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>DisplayableContainers are Displayables which contain other Displayables.<br>
<br>
This is also an abstract class. The methods draw, poke, finalize,<br>
click, press and destroy are extended here and will recursively<br>
call the function on all contained objects.<br>
<br>
New methods:<br>
<br>
<a href="#DisplayableContainer-add_child">add_child</a>(object) -- add the object to the container.<br>
<a href="#DisplayableContainer-remove_child">remove_child</a>(object) -- remove the object from the container.<br>
<br>
New attributes:<br>
<br>
container -- a list with all contained objects (rw)<br> </tt></td></tr>
<tr><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a></dd>
<dd><a href="ranger.gui.displayable.html#Displayable">Displayable</a></dd>
<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="DisplayableContainer-__init__"><strong>__init__</strong></a>(self, win, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>, settings<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="DisplayableContainer-add_child"><strong>add_child</strong></a>(self, obj)</dt><dd><tt>Add the objects to the container.</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Recursively called on objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Recursively called on objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Recursively called on visible objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Recursively called on visible objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Recursively called on objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Recursively called on objects in container</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-remove_child"><strong>remove_child</strong></a>(self, obj)</dt><dd><tt>Remove the object from the container.</tt></dd></dl>
<hr>
Methods inherited from <a href="ranger.gui.displayable.html#Displayable">Displayable</a>:<br>
<dl><dt><a name="DisplayableContainer-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always True</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is item inside the boundaries?<br>
item can be an iterable like [y, x] or an object with x and y methods.</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always True</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-__str__"><strong>__str__</strong></a>(self)</dt></dl>
<dl><dt><a name="DisplayableContainer-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test whether the point (with absolute coordinates) lies<br>
within the boundaries of this object.</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize the widget</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
<dl><dt><strong>env</strong> = None</dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
<dl><dt><strong>fm</strong> = None</dl>
<hr>
Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
<dl><dt><a name="DisplayableContainer-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
<dl><dt><a name="DisplayableContainer-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
<dl><dt><a name="DisplayableContainer-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change the colors from now on.</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change the colors at the specified position</tt></dd></dl>
<dl><dt><a name="DisplayableContainer-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change the colors to the default colors</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
<dl><dt><strong>settings</strong> = {}</dl>
</td></tr></table></td></tr></table>
</body></html>