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

source_changes at macosforge.org source_changes at macosforge.org
Mon Aug 24 22:17:49 PDT 2009


Revision: 2368
          http://trac.macosforge.org/projects/ruby/changeset/2368
Author:   rich at infoether.com
Date:     2009-08-24 22:17:45 -0700 (Mon, 24 Aug 2009)
Log Message:
-----------
move classes outside of the custom_methods

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

Modified: MacRuby/trunk/lib/hotcocoa/mappings/popup.rb
===================================================================
--- MacRuby/trunk/lib/hotcocoa/mappings/popup.rb	2009-08-25 04:49:06 UTC (rev 2367)
+++ MacRuby/trunk/lib/hotcocoa/mappings/popup.rb	2009-08-25 05:17:45 UTC (rev 2368)
@@ -1,3 +1,85 @@
+module HotCocoa
+  class PopUpItemList
+    
+    include Enumerable
+    
+    attr_reader :control
+    
+    def initialize(control)
+      @control = control
+    end
+    
+    def <<(title)
+      control.addItemWithTitle(title)
+    end
+    
+    def [](index)
+      control.itemTitleAtIndex(index)
+    end
+    
+    def delete(title)
+      if title.kind_of?(Fixnum)
+        control.removeItemAtIndex(title)
+      else
+        control.removeItemWithTitle(title)
+      end
+    end
+    
+    def insert(title, at:index)
+      control.insertItemWithTitle(title, atIndex:index)
+    end
+    
+    def selected
+      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
+    
+    def size
+      control.numberOfItems
+    end
+    
+    def each(&block)
+      control.itemTitles.each(&block)
+    end
+    
+  end
+  
+  class PopUpMenuItemList < PopUpItemList
+    include Enumerable
+    
+    def selected
+      control.selectedItem
+    end
+
+    def selected=(menu_item)
+      if menu_item.kind_of?(Fixnum)
+        control.selectItemAtIndex(menu_item)
+      else
+        control.selectItem(menu_item)
+      end
+    end
+
+    def [](index)
+      control.itemAtIndex(index)
+    end
+    
+    def each(&block)
+      control.itemArray.each(&block)
+    end
+  end
+end
+
 HotCocoa::Mappings.map :popup => :NSPopUpButton do
   
   defaults :pulls_down => false, 
@@ -10,97 +92,17 @@
   
   custom_methods do
     
-    class ItemList
-      
-      include Enumerable
-      
-      attr_reader :control
-      
-      def initialize(control)
-        @control = control
-      end
-      
-      def <<(title)
-        control.addItemWithTitle(title)
-      end
-      
-      def [](index)
-        control.itemTitleAtIndex(index)
-      end
-      
-      def delete(title)
-        if title.kind_of?(Fixnum)
-          control.removeItemAtIndex(title)
-        else
-          control.removeItemWithTitle(title)
-        end
-      end
-      
-      def insert(title, at:index)
-        control.insertItemWithTitle(title, atIndex:index)
-      end
-      
-      def selected
-        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
-      
-      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=(menu_item)
-        if menu_item.kind_of?(Fixnum)
-          control.selectItemAtIndex(menu_item)
-        else
-          control.selectItem(menu_item)
-        end
-      end
-
-      def [](index)
-        control.itemAtIndex(index)
-      end
-      
-      def each(&block)
-        control.itemArray.each(&block)
-      end
-    end
-    
     def items=(values)
       removeAllItems
       addItemsWithTitles(values)
     end
     
     def items
-      @_item_list ||= ItemList.new(self)
+      @_item_list ||= HotCocoa::PopUpItemList.new(self)
     end
     
     def menu_items
-      @_menu_item_list ||=  MenuItemList.new(self)
+      @_menu_item_list ||=  HotCocoa::PopUpMenuItemList.new(self)
     end
     
   end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090824/3a6adc87/attachment.html>


More information about the macruby-changes mailing list