wxruby 1.9.6-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx/accessors.rb +52 -0
  4. data/lib/wx/classes/acceleratortable.rb +28 -0
  5. data/lib/wx/classes/animation.rb +18 -0
  6. data/lib/wx/classes/app.rb +45 -0
  7. data/lib/wx/classes/artprovider.rb +31 -0
  8. data/lib/wx/classes/bitmap.rb +28 -0
  9. data/lib/wx/classes/busycursor.rb +12 -0
  10. data/lib/wx/classes/checklistbox.rb +45 -0
  11. data/lib/wx/classes/choice.rb +4 -0
  12. data/lib/wx/classes/clientdc.rb +13 -0
  13. data/lib/wx/classes/clipboard.rb +16 -0
  14. data/lib/wx/classes/colour.rb +47 -0
  15. data/lib/wx/classes/combobox.rb +4 -0
  16. data/lib/wx/classes/commandevent.rb +7 -0
  17. data/lib/wx/classes/controlwithitems.rb +10 -0
  18. data/lib/wx/classes/dc.rb +57 -0
  19. data/lib/wx/classes/event.rb +5 -0
  20. data/lib/wx/classes/evthandler.rb +921 -0
  21. data/lib/wx/classes/font.rb +118 -0
  22. data/lib/wx/classes/functions.rb +44 -0
  23. data/lib/wx/classes/gauge.rb +12 -0
  24. data/lib/wx/classes/grid.rb +138 -0
  25. data/lib/wx/classes/helpcontroller.rb +5 -0
  26. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  27. data/lib/wx/classes/htmlwindow.rb +14 -0
  28. data/lib/wx/classes/icon.rb +21 -0
  29. data/lib/wx/classes/iconbundle.rb +3 -0
  30. data/lib/wx/classes/image.rb +31 -0
  31. data/lib/wx/classes/imagelist.rb +3 -0
  32. data/lib/wx/classes/listbox.rb +4 -0
  33. data/lib/wx/classes/listctrl.rb +21 -0
  34. data/lib/wx/classes/locale.rb +28 -0
  35. data/lib/wx/classes/mediactrl.rb +22 -0
  36. data/lib/wx/classes/menu.rb +62 -0
  37. data/lib/wx/classes/menuitem.rb +7 -0
  38. data/lib/wx/classes/object.rb +7 -0
  39. data/lib/wx/classes/paintdc.rb +12 -0
  40. data/lib/wx/classes/point.rb +48 -0
  41. data/lib/wx/classes/previewframe.rb +13 -0
  42. data/lib/wx/classes/rect.rb +10 -0
  43. data/lib/wx/classes/size.rb +49 -0
  44. data/lib/wx/classes/sound.rb +23 -0
  45. data/lib/wx/classes/styledtextctrl.rb +92 -0
  46. data/lib/wx/classes/textctrl.rb +14 -0
  47. data/lib/wx/classes/texturlevent.rb +6 -0
  48. data/lib/wx/classes/timer.rb +94 -0
  49. data/lib/wx/classes/toolbartool.rb +4 -0
  50. data/lib/wx/classes/treectrl.rb +44 -0
  51. data/lib/wx/classes/window.rb +82 -0
  52. data/lib/wx/classes/xmlresource.rb +37 -0
  53. data/lib/wx/keyword_ctors.rb +222 -0
  54. data/lib/wx/keyword_defs.rb +492 -0
  55. data/lib/wx/version.rb +3 -0
  56. data/lib/wx.rb +42 -0
  57. data/lib/wxruby2.exp +0 -0
  58. data/lib/wxruby2.lib +0 -0
  59. data/lib/wxruby2.so +0 -0
  60. data/lib/wxruby2.so.manifest +13 -0
  61. data/samples/SAMPLES-LICENSE.TXT +18 -0
  62. data/samples/aui/aui.rb +1356 -0
  63. data/samples/bigdemo/About.rbw +39 -0
  64. data/samples/bigdemo/ColorPanel.rbw +23 -0
  65. data/samples/bigdemo/GridSimple.rbw +78 -0
  66. data/samples/bigdemo/MDIDemo.rbw +57 -0
  67. data/samples/bigdemo/PopupMenu.rbw +149 -0
  68. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  69. data/samples/bigdemo/Sizers.rbw +543 -0
  70. data/samples/bigdemo/bigdemo.rb +823 -0
  71. data/samples/bigdemo/demoTemplate.rbw +33 -0
  72. data/samples/bigdemo/helpfile.htb +0 -0
  73. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  74. data/samples/bigdemo/icons/Test 015.png +0 -0
  75. data/samples/bigdemo/icons/choice.bmp +0 -0
  76. data/samples/bigdemo/icons/choice.xpm +27 -0
  77. data/samples/bigdemo/icons/combo.bmp +0 -0
  78. data/samples/bigdemo/icons/combo.xpm +27 -0
  79. data/samples/bigdemo/icons/copy.xpm +25 -0
  80. data/samples/bigdemo/icons/cut.xpm +24 -0
  81. data/samples/bigdemo/icons/gauge.bmp +0 -0
  82. data/samples/bigdemo/icons/gauge.xpm +27 -0
  83. data/samples/bigdemo/icons/help.xpm +25 -0
  84. data/samples/bigdemo/icons/list.bmp +0 -0
  85. data/samples/bigdemo/icons/list.xpm +27 -0
  86. data/samples/bigdemo/icons/mondrian.ico +0 -0
  87. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  88. data/samples/bigdemo/icons/new.xpm +24 -0
  89. data/samples/bigdemo/icons/ogl.ico +0 -0
  90. data/samples/bigdemo/icons/ogl.xpm +45 -0
  91. data/samples/bigdemo/icons/open.xpm +26 -0
  92. data/samples/bigdemo/icons/paste.bmp +0 -0
  93. data/samples/bigdemo/icons/paste.xpm +38 -0
  94. data/samples/bigdemo/icons/pointy.png +0 -0
  95. data/samples/bigdemo/icons/preview.xpm +26 -0
  96. data/samples/bigdemo/icons/print.xpm +26 -0
  97. data/samples/bigdemo/icons/radio.bmp +0 -0
  98. data/samples/bigdemo/icons/radio.xpm +27 -0
  99. data/samples/bigdemo/icons/robert.xpm +415 -0
  100. data/samples/bigdemo/icons/ruby.png +0 -0
  101. data/samples/bigdemo/icons/sashtest.ico +0 -0
  102. data/samples/bigdemo/icons/save.xpm +25 -0
  103. data/samples/bigdemo/icons/smiles.bmp +0 -0
  104. data/samples/bigdemo/icons/smiles.xpm +39 -0
  105. data/samples/bigdemo/icons/smiley.ico +0 -0
  106. data/samples/bigdemo/icons/smiley.xpm +42 -0
  107. data/samples/bigdemo/icons/stattext.xpm +24 -0
  108. data/samples/bigdemo/icons/test2.bmp +0 -0
  109. data/samples/bigdemo/icons/test2.png +0 -0
  110. data/samples/bigdemo/icons/test2.xpm +79 -0
  111. data/samples/bigdemo/icons/text.bmp +0 -0
  112. data/samples/bigdemo/icons/text.xpm +27 -0
  113. data/samples/bigdemo/icons/tog1.bmp +0 -0
  114. data/samples/bigdemo/icons/tog1.xpm +38 -0
  115. data/samples/bigdemo/icons/tog2.bmp +0 -0
  116. data/samples/bigdemo/icons/tog2.xpm +38 -0
  117. data/samples/bigdemo/icons/wxwin.ico +0 -0
  118. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  119. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  120. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  121. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  122. data/samples/bigdemo/run.rb +90 -0
  123. data/samples/bigdemo/tips.txt +7 -0
  124. data/samples/bigdemo/utils.rb +12 -0
  125. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  126. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  127. data/samples/bigdemo/wxButton.rbw +64 -0
  128. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  129. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  130. data/samples/bigdemo/wxCheckListBox.rbw +75 -0
  131. data/samples/bigdemo/wxChoice.rbw +47 -0
  132. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  133. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  134. data/samples/bigdemo/wxComboBox.rbw +77 -0
  135. data/samples/bigdemo/wxCursor.rbw +136 -0
  136. data/samples/bigdemo/wxDialog.rbw +74 -0
  137. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  138. data/samples/bigdemo/wxDragImage.rbw +70 -0
  139. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  140. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  141. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  142. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  143. data/samples/bigdemo/wxFrame.rbw +53 -0
  144. data/samples/bigdemo/wxGauge.rbw +71 -0
  145. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  146. data/samples/bigdemo/wxGrid.rbw +66 -0
  147. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  148. data/samples/bigdemo/wxListBox.rbw +140 -0
  149. data/samples/bigdemo/wxListCtrl_virtual.rbw +107 -0
  150. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  151. data/samples/bigdemo/wxMenu.rbw +236 -0
  152. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  153. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  154. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  155. data/samples/bigdemo/wxNotebook.rbw +136 -0
  156. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  157. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  158. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  159. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  160. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  161. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  162. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  163. data/samples/bigdemo/wxSlider.rbw +42 -0
  164. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  165. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  166. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  167. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  168. data/samples/bigdemo/wxStaticText.rbw +55 -0
  169. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  170. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  171. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  172. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  173. data/samples/bigdemo/wxToolBar.rbw +131 -0
  174. data/samples/bigdemo/wxTreeCtrl.rbw +190 -0
  175. data/samples/calendar/calendar.rb +271 -0
  176. data/samples/caret/caret.rb +282 -0
  177. data/samples/caret/mondrian.xpm +44 -0
  178. data/samples/controls/controls.rb +1136 -0
  179. data/samples/controls/get_item_sample.rb +87 -0
  180. data/samples/controls/icons/choice.xpm +27 -0
  181. data/samples/controls/icons/combo.xpm +27 -0
  182. data/samples/controls/icons/gauge.xpm +27 -0
  183. data/samples/controls/icons/list.xpm +27 -0
  184. data/samples/controls/icons/radio.xpm +27 -0
  185. data/samples/controls/icons/stattext.xpm +24 -0
  186. data/samples/controls/icons/text.xpm +27 -0
  187. data/samples/controls/mondrian.ico +0 -0
  188. data/samples/controls/mondrian.xpm +44 -0
  189. data/samples/controls/test2.bmp +0 -0
  190. data/samples/dialogs/dialogs.rb +723 -0
  191. data/samples/dialogs/tips.txt +18 -0
  192. data/samples/drawing/graphics_drawing.rb +235 -0
  193. data/samples/drawing/images.rb +37 -0
  194. data/samples/drawing/paperclip.png +0 -0
  195. data/samples/etc/activation.rb +102 -0
  196. data/samples/etc/choice.rb +67 -0
  197. data/samples/etc/miniframe.rb +79 -0
  198. data/samples/etc/sash.rb +130 -0
  199. data/samples/etc/scrollwin.rb +110 -0
  200. data/samples/etc/system_settings.rb +252 -0
  201. data/samples/etc/threaded.rb +72 -0
  202. data/samples/etc/wizard.rb +74 -0
  203. data/samples/event/event.rb +182 -0
  204. data/samples/grid/grid.rb +198 -0
  205. data/samples/grid/gridtablebase.rb +134 -0
  206. data/samples/html/html.rb +262 -0
  207. data/samples/listbook/listbook.rb +174 -0
  208. data/samples/listbook/listbook.xrc +370 -0
  209. data/samples/mdi/mdi.rb +82 -0
  210. data/samples/media/mediactrl.rb +167 -0
  211. data/samples/minimal/minimal.rb +77 -0
  212. data/samples/minimal/mondrian.ico +0 -0
  213. data/samples/minimal/mondrian.png +0 -0
  214. data/samples/minimal/nothing.rb +16 -0
  215. data/samples/opengl/cube.rb +117 -0
  216. data/samples/printing/mondrian.ico +0 -0
  217. data/samples/printing/mondrian.xpm +44 -0
  218. data/samples/printing/printing.rb +310 -0
  219. data/samples/sockets/SocketPackets.rb +27 -0
  220. data/samples/sockets/res/message-new.png +0 -0
  221. data/samples/sockets/res/user.png +0 -0
  222. data/samples/sockets/wxClient.rb +395 -0
  223. data/samples/sockets/wxServer.rb +422 -0
  224. data/samples/sockets/wxSocketGUI.rb +97 -0
  225. data/samples/text/mondrian.ico +0 -0
  226. data/samples/text/mondrian.xpm +44 -0
  227. data/samples/text/scintilla.rb +169 -0
  228. data/samples/text/textctrl.rb +113 -0
  229. data/samples/text/unicode.rb +242 -0
  230. data/samples/text/utf8.txt +15 -0
  231. data/samples/treectrl/icon1.xpm +79 -0
  232. data/samples/treectrl/icon2.xpm +53 -0
  233. data/samples/treectrl/icon3.xpm +79 -0
  234. data/samples/treectrl/icon4.xpm +43 -0
  235. data/samples/treectrl/icon5.xpm +79 -0
  236. data/samples/treectrl/treectrl.rb +1174 -0
  237. data/samples/xrc/samples.xrc +46 -0
  238. data/samples/xrc/xrc_sample.rb +96 -0
  239. metadata +316 -0
