wxruby 1.9.9-x86-mingw32 → 1.9.10-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/LICENSE +53 -53
  2. data/README +297 -297
  3. data/lib/wx.rb +53 -53
  4. data/lib/wx/classes/bitmap.rb +29 -1
  5. data/lib/wx/classes/clipboard.rb +19 -3
  6. data/lib/wx/classes/colour.rb +6 -4
  7. data/lib/wx/classes/data_object.rb +14 -0
  8. data/lib/wx/classes/data_object_simple.rb +6 -0
  9. data/lib/wx/classes/dataformat.rb +23 -0
  10. data/lib/wx/classes/evthandler.rb +31 -4
  11. data/lib/wx/classes/genericdirctrl.rb +36 -0
  12. data/lib/wx/classes/grid.rb +8 -0
  13. data/lib/wx/classes/hboxsizer.rb +6 -0
  14. data/lib/wx/classes/icon.rb +12 -1
  15. data/lib/wx/classes/image.rb +13 -1
  16. data/lib/wx/classes/listctrl.rb +12 -0
  17. data/lib/wx/classes/point.rb +8 -0
  18. data/lib/wx/classes/rect.rb +10 -1
  19. data/lib/wx/classes/richtextctrl.rb +22 -0
  20. data/lib/wx/classes/size.rb +9 -0
  21. data/lib/wx/classes/sizer.rb +18 -3
  22. data/lib/wx/classes/toolbar.rb +4 -6
  23. data/lib/wx/classes/vboxsizer.rb +6 -0
  24. data/lib/wx/classes/window.rb +7 -0
  25. data/lib/wx/classes/xmlresource.rb +17 -0
  26. data/lib/wx/helpers.rb +16 -1
  27. data/lib/wx/keyword_ctors.rb +3 -2
  28. data/lib/wx/keyword_defs.rb +27 -5
  29. data/lib/wx/version.rb +1 -1
  30. data/lib/wxruby2.so +0 -0
  31. data/samples/SAMPLES-LICENSE.TXT +17 -17
  32. data/samples/bigdemo/About.rbw +39 -39
  33. data/samples/bigdemo/ColorPanel.rbw +23 -23
  34. data/samples/bigdemo/GridSimple.rbw +78 -78
  35. data/samples/bigdemo/MDIDemo.rbw +57 -57
  36. data/samples/bigdemo/PopupMenu.rbw +149 -149
  37. data/samples/bigdemo/Sizers.rbw +543 -543
  38. data/samples/bigdemo/bigdemo.rb +823 -823
  39. data/samples/bigdemo/demoTemplate.rbw +33 -33
  40. data/samples/bigdemo/icons/choice.xpm +27 -27
  41. data/samples/bigdemo/icons/combo.xpm +27 -27
  42. data/samples/bigdemo/icons/copy.xpm +25 -25
  43. data/samples/bigdemo/icons/cut.xpm +24 -24
  44. data/samples/bigdemo/icons/gauge.xpm +27 -27
  45. data/samples/bigdemo/icons/help.xpm +25 -25
  46. data/samples/bigdemo/icons/list.xpm +27 -27
  47. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  48. data/samples/bigdemo/icons/new.xpm +24 -24
  49. data/samples/bigdemo/icons/ogl.ico +0 -0
  50. data/samples/bigdemo/icons/ogl.xpm +45 -45
  51. data/samples/bigdemo/icons/open.xpm +26 -26
  52. data/samples/bigdemo/icons/paste.xpm +38 -38
  53. data/samples/bigdemo/icons/preview.xpm +26 -26
  54. data/samples/bigdemo/icons/print.xpm +26 -26
  55. data/samples/bigdemo/icons/radio.xpm +27 -27
  56. data/samples/bigdemo/icons/robert.xpm +415 -415
  57. data/samples/bigdemo/icons/save.xpm +25 -25
  58. data/samples/bigdemo/icons/smiles.xpm +39 -39
  59. data/samples/bigdemo/icons/smiley.xpm +42 -42
  60. data/samples/bigdemo/icons/stattext.xpm +24 -24
  61. data/samples/bigdemo/icons/test2.bmp +0 -0
  62. data/samples/bigdemo/icons/test2.xpm +79 -79
  63. data/samples/bigdemo/icons/text.xpm +27 -27
  64. data/samples/bigdemo/icons/tog1.xpm +38 -38
  65. data/samples/bigdemo/icons/tog2.xpm +38 -38
  66. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  67. data/samples/bigdemo/tips.txt +7 -7
  68. data/samples/bigdemo/utils.rb +11 -11
  69. data/samples/bigdemo/wxButton.rbw +64 -64
  70. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -60
  71. data/samples/bigdemo/wxCheckBox.rbw +50 -50
  72. data/samples/bigdemo/wxCheckListBox.rbw +65 -75
  73. data/samples/bigdemo/wxChoice.rbw +47 -47
  74. data/samples/bigdemo/wxColourDialog.rbw +31 -31
  75. data/samples/bigdemo/wxComboBox.rbw +77 -77
  76. data/samples/bigdemo/wxDialog.rbw +74 -74
  77. data/samples/bigdemo/wxDirDialog.rbw +29 -29
  78. data/samples/bigdemo/wxFileDialog.rbw +37 -37
  79. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -35
  80. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -82
  81. data/samples/bigdemo/wxFontDialog.rbw +173 -173
  82. data/samples/bigdemo/wxFrame.rbw +53 -53
  83. data/samples/bigdemo/wxGauge.rbw +71 -71
  84. data/samples/bigdemo/wxGrid.rbw +66 -66
  85. data/samples/bigdemo/wxListBox.rbw +140 -140
  86. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -107
  87. data/samples/bigdemo/wxMDIWindows.rbw +50 -50
  88. data/samples/bigdemo/wxMenu.rbw +236 -236
  89. data/samples/bigdemo/wxMessageDialog.rbw +27 -27
  90. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -32
  91. data/samples/bigdemo/wxNotebook.rbw +136 -136
  92. data/samples/bigdemo/wxProgressDialog.rbw +43 -43
  93. data/samples/bigdemo/wxRadioBox.rbw +72 -72
  94. data/samples/bigdemo/wxRadioButton.rbw +125 -125
  95. data/samples/bigdemo/wxSashWindow.rbw +2 -2
  96. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -57
  97. data/samples/bigdemo/wxScrolledWindow.rbw +199 -199
  98. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -33
  99. data/samples/bigdemo/wxSlider.rbw +42 -42
  100. data/samples/bigdemo/wxSpinButton.rbw +50 -50
  101. data/samples/bigdemo/wxSpinCtrl.rbw +51 -51
  102. data/samples/bigdemo/wxSplitterWindow.rbw +63 -63
  103. data/samples/bigdemo/wxStaticBitmap.rbw +51 -51
  104. data/samples/bigdemo/wxStaticText.rbw +55 -55
  105. data/samples/bigdemo/wxStatusBar.rbw +126 -126
  106. data/samples/bigdemo/wxTextCtrl.rbw +149 -149
  107. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -31
  108. data/samples/bigdemo/wxToggleButton.rbw +49 -49
  109. data/samples/bigdemo/wxToolBar.rbw +131 -131
  110. data/samples/bigdemo/wxTreeCtrl.rbw +191 -190
  111. data/samples/calendar/calendar.rb +256 -271
  112. data/samples/caret/caret.rb +282 -282
  113. data/samples/caret/mondrian.xpm +44 -44
  114. data/samples/controls/controls.rb +1136 -1136
  115. data/samples/controls/get_item_sample.rb +87 -87
  116. data/samples/controls/icons/choice.xpm +27 -27
  117. data/samples/controls/icons/combo.xpm +27 -27
  118. data/samples/controls/icons/gauge.xpm +27 -27
  119. data/samples/controls/icons/list.xpm +27 -27
  120. data/samples/controls/icons/radio.xpm +27 -27
  121. data/samples/controls/icons/stattext.xpm +24 -24
  122. data/samples/controls/icons/text.xpm +27 -27
  123. data/samples/controls/mondrian.xpm +44 -44
  124. data/samples/dialogs/dialogs.rb +797 -723
  125. data/samples/dialogs/tips.txt +18 -18
  126. data/samples/drawing/images.rb +37 -37
  127. data/samples/etc/activation.rb +102 -102
  128. data/samples/etc/choice.rb +67 -67
  129. data/samples/etc/miniframe.rb +79 -79
  130. data/samples/etc/sash.rb +130 -130
  131. data/samples/etc/scrollwin.rb +110 -110
  132. data/samples/etc/system_settings.rb +252 -252
  133. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  134. data/samples/etc/wizard.rb +74 -74
  135. data/samples/event/update_ui_event.rb +70 -0
  136. data/samples/grid/gridtablebase.rb +43 -29
  137. data/samples/listbook/listbook.rb +174 -174
  138. data/samples/listbook/listbook.xrc +370 -370
  139. data/samples/mdi/mdi.rb +85 -77
  140. data/samples/minimal/minimal.rb +77 -77
  141. data/samples/minimal/nothing.rb +16 -16
  142. data/samples/text/format-text-bold.png +0 -0
  143. data/samples/text/format-text-italic.png +0 -0
  144. data/samples/text/format-text-underline.png +0 -0
  145. data/samples/text/rich_textctrl.rb +98 -0
  146. data/samples/text/textctrl.rb +111 -113
  147. data/samples/text/unicode.rb +242 -242
  148. data/samples/text/utf8.txt +14 -14
  149. data/samples/treectrl/treectrl.rb +1166 -1174
  150. data/samples/xrc/samples.xrc +46 -46
  151. data/samples/xrc/xrc_sample.rb +76 -96
  152. metadata +15 -3
