summary refs log tree commit diff stats
path: root/doc/pydoc/ranger.gui.widgets.html
blob: beb6ab60465192af42335a5f7dee6ca19fdd5e8f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: package ranger.gui.widgets</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>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<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>.widgets</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/work/ranger/ranger/gui/widgets/__init__.py">/home/hut/work/ranger/ranger/gui/widgets/__init__.py</a></font></td></tr></table>
    <p><tt>#&nbsp;Copyright&nbsp;(c)&nbsp;2009,&nbsp;2010&nbsp;hut&nbsp;&lt;hut@lavabit.com&gt;<br>
#<br>
#&nbsp;Permission&nbsp;to&nbsp;use,&nbsp;copy,&nbsp;modify,&nbsp;and/or&nbsp;distribute&nbsp;this&nbsp;software&nbsp;for&nbsp;any<br>
#&nbsp;purpose&nbsp;with&nbsp;or&nbsp;without&nbsp;fee&nbsp;is&nbsp;hereby&nbsp;granted,&nbsp;provided&nbsp;that&nbsp;the&nbsp;above<br>
#&nbsp;copyright&nbsp;notice&nbsp;and&nbsp;this&nbsp;permission&nbsp;notice&nbsp;appear&nbsp;in&nbsp;all&nbsp;copies.<br
p;nbsp;IS"&nbsp;AND&nbsp;THE&nbsp;AUTHOR&nbsp;DISCLAIMS&nbsp;ALL&nbsp;WARRANTIES<br> #&nbsp;WITH&nbsp;REGARD&nbsp;TO&nbsp;THIS&nbsp;SOFTWARE&nbsp;INCLUDING&nbsp;ALL&nbsp;IMPLIED&nbsp;WARRANTIES&nbsp;OF<br> #&nbsp;MERCHANTABILITY&nbsp;AND&nbsp;FITNESS.&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE&nbsp;AUTHOR&nbsp;BE&nbsp;LIABLE&nbsp;FOR<br> #&nbsp;ANY&nbsp;SPECIAL,&nbsp;DIRECT,&nbsp;INDIRECT,&nbsp;OR&nbsp;CONSEQUENTIAL&nbsp;DAMAGES&nbsp;OR&nbsp;ANY&nbsp;DAMAGES<br> #&nbsp;WHATSOEVER&nbsp;RESULTING&nbsp;FROM&nbsp;LOSS&nbsp;OF&nbsp;USE,&nbsp;DATA&nbsp;OR&nbsp;PROFITS,&nbsp;WHETHER&nbsp;IN&nbsp;AN<br> #&nbsp;ACTION&nbsp;OF&nbsp;CONTRACT,&nbsp;NEGLIGENCE&nbsp;OR&nbsp;OTHER&nbsp;TORTIOUS&nbsp;ACTION,&nbsp;ARISING&nbsp;OUT&nbsp;OF<br> #&nbsp;OR&nbsp;IN&nbsp;CONNECTION&nbsp;WITH&nbsp;THE&nbsp;USE&nbsp;OR&nbsp;PERFORMANCE&nbsp;OF&nbsp;THIS&nbsp;SOFTWARE.</tt></p> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#aa55cc"> <td colspan=3 valign=bottom>&nbsp;<br> <font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr> <tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td> <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.widgets.browsercolumn.html">browsercolumn</a><br> <a href="ranger.gui.widgets.browserview.html">browserview</a><br> </td><td width="25%" valign=top><a href="ranger.gui.widgets.console.html">console</a><br> <a href="ranger.gui.widgets.console_mode.html">console_mode</a><br> </td><td width="25%" valign=top><a href="ranger.gui.widgets.pager.html">pager</a><br> <a href="ranger.gui.widgets.statusbar.html">statusbar</a><br> </td><td width="25%" valign=top><a href="ranger.gui.widgets.taskview.html">taskview</a><br> <a href="ranger.gui.widgets.titlebar.html">titlebar</a><br> </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>&nbsp;<br> <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td> <td width="100%"><dl> <dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">ranger.gui.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.widgets.html#Widget">Widget</a> </font></dt></dl> </dd> </dl> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom>&nbsp;<br> <font color="#000000" face="helvetica, arial"><a name="Widget">class <strong>Widget</strong></a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)</font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td> <td colspan=2><tt>The&nbsp;<a href="#Widget">Widget</a>&nbsp;class&nbsp;defines&nbsp;no&nbsp;methods&nbsp;and&nbsp;only&nbsp;exists&nbsp;for<br> classification&nbsp;of&nbsp;widgets.<br>&nbsp;</tt></td></tr> <tr><td>&nbsp;</td> <td width="100%"><dl><dt>Method resolution order:</dt> <dd><a href="ranger.gui.widgets.html#Widget">Widget</a></dd> <dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.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 inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br> <dl><dt><a name="Widget-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br> item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl> <dl><dt><a name="Widget-__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="Widget-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl> <dl><dt><a name="Widget-__str__"><strong>__str__</strong></a>(self)</dt></dl> <dl><dt><a name="Widget-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br> Override&nbsp;this!</tt></dd></dl> <dl><dt><a name="Widget-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br> within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl> <dl><dt><a name="Widget-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br> Override&nbsp;this!</tt></dd></dl> <dl><dt><a name="Widget-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;the&nbsp;object.&nbsp;Called&nbsp;on&nbsp;every&nbsp;main&nbsp;iteration&nbsp;if&nbsp;visible.<br> Containers&nbsp;should&nbsp;call&nbsp;<a href="#Widget-draw">draw</a>()&nbsp;on&nbsp;their&nbsp;contained&nbsp;objects&nbsp;here.<br> Override&nbsp;this!</tt></dd></dl> <dl><dt><a name="Widget-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br> Override&nbsp;this!</tt></dd></dl> <dl><dt><a name="Widget-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl> <dl><dt><a name="Widget-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br> Override&nbsp;this!</tt></dd></dl> <dl><dt><a name="Widget-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;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&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;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="Widget-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl> <dl><dt><a name="Widget-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl> <dl><dt><a name="Widget-color"><strong>color</strong></a>(self, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl> <dl><dt><a name="Widget-color_at"><strong>color_at</strong></a>(self, y, x, wid, keylist<font color="#909090">=None</font>, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl> <dl><dt><a name="Widget-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;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> = &lt;ranger.ext.openstruct.OpenStruct object at 0x7f6a9067fbd0&gt;</dl> </td></tr></table></td></tr></table> </body></html> ; PContact james = list->data; assert_is_null(p_contact_status(james)); } static void update_show(void) { contact_list_add("James", "away", NULL); contact_list_add("James", "dnd", NULL); GSList *list = get_contact_list(); assert_int_equals(1, g_slist_length(list)); PContact james = list->data; assert_string_equals("James", p_contact_name(james)); assert_string_equals("dnd", p_contact_show(james)); } static void set_show_to_null(void) { contact_list_add("James", "away", NULL); contact_list_add("James", NULL, NULL); GSList *list = get_contact_list(); assert_int_equals(1, g_slist_length(list)); PContact james = list->data; assert_string_equals("James", p_contact_name(james)); assert_string_equals("online", p_contact_show(james)); } static void update_status(void) { contact_list_add("James", NULL, "I'm not here right now"); contact_list_add("James", NULL, "Gone to lunch"); GSList *list = get_contact_list(); assert_int_equals(1, g_slist_length(list)); PContact james = list->data; assert_string_equals("James", p_contact_name(james)); assert_string_equals("Gone to lunch", p_contact_status(james)); } static void set_status_to_null(void) { contact_list_add("James", NULL, "Gone to lunch"); contact_list_add("James", NULL, NULL); GSList *list = get_contact_list(); assert_int_equals(1, g_slist_length(list)); PContact james = list->data; assert_string_equals("James", p_contact_name(james)); assert_is_null(p_contact_status(james)); } static void find_first_exists(void) { contact_list_add("James", NULL, NULL); contact_list_add("Dave", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *search = (char *) malloc(2 * sizeof(char)); strcpy(search, "B"); char *result = find_contact(search); assert_string_equals("Bob", result); free(result); free(search); } static void find_second_exists(void) { contact_list_add("James", NULL, NULL); contact_list_add("Dave", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *result = find_contact("Dav"); assert_string_equals("Dave", result); free(result); } static void find_third_exists(void) { contact_list_add("James", NULL, NULL); contact_list_add("Dave", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *result = find_contact("Ja"); assert_string_equals("James", result); free(result); } static void find_returns_null(void) { contact_list_add("James", NULL, NULL); contact_list_add("Dave", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *result = find_contact("Mike"); assert_is_null(result); } static void find_on_empty_returns_null(void) { char *result = find_contact("James"); assert_is_null(result); } static void find_twice_returns_second_when_two_match(void) { contact_list_add("James", NULL, NULL); contact_list_add("Jamie", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *result1 = find_contact("Jam"); char *result2 = find_contact(result1); assert_string_equals("Jamie", result2); free(result1); free(result2); } static void find_five_times_finds_fifth(void) { contact_list_add("Jama", NULL, NULL); contact_list_add("Jamb", NULL, NULL); contact_list_add("Mike", NULL, NULL); contact_list_add("Dave", NULL, NULL); contact_list_add("Jamm", NULL, NULL); contact_list_add("Jamn", NULL, NULL); contact_list_add("Matt", NULL, NULL); contact_list_add("Jamo", NULL, NULL); contact_list_add("Jamy", NULL, NULL); contact_list_add("Jamz", NULL, NULL); char *result1 = find_contact("Jam"); char *result2 = find_contact(result1); char *result3 = find_contact(result2); char *result4 = find_contact(result3); char *result5 = find_contact(result4); assert_string_equals("Jamo", result5); free(result1); free(result2); free(result3); free(result4); free(result5); } static void find_twice_returns_first_when_two_match_and_reset(void) { contact_list_add("James", NULL, NULL); contact_list_add("Jamie", NULL, NULL); contact_list_add("Bob", NULL, NULL); char *result1 = find_contact("Jam"); reset_search_attempts(); char *result2 = find_contact(result1); assert_string_equals("James", result2); free(result1); free(result2); } static void removed_contact_not_in_search(void) { contact_list_add("Jamatron", NULL, NULL); contact_list_add("Bob", NULL, NULL); contact_list_add("Jambo", NULL, NULL); contact_list_add("James", NULL, NULL); contact_list_add("Jamie", NULL, NULL); char *result1 = find_contact("Jam"); // Jamatron char *result2 = find_contact(result1); // Jambo contact_list_remove("James"); char *result3 = find_contact(result2); assert_string_equals("Jamie", result3); free(result1); free(result2); free(result3); } void register_contact_list_tests(void) { TEST_MODULE("contact_list tests"); BEFORETEST(beforetest); AFTERTEST(aftertest); TEST(empty_list_when_none_added); TEST(contains_one_element); TEST(first_element_correct); TEST(contains_two_elements); TEST(first_and_second_elements_correct); TEST(contains_three_elements); TEST(first_three_elements_correct); TEST(add_twice_at_beginning_adds_once); TEST(add_twice_in_middle_adds_once); TEST(add_twice_at_end_adds_once); TEST(remove_when_none_does_nothing); TEST(remove_when_one_removes); TEST(remove_first_when_two); TEST(remove_second_when_two); TEST(remove_first_when_three); TEST(remove_second_when_three); TEST(remove_third_when_three); TEST(test_show_when_value); TEST(test_show_online_when_no_value); TEST(test_show_online_when_empty_string); TEST(test_status_when_value); TEST(test_status_when_no_value); TEST(update_show); TEST(set_show_to_null); TEST(update_status); TEST(set_status_to_null); TEST(find_first_exists); TEST(find_second_exists); TEST(find_third_exists); TEST(find_returns_null); TEST(find_on_empty_returns_null); TEST(find_twice_returns_second_when_two_match); TEST(find_twice_returns_first_when_two_match_and_reset); TEST(removed_contact_not_in_search); TEST(find_five_times_finds_fifth); }