nobody at rubyforge.org
2007-Apr-02  19:13 UTC
[Wxruby-development] [940] trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb: Align #traverse usage with #each in enumerable_controls.rb
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type"
content="text/html; charset=utf-8" /><style
type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:'':'';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family:
verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;
font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding:
6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid;
padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family:
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch
.binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[940] trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb: Align
#traverse usage with #each in enumerable_controls.rb</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd>940</dd>
<dt>Author</dt> <dd>brokentoy</dd>
<dt>Date</dt> <dd>2007-04-02 15:13:44 -0400 (Mon, 02 Apr
2007)</dd>
</dl>
<h3>Log Message</h3>
<pre>Align #traverse usage with #each in
enumerable_controls.rb</pre>
<h3>Modified Paths</h3>
<ul>
<li><a
href="#trunkwxsugarlibwx_sugarwx_classestreectrlrb">trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwxsugarlibwx_sugarwx_classestreectrlrb"></a>
<div class="modfile"><h4>Modified:
trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb (939 => 940)</h4>
<pre class="diff"><span>
<span class="info">---
trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb        2007-04-02
18:55:19 UTC (rev 939)
+++
trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb        2007-04-02
19:13:44 UTC (rev 940)
</span><span class="lines">@@ -1,13 +1,34 @@
</span><span class="cx"> class Wx::TreeCtrl
</span><span class="cx">   # Recurses over the tree item
+start_item+ and its descendants,
</span><del>-  # yielding each Wx::TreeItemId in turn into the
passed block. This
-  # TreeItemId can be used as an argument to many other methods within
-  # TreeCtrl (for example, get_item_text).
</del><ins>+  # yielding each item in the tree in turn into the
block. If
+  # +start_item+ is not specified, this method will recurse over every
+  # item within the tree, starting with the root item.
</ins><span class="cx">   #
</span><del>-  # If +start_item+ is not specified, this method will
recurse over
-  # every item within the tree, starting with the root item.
</del><ins>+  # In its simplest form, the method accepts a block
with one parameter,
+  # which will be the TreeItemId of the item. This is an opaque integer
+  # value which uniquely identifies the tree item. It can be used as an
+  # argument to many other methods within TreeCtrl (for example,
+  # get_item_text).
+  #
+  # The block passed to +traverse+ may optionally receive two additional
+  # parameters, +text+ and +data+. If these are specified, they will be
+  # filled with the text label for the item and any ruby item data
+  # associated with the item, respectively.
</ins><span class="cx">   def traverse(start_item =
self.get_root_item, &block)
</span><del>-    block.call(start_item)
</del><ins>+    case block.arity
+    when 1
+      block.call(start_item)
+    when 2
+      block.call(start_item, 
+                 get_item_text(start_item))
+    when 3
+      block.call(start_item, 
+                 get_item_text(start_item), 
+                 get_item_data(start_item))
+    else
+      raise ArgumentError, "Invalid number of block parameters"
+    end
+
</ins><span class="cx">     if has_children(start_item)
</span><span class="cx">       child, cookie =
get_first_child(start_item)
</span><span class="cx">       while child.nonzero?
</span></span></pre>
</div>
</div>
</body>
</html>
Possibly Parallel Threads
- [793] trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb: Moved traverse method in wxSugar
- [842] trunk/wxsugar/lib/wx_sugar/wx_classes/treectrl.rb: Fix for TreeItemIds as Integers
- [938] trunk/wxsugar/lib/wx_sugar/wx_classes: Enable enumerable_controls for ListCtrl and ControlWithItems family
- [942] trunk/wxsugar/lib/wx_sugar/wx_classes/listctrl.rb: Implement find_string method cognate with ControlWithItems
- [944] trunk/wxsugar/lib/wx_sugar/wx_classes/listctrl.rb: Fix bug with endless recursion on not-found items in find_string