@@ -1,78 +1,78 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
- begin
5
- require 'rubygems'
6
- rescue LoadError
7
- end
8
- require 'wx'
9
-
10
-
11
-
12
- class SimpleGrid < Wx::Grid
13
-
14
- def initialize(parent, log)
15
- super(parent, -1)
16
- @log = log
17
- @moveTo = nil
18
-
19
- evt_idle {|event| on_idle(event)}
20
-
21
- create_grid(25,25)
22
-
23
- # simple cell formatting
24
- set_col_size(3,200)
25
- set_row_size(4,45)
26
- set_cell_value(0,0,"First cell")
27
- set_cell_value(1,1,"Another cell")
28
- set_cell_value(2,2,"Yet another cell")
29
- set_cell_value(3,3,"This cell is read-only")
30
- set_cell_font(0,0, Wx::Font.new(12, Wx::ROMAN, Wx::ITALIC, Wx::NORMAL))
31
- set_cell_text_colour(1,1,Wx::RED)
32
- set_cell_background_colour(2,2,Wx::CYAN)
33
- set_read_only(3,3,true)
34
-
35
- set_col_label_value(0, "Custom")
36
- set_col_label_value(1, "column")
37
- set_col_label_value(2, "labels")
38
-
39
- set_col_label_alignment(Wx::ALIGN_LEFT, Wx::ALIGN_BOTTOM)
40
-
41
- # overflow cells
42
- set_cell_value(9,1, "This default cell will overflow into neighboring cells, but not if you turn overflow off.")
43
- #set_cell_size(11, 1, 3, 3)
44
- set_cell_alignment(11, 1, Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
45
- set_cell_value(11, 1, "This cell is set to span 3 rows and 3 columns")
46
-
47
- # evt_grid_cell_left_click {|event| on_cell_left_click(event)}
48
- end
49
-
50
- def on_cell_left_click(event)
51
- @log.write_text("on_cell_left_click: (%d,%d)" % [evt.get_row(), evt.get_col()])
52
- evt.skip()
53
- end
54
-
55
- def on_idle(event)
56
- if @moveTo != nil
57
- set_grid_cursor(@moveTo[0], @moveTo[1])
58
- @moveTo = nil
59
- end
60
- event.skip()
61
- end
62
- end
63
-
64
- module GridDemo
65
- class TestFrame < Wx::Frame
66
- def initialize(parent, log)
67
- super(parent, -1, "Simple Grid Demo", Wx::DEFAULT_POSITION, Wx::Size.new(640,480))
68
- grid = SimpleGrid.new(self, log)
69
- end
70
- end
71
- end
72
-
73
-
74
- if __FILE__ == $0
75
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
76
- load run_solo_lib
77
- run File.basename($0)
78
- end
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ class SimpleGrid < Wx::Grid
13
+
14
+ def initialize(parent, log)
15
+ super(parent, -1)
16
+ @log = log
17
+ @moveTo = nil
18
+
19
+ evt_idle {|event| on_idle(event)}
20
+
21
+ create_grid(25,25)
22
+
23
+ # simple cell formatting
24
+ set_col_size(3,200)
25
+ set_row_size(4,45)
26
+ set_cell_value(0,0,"First cell")
27
+ set_cell_value(1,1,"Another cell")
28
+ set_cell_value(2,2,"Yet another cell")
29
+ set_cell_value(3,3,"This cell is read-only")
30
+ set_cell_font(0,0, Wx::Font.new(12, Wx::ROMAN, Wx::ITALIC, Wx::NORMAL))
31
+ set_cell_text_colour(1,1,Wx::RED)
32
+ set_cell_background_colour(2,2,Wx::CYAN)
33
+ set_read_only(3,3,true)
34
+
35
+ set_col_label_value(0, "Custom")
36
+ set_col_label_value(1, "column")
37
+ set_col_label_value(2, "labels")
38
+
39
+ set_col_label_alignment(Wx::ALIGN_LEFT, Wx::ALIGN_BOTTOM)
40
+
41
+ # overflow cells
42
+ set_cell_value(9,1, "This default cell will overflow into neighboring cells, but not if you turn overflow off.")
43
+ #set_cell_size(11, 1, 3, 3)
44
+ set_cell_alignment(11, 1, Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
45
+ set_cell_value(11, 1, "This cell is set to span 3 rows and 3 columns")
46
+
47
+ # evt_grid_cell_left_click {|event| on_cell_left_click(event)}
48
+ end
49
+
50
+ def on_cell_left_click(event)
51
+ @log.write_text("on_cell_left_click: (%d,%d)" % [evt.get_row(), evt.get_col()])
52
+ evt.skip()
53
+ end
54
+
55
+ def on_idle(event)
56
+ if @moveTo != nil
57
+ set_grid_cursor(@moveTo[0], @moveTo[1])
58
+ @moveTo = nil
59
+ end
60
+ event.skip()
61
+ end
62
+ end
63
+
64
+ module GridDemo
65
+ class TestFrame < Wx::Frame
66
+ def initialize(parent, log)
67
+ super(parent, -1, "Simple Grid Demo", Wx::DEFAULT_POSITION, Wx::Size.new(640,480))
68
+ grid = SimpleGrid.new(self, log)
69
+ end
70
+ end
71
+ end
72
+
73
+
74
+ if __FILE__ == $0
75
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
76
+ load run_solo_lib
77
+ run File.basename($0)
78
+ end
@@ -1,57 +1,57 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
- begin
5
- require 'rubygems'
6
- rescue LoadError
7
- end
8
- require 'wx'
9
-
10
-
11
-
12
- module Demo
13
-
14
- class MyParentFrame < Wx::MDIParentFrame
15
- def initialize
16
- super(nil, -1, "MDI Parent", Wx::DEFAULT_POSITION,
17
- Wx::Size.new(600,400))
18
-
19
- @win_count = 0
20
- menu = Wx::Menu.new
21
- menu.append(5000, "&New Window")
22
- menu.append_separator
23
- menu.append(5001, "E&xit")
24
-
25
- menubar = Wx::MenuBar.new()
26
- menubar.append(menu, "&File")
27
- set_menu_bar(menubar)
28
-
29
- create_status_bar
30
-
31
- evt_menu(5000) {|event| on_new_window(event)}
32
- evt_menu(5001) {|event| on_exit(event)}
33
- scrollwin_demo_file = File.join(File.dirname(__FILE__),
34
- "wxScrolledWindow.rbw")
35
- load scrollwin_demo_file
36
- end
37
-
38
- def on_exit(event)
39
- close()
40
- end
41
-
42
- def on_new_window(event)
43
- @win_count += 1
44
- win = Wx::MDIChildFrame.new(self, -1, "Child Window: #{@win_count}")
45
- canvas = MyCanvas.new(win)
46
- win.show
47
- end
48
- end
49
-
50
- end
51
-
52
-
53
- if __FILE__ == $0
54
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
55
- load run_solo_lib
56
- run File.basename($0)
57
- end
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ module Demo
13
+
14
+ class MyParentFrame < Wx::MDIParentFrame
15
+ def initialize
16
+ super(nil, -1, "MDI Parent", Wx::DEFAULT_POSITION,
17
+ Wx::Size.new(600,400))
18
+
19
+ @win_count = 0
20
+ menu = Wx::Menu.new
21
+ menu.append(5000, "&New Window")
22
+ menu.append_separator
23
+ menu.append(5001, "E&xit")
24
+
25
+ menubar = Wx::MenuBar.new()
26
+ menubar.append(menu, "&File")
27
+ set_menu_bar(menubar)
28
+
29
+ create_status_bar
30
+
31
+ evt_menu(5000) {|event| on_new_window(event)}
32
+ evt_menu(5001) {|event| on_exit(event)}
33
+ scrollwin_demo_file = File.join(File.dirname(__FILE__),
34
+ "wxScrolledWindow.rbw")
35
+ load scrollwin_demo_file
36
+ end
37
+
38
+ def on_exit(event)
39
+ close()
40
+ end
41
+
42
+ def on_new_window(event)
43
+ @win_count += 1
44
+ win = Wx::MDIChildFrame.new(self, -1, "Child Window: #{@win_count}")
45
+ canvas = MyCanvas.new(win)
46
+ win.show
47
+ end
48
+ end
49
+
50
+ end
51
+
52
+
53
+ if __FILE__ == $0
54
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
55
+ load run_solo_lib
56
+ run File.basename($0)
57
+ end
@@ -1,149 +1,149 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
- begin
5
- require 'rubygems'
6
- rescue LoadError
7
- end
8
- require 'wx'
9
-
10
-
11
-
12
- TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
13
-
14
- class TestPanel < Wx::Panel
15
- def initialize(parent, log)
16
- @log = log
17
- super(parent, -1)
18
- @bound = false
19
- box = Wx::BoxSizer.new(Wx::VERTICAL)
20
-
21
- # Make and layout controls
22
- fs = get_font().get_point_size()
23
- bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
24
- nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
25
-
26
- t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
27
- t.set_font(bf)
28
- box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
29
-
30
- box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
31
- box.add(10,20)
32
-
33
- t = Wx::StaticText.new(self, -1, TEXT)
34
- t.set_font(nf)
35
- box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
36
-
37
- set_sizer(box)
38
-
39
- evt_right_up {|event| on_right_click(event)}
40
- end
41
-
42
- def on_right_click(event)
43
- @log.write_text("on_right_click")
44
-
45
- # only do this part the first time so the events are only bound once
46
- if @bound == false
47
- @popupID1,
48
- @popupID2,
49
- @popupID3,
50
- @popupID4,
51
- @popupID5,
52
- @popupID6,
53
- @popupID7,
54
- @popupID8,
55
- @popupID9 = (5000..5008).to_a()
56
- evt_menu(@popupID1) {|event| on_popup_one(event)}
57
- evt_menu(@popupID2) {|event| on_popup_two(event)}
58
- evt_menu(@popupID3) {|event| on_popup_three(event)}
59
- evt_menu(@popupID4) {|event| on_popup_four(event)}
60
- evt_menu(@popupID5) {|event| on_popup_five(event)}
61
- evt_menu(@popupID6) {|event| on_popup_six(event)}
62
- evt_menu(@popupID7) {|event| on_popup_seven(event)}
63
- evt_menu(@popupID8) {|event| on_popup_eight(event)}
64
- evt_menu(@popupID9) {|event| on_popup_nine(event)}
65
- @bound = true
66
- end
67
-
68
- # make a menu
69
- menu = Wx::Menu.new()
70
- # Show how to put an icon in the menu
71
- item = Wx::MenuItem.new(menu, @popupID1, "One")
72
- # set_bitmap is only available on GTK and Windows
73
- if item.respond_to?(:set_bitmap)
74
- bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
75
- item.set_bitmap( Wx::Bitmap.new(bmp_file) )
76
- end
77
- menu.append_item(item)
78
- # add some other items
79
- menu.append(@popupID2, "Two")
80
- menu.append(@popupID3, "Three")
81
- menu.append(@popupID4, "Four")
82
- menu.append(@popupID5, "Five")
83
- menu.append(@popupID6, "Six")
84
- # make a submenu
85
- sm = Wx::Menu.new()
86
- sm.append(@popupID8, "sub item 1")
87
- sm.append(@popupID9, "sub item 2")
88
- mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
89
- menu.append_item(mItem)
90
-
91
- popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
92
- #menu.destroy()
93
- end
94
-
95
- def on_popup_one(event)
96
- @log.write_text("Popup one")
97
- end
98
-
99
- def on_popup_two(event)
100
- @log.write_text("Popup two")
101
- end
102
-
103
- def on_popup_three(event)
104
- @log.write_text("Popup three")
105
- end
106
-
107
- def on_popup_four(event)
108
- @log.write_text("Popup four")
109
- end
110
-
111
- def on_popup_five(event)
112
- @log.write_text("Popup five")
113
- end
114
-
115
- def on_popup_six(event)
116
- @log.write_text("Popup six")
117
- end
118
-
119
- def on_popup_seven(event)
120
- @log.write_text("Popup seven")
121
- end
122
-
123
- def on_popup_eight(event)
124
- @log.write_text("Popup eight")
125
- end
126
-
127
- def on_popup_nine(event)
128
- @log.write_text("Popup nine")
129
- end
130
-
131
- end
132
-
133
- module Demo
134
- def Demo.run(frame, nb, log)
135
- win = TestPanel.new(nb, log)
136
- return win
137
- end
138
-
139
- def Demo.overview
140
- return ""
141
- end
142
- end
143
-
144
-
145
- if __FILE__ == $0
146
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
147
- load run_solo_lib
148
- run File.basename($0)
149
- end
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
13
+
14
+ class TestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ @log = log
17
+ super(parent, -1)
18
+ @bound = false
19
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
20
+
21
+ # Make and layout controls
22
+ fs = get_font().get_point_size()
23
+ bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
24
+ nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
25
+
26
+ t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
27
+ t.set_font(bf)
28
+ box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
29
+
30
+ box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
31
+ box.add(10,20)
32
+
33
+ t = Wx::StaticText.new(self, -1, TEXT)
34
+ t.set_font(nf)
35
+ box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
36
+
37
+ set_sizer(box)
38
+
39
+ evt_right_up {|event| on_right_click(event)}
40
+ end
41
+
42
+ def on_right_click(event)
43
+ @log.write_text("on_right_click")
44
+
45
+ # only do this part the first time so the events are only bound once
46
+ if @bound == false
47
+ @popupID1,
48
+ @popupID2,
49
+ @popupID3,
50
+ @popupID4,
51
+ @popupID5,
52
+ @popupID6,
53
+ @popupID7,
54
+ @popupID8,
55
+ @popupID9 = (5000..5008).to_a()
56
+ evt_menu(@popupID1) {|event| on_popup_one(event)}
57
+ evt_menu(@popupID2) {|event| on_popup_two(event)}
58
+ evt_menu(@popupID3) {|event| on_popup_three(event)}
59
+ evt_menu(@popupID4) {|event| on_popup_four(event)}
60
+ evt_menu(@popupID5) {|event| on_popup_five(event)}
61
+ evt_menu(@popupID6) {|event| on_popup_six(event)}
62
+ evt_menu(@popupID7) {|event| on_popup_seven(event)}
63
+ evt_menu(@popupID8) {|event| on_popup_eight(event)}
64
+ evt_menu(@popupID9) {|event| on_popup_nine(event)}
65
+ @bound = true
66
+ end
67
+
68
+ # make a menu
69
+ menu = Wx::Menu.new()
70
+ # Show how to put an icon in the menu
71
+ item = Wx::MenuItem.new(menu, @popupID1, "One")
72
+ # set_bitmap is only available on GTK and Windows
73
+ if item.respond_to?(:set_bitmap)
74
+ bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
75
+ item.set_bitmap( Wx::Bitmap.new(bmp_file) )
76
+ end
77
+ menu.append_item(item)
78
+ # add some other items
79
+ menu.append(@popupID2, "Two")
80
+ menu.append(@popupID3, "Three")
81
+ menu.append(@popupID4, "Four")
82
+ menu.append(@popupID5, "Five")
83
+ menu.append(@popupID6, "Six")
84
+ # make a submenu
85
+ sm = Wx::Menu.new()
86
+ sm.append(@popupID8, "sub item 1")
87
+ sm.append(@popupID9, "sub item 2")
88
+ mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
89
+ menu.append_item(mItem)
90
+
91
+ popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
92
+ #menu.destroy()
93
+ end
94
+
95
+ def on_popup_one(event)
96
+ @log.write_text("Popup one")
97
+ end
98
+
99
+ def on_popup_two(event)
100
+ @log.write_text("Popup two")
101
+ end
102
+
103
+ def on_popup_three(event)
104
+ @log.write_text("Popup three")
105
+ end
106
+
107
+ def on_popup_four(event)
108
+ @log.write_text("Popup four")
109
+ end
110
+
111
+ def on_popup_five(event)
112
+ @log.write_text("Popup five")
113
+ end
114
+
115
+ def on_popup_six(event)
116
+ @log.write_text("Popup six")
117
+ end
118
+
119
+ def on_popup_seven(event)
120
+ @log.write_text("Popup seven")
121
+ end
122
+
123
+ def on_popup_eight(event)
124
+ @log.write_text("Popup eight")
125
+ end
126
+
127
+ def on_popup_nine(event)
128
+ @log.write_text("Popup nine")
129
+ end
130
+
131
+ end
132
+
133
+ module Demo
134
+ def Demo.run(frame, nb, log)
135
+ win = TestPanel.new(nb, log)
136
+ return win
137
+ end
138
+
139
+ def Demo.overview
140
+ return ""
141
+ end
142
+ end
143
+
144
+
145
+ if __FILE__ == $0
146
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
147
+ load run_solo_lib
148
+ run File.basename($0)
149
+ end