@@ -0,0 +1,39 @@
1
+ module About
2
+
3
+ class MyAboutBox < Wx::Dialog
4
+ def initialize(parent)
5
+ super(parent, -1, "About the WxRuby Demo.")
6
+ sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
7
+ set_size(Wx::Size.new(510,310))
8
+ headerFont = Wx::Font.new(36, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
9
+ bodyFont = Wx::Font.new(12, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
10
+ title = Wx::StaticText.new(self, -1, "WxRuby Demo!", Wx::Point.new(20, 20))
11
+ title.set_font(headerFont)
12
+
13
+ rVersion = Wx::StaticText.new(self, -1, "Running on Ruby version " + VERSION + " on " + RUBY_PLATFORM, Wx::Point.new(20,100))
14
+ rVersion.set_font(bodyFont)
15
+ rVersion.set_foreground_colour(Wx::RED)
16
+
17
+ wxVersion = Wx::StaticText.new(self, -1, Wx::VERSION_STRING, Wx::Point.new(20,120))
18
+ wxVersion.set_font(bodyFont)
19
+ wxVersion.set_foreground_colour(Wx::BLUE)
20
+
21
+ str = "Welcome to the WxRuby Demo! This demo has been ported from the \nwxPython demo created by ROBIN DUNN (http://www.wxpython.org).\nGo ahead and click on each demo via the tree or the demo menu.\nLook at the source code - it is an excellent way to learn WxRuby!\n\nPorted by Robert Paul Carlin"
22
+ body = Wx::StaticText.new(self, -1, str, Wx::Point.new(20, 160))
23
+ body.set_font(bodyFont)
24
+
25
+ self.centre_on_parent(Wx::BOTH)
26
+
27
+
28
+ end
29
+
30
+
31
+ end
32
+
33
+ end
34
+
35
+ if __FILE__ == $0
36
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
37
+ load run_solo_lib
38
+ run File.basename($0)
39
+ end
@@ -0,0 +1,23 @@
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 ColoredPanel < Wx::Window
13
+ def initialize(parent, color)
14
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::SIMPLE_BORDER)
15
+ set_background_colour(color)
16
+ end
17
+ end
18
+
19
+ if __FILE__ == $0
20
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
21
+ load run_solo_lib
22
+ run File.basename($0)
23
+ end
@@ -0,0 +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
@@ -0,0 +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
@@ -0,0 +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
@@ -0,0 +1,131 @@
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
+ include Wx
12
+
13
+ BUTTON_CLOSE = 1003
14
+
15
+ class MyFrame < Frame
16
+ def initialize(parent, log)
17
+ @log = log
18
+ super(parent, -1, "Shaped Window", DEFAULT_POSITION, Size.new(350,200),
19
+ FRAME_SHAPED|SIMPLE_BORDER|FRAME_NO_TASKBAR|STAY_ON_TOP)
20
+
21
+ @has_shape = false
22
+ @delta = [0,0]
23
+
24
+ evt_left_dclick {on_double_click}
25
+ evt_left_down {|event| on_left_down(event)}
26
+ evt_left_up {|event| on_left_up(event)}
27
+ evt_motion {|event| on_mouse_move(event)}
28
+ evt_right_up {on_exit}
29
+ evt_paint {on_paint}
30
+
31
+ shape = File.join( File.dirname(__FILE__), 'icons', 'ruby.png' )
32
+ @bmp = Bitmap.new( Image.new(shape) )
33
+ set_client_size(@bmp.get_width, @bmp.get_height)
34
+
35
+ if Wx::PLATFORM == 'WXGTK'
36
+ # wxGTK requires that the window be created before you can
37
+ # set its shape, so delay the call to SetWindowShape until
38
+ # this event.
39
+ evt_window_create { set_window_shape }
40
+ else
41
+ # On wxMSW and wxMac the window has already been created, so go for it.
42
+ set_window_shape
43
+ end
44
+
45
+ paint { | dc | dc.draw_bitmap(@bmp, 0, 0, true) }
46
+ end
47
+
48
+ def set_window_shape
49
+ r = Region.new(@bmp)
50
+ @has_shape = set_shape(r)
51
+ end
52
+
53
+ def on_double_click
54
+ if @has_shape
55
+ set_shape(Region.new)
56
+ @has_shape = false
57
+ else
58
+ set_window_shape
59
+ end
60
+ end
61
+
62
+ def on_paint
63
+ paint { | dc | dc.draw_bitmap(@bmp, 0, 0, true) }
64
+ end
65
+
66
+ def on_exit
67
+ close(true)
68
+ end
69
+
70
+ def on_left_down(event)
71
+ capture_mouse
72
+ point = client_to_screen(event.get_position)
73
+ origin = get_position
74
+ dx = point.x - origin.x
75
+ dy = point.y - origin.y
76
+ @delta = [dx, dy]
77
+ end
78
+
79
+ def on_left_up(event)
80
+ if has_capture
81
+ release_mouse
82
+ end
83
+ end
84
+
85
+ def on_mouse_move(event)
86
+ if event.dragging and event.left_is_down
87
+ point = client_to_screen(event.get_position)
88
+ move(point.x - @delta[0], point.y - @delta[1])
89
+ end
90
+ end
91
+ end
92
+
93
+ class TestPanel < Wx::Panel
94
+ def initialize(parent, log)
95
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
96
+ @log = log
97
+
98
+ b = Button.new(self, -1, 'Show the ShapedWindow Sample', Wx::Point.new(50,50))
99
+ evt_button(b.get_id) { on_button }
100
+ end
101
+
102
+ def on_button
103
+ win = MyFrame.new(self, @log)
104
+ win.set_size(Wx::Size.new(200, 200))
105
+ win.center_on_parent(Wx::BOTH)
106
+ win.show(true)
107
+ end
108
+ end
109
+
110
+ module Demo
111
+ def Demo.run(frame, nb, log)
112
+ TestPanel.new(nb, log)
113
+ end
114
+
115
+ def Demo.overview
116
+ <<EOS
117
+ Top level windows now have a SetShape method that lets you set a
118
+ non-rectangular shape for the window using a wxRegion. All pixels
119
+ outside of the region will not be drawn and the window will not be
120
+ sensitive to the mouse in those areas either.
121
+ EOS
122
+ end
123
+ end
124
+
125
+
126
+
127
+ if __FILE__ == $0
128
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
129
+ load run_solo_lib
130
+ run File.basename($0)
131
+ end