[macruby-changes] [327] MacRuby/trunk/lib/hotcocoa/mappings/popup.rb

source_changes at macosforge.org source_changes at macosforge.org
Mon Jul 7 21:42:16 PDT 2008


Revision: 327
          http://trac.macosforge.org/projects/ruby/changeset/327
Author:   rich at infoether.com
Date:     2008-07-07 21:42:16 -0700 (Mon, 07 Jul 2008)
Log Message:
-----------
add MenuItem methods to popup button

Modified Paths:
--------------
    MacRuby/trunk/lib/hotcocoa/mappings/popup.rb

Modified: MacRuby/trunk/lib/hotcocoa/mappings/popup.rb
===================================================================
--- MacRuby/trunk/lib/hotcocoa/mappings/popup.rb	2008-07-08 03:39:30 UTC (rev 326)
+++ MacRuby/trunk/lib/hotcocoa/mappings/popup.rb	2008-07-08 04:42:16 UTC (rev 327)
@@ -11,6 +11,8 @@
     
     class ItemList
       
+      include Enumerable
+      
       attr_reader :control
       
       def initialize(control)
@@ -21,8 +23,16 @@
         control.addItemWithTitle(title)
       end
       
+      def [](index)
+        control.itemTitleAtIndex(index)
+      end
+      
       def delete(title)
-        control.removeItemWithTitle(title)
+        if title.kind_of?(Fixnum)
+          control.removeItemAtIndex(title)
+        else
+          control.removeItemWithTitle(title)
+        end
       end
       
       def insert(title, at:index)
@@ -33,6 +43,14 @@
         control.titleOfSelectedItem
       end
       
+      def selected=(title)
+        if title.kind_of?(Fixnum)
+          control.selectItemAtIndex(title)
+        else
+          control.selectItemWithTitle(title)
+        end
+      end
+      
       def selected_index
         control.indexOfSelectedItem
       end
@@ -40,8 +58,37 @@
       def size
         control.numberOfItems
       end
+      
+      def each(&block)
+        control.itemTitles.each(&block)
+      end
+      
     end
     
+    class MenuItemList < ItemList
+      include Enumerable
+      
+      def selected
+        control.selectedItem
+      end
+
+      def selected=(title)
+        if title.kind_of?(Fixnum)
+          control.selectItemAtIndex(title)
+        else
+          control.selectItem(title)
+        end
+      end
+
+      def [](index)
+        control.itemAtIndex(index)
+      end
+      
+      def each(&block)
+        control.itemArray.each(&block)
+      end
+    end
+    
     def items=(values)
       removeAllItems
       addItemsWithTitles(values)
@@ -51,6 +98,10 @@
       @_item_list ||= ItemList.new(self)
     end
     
+    def menu_items
+      @_menu_item_list ||=  MenuItemList.new(self)
+    end
+    
   end
   
 end
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080707/0098a405/attachment.html 


More information about the macruby-changes mailing list