[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