Changeset 29474 for lang/ruby/ruwin
- Timestamp:
- 02/03/09 16:32:44 (4 years ago)
- Location:
- lang/ruby/ruwin
- Files:
-
- 4 modified
-
lib/ruwin/const.rb (modified) (1 diff)
-
lib/ruwin/popup_menu.rb (modified) (3 diffs)
-
sample/sample_popup_menu.rb (modified) (1 diff)
-
test/ruwin/test_popup_menu.rb (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/ruwin/lib/ruwin/const.rb
r29332 r29474 430 430 PBM_SETBKCOLOR = 0x2001 431 431 end 432 433 module Menu 434 MF_SEPARATOR = 0x0800 435 end 432 436 end 433 437 -
lang/ruby/ruwin/lib/ruwin/popup_menu.rb
r29420 r29474 1 1 module Ruwin 2 2 class PopupMenu 3 include Const::Menu 4 3 5 TrackPopupMenu = Win32API.new "USER32.DLL", "TrackPopupMenu", %w{L L I I I I P}, "I" 4 6 … … 6 8 @menu = Ruwin::Factory.newpopup 7 9 self.class.items.each_with_index do |item, index| 8 @menu.append item, index 10 if item 11 @menu.append item, index 12 else 13 @menu.append "", index, MF_SEPARATOR 14 end 9 15 end 10 16 @window = window … … 42 48 end 43 49 50 def separator 51 @items << nil 52 @actions << nil 53 end 54 44 55 def inherited klass 45 56 klass.instance_variable_set :@items, [] -
lang/ruby/ruwin/sample/sample_popup_menu.rb
r29257 r29474 23 23 button.caption = "Selected Item2" 24 24 end 25 26 separator 27 28 item "Item3" do 29 button.caption = "Selected Item3" 30 end 25 31 end 26 32 -
lang/ruby/ruwin/test/ruwin/test_popup_menu.rb
r29422 r29474 3 3 4 4 class TestRuwinPopupMenu < Test::Unit::TestCase 5 include Ruwin::Const::Menu 6 5 7 def setup 6 8 @klass = Class.new(Ruwin::PopupMenu) … … 36 38 def test_item_class_method_should_convert_caption_utf8_to_sjis 37 39 klass = Class.new(Ruwin::PopupMenu) 38 klass.class_eval "item(\"アイテム\"){}"40 klass.class_eval 'item("アイテム"){}' 39 41 assert_equal NKF.nkf("-Ws", "アイテム"), klass.items[0] 40 42 end … … 46 48 end 47 49 50 def test_separator_class_method_should_append_nil_named_item 51 klass = Class.new(Ruwin::PopupMenu) 52 klass.class_eval 'item("text1"){ [self, :item1] }' 53 klass.class_eval 'separator' 54 klass.class_eval 'item("text2"){ [self, :item2] }' 55 assert_equal 3, klass.items.size 56 assert_equal "text1", klass.items[0] 57 assert_nil klass.items[1] 58 assert_equal "text2", klass.items[2] 59 end 60 61 def test_separator_class_method_should_append_nil_action 62 klass = Class.new(Ruwin::PopupMenu) 63 klass.class_eval 'item("text1"){ [self, :item1] }' 64 klass.class_eval 'separator' 65 klass.class_eval 'item("text2"){ [self, :item2] }' 66 assert_equal 3, klass.items.size 67 assert_equal [klass, :item1], klass.actions[0].call 68 assert_nil klass.actions[1] 69 assert_equal [klass, :item2], klass.actions[2].call 70 end 71 48 72 49 73 def test_initialize_should_call_newpopup … … 51 75 assert_instance_of SWin::Menu, @instance.instance_variable_get(:@menu) 52 76 assert_equal 2, @instance.instance_variable_get(:@menu).count 77 end 78 79 def test_initialize_should_create_separator 80 klass = Class.new(Ruwin::PopupMenu) 81 klass.class_eval 'item("text1"){ [self, :item1] }' 82 klass.class_eval 'separator' 83 klass.class_eval 'item("text2"){ [self, :item2] }' 84 instance = klass.new @window 85 assert_equal 3, instance.instance_variable_get(:@menu).count 86 assert_equal MF_SEPARATOR, (instance.instance_variable_get(:@menu).getState(1)&MF_SEPARATOR) 53 87 end 54 88
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)