wxruby64 2.0.1-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. checksums.yaml +7 -0
  2. data/INSTALL +254 -0
  3. data/LICENSE +53 -0
  4. data/README +198 -0
  5. data/art/wxruby-128x128.png +0 -0
  6. data/art/wxruby-256x256.png +0 -0
  7. data/art/wxruby-64x64.png +0 -0
  8. data/art/wxruby.png +0 -0
  9. data/lib/wx.rb +53 -0
  10. data/lib/wx/accessors.rb +68 -0
  11. data/lib/wx/classes/acceleratortable.rb +28 -0
  12. data/lib/wx/classes/animation.rb +18 -0
  13. data/lib/wx/classes/app.rb +51 -0
  14. data/lib/wx/classes/artprovider.rb +31 -0
  15. data/lib/wx/classes/auinotebook.rb +9 -0
  16. data/lib/wx/classes/bitmap.rb +59 -0
  17. data/lib/wx/classes/busycursor.rb +12 -0
  18. data/lib/wx/classes/checklistbox.rb +46 -0
  19. data/lib/wx/classes/choice.rb +4 -0
  20. data/lib/wx/classes/clientdc.rb +13 -0
  21. data/lib/wx/classes/clipboard.rb +56 -0
  22. data/lib/wx/classes/colour.rb +49 -0
  23. data/lib/wx/classes/combobox.rb +4 -0
  24. data/lib/wx/classes/commandevent.rb +7 -0
  25. data/lib/wx/classes/controlwithitems.rb +10 -0
  26. data/lib/wx/classes/data_object.rb +14 -0
  27. data/lib/wx/classes/data_object_simple.rb +6 -0
  28. data/lib/wx/classes/dataformat.rb +23 -0
  29. data/lib/wx/classes/dc.rb +57 -0
  30. data/lib/wx/classes/event.rb +5 -0
  31. data/lib/wx/classes/evthandler.rb +1039 -0
  32. data/lib/wx/classes/font.rb +118 -0
  33. data/lib/wx/classes/functions.rb +44 -0
  34. data/lib/wx/classes/gauge.rb +12 -0
  35. data/lib/wx/classes/genericdirctrl.rb +36 -0
  36. data/lib/wx/classes/grid.rb +146 -0
  37. data/lib/wx/classes/hboxsizer.rb +6 -0
  38. data/lib/wx/classes/helpcontroller.rb +5 -0
  39. data/lib/wx/classes/helpcontrollerhelpprovider.rb +23 -0
  40. data/lib/wx/classes/helpprovider.rb +15 -0
  41. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  42. data/lib/wx/classes/htmlwindow.rb +14 -0
  43. data/lib/wx/classes/icon.rb +32 -0
  44. data/lib/wx/classes/iconbundle.rb +3 -0
  45. data/lib/wx/classes/image.rb +53 -0
  46. data/lib/wx/classes/imagelist.rb +3 -0
  47. data/lib/wx/classes/listbox.rb +4 -0
  48. data/lib/wx/classes/listctrl.rb +33 -0
  49. data/lib/wx/classes/locale.rb +28 -0
  50. data/lib/wx/classes/mediactrl.rb +48 -0
  51. data/lib/wx/classes/menu.rb +62 -0
  52. data/lib/wx/classes/menuitem.rb +7 -0
  53. data/lib/wx/classes/notebook.rb +9 -0
  54. data/lib/wx/classes/object.rb +14 -0
  55. data/lib/wx/classes/paintdc.rb +12 -0
  56. data/lib/wx/classes/point.rb +56 -0
  57. data/lib/wx/classes/previewframe.rb +13 -0
  58. data/lib/wx/classes/rect.rb +19 -0
  59. data/lib/wx/classes/richtextctrl.rb +63 -0
  60. data/lib/wx/classes/simplehelpprovider.rb +38 -0
  61. data/lib/wx/classes/size.rb +58 -0
  62. data/lib/wx/classes/sizer.rb +43 -0
  63. data/lib/wx/classes/sound.rb +23 -0
  64. data/lib/wx/classes/splitterwindow.rb +10 -0
  65. data/lib/wx/classes/standardpaths.rb +9 -0
  66. data/lib/wx/classes/styledtextctrl.rb +92 -0
  67. data/lib/wx/classes/textctrl.rb +14 -0
  68. data/lib/wx/classes/texturlevent.rb +18 -0
  69. data/lib/wx/classes/timer.rb +96 -0
  70. data/lib/wx/classes/toolbar.rb +36 -0
  71. data/lib/wx/classes/toolbartool.rb +4 -0
  72. data/lib/wx/classes/treectrl.rb +44 -0
  73. data/lib/wx/classes/validator.rb +7 -0
  74. data/lib/wx/classes/vboxsizer.rb +6 -0
  75. data/lib/wx/classes/window.rb +89 -0
  76. data/lib/wx/classes/xmlresource.rb +54 -0
  77. data/lib/wx/helpers.rb +54 -0
  78. data/lib/wx/keyword_ctors.rb +204 -0
  79. data/lib/wx/keyword_defs.rb +585 -0
  80. data/lib/wx/version.rb +3 -0
  81. data/lib/wxruby2.so +0 -0
  82. data/samples/SAMPLES-LICENSE.TXT +18 -0
  83. data/samples/aui/aui.rb +1356 -0
  84. data/samples/bigdemo/About.rbw +39 -0
  85. data/samples/bigdemo/ColorPanel.rbw +23 -0
  86. data/samples/bigdemo/GridSimple.rbw +78 -0
  87. data/samples/bigdemo/MDIDemo.rbw +57 -0
  88. data/samples/bigdemo/PopupMenu.rbw +149 -0
  89. data/samples/bigdemo/ShapedWindow.rbw +128 -0
  90. data/samples/bigdemo/Sizers.rbw +543 -0
  91. data/samples/bigdemo/bigdemo.rb +823 -0
  92. data/samples/bigdemo/demoTemplate.rbw +33 -0
  93. data/samples/bigdemo/helpfile.htb +0 -0
  94. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  95. data/samples/bigdemo/icons/Test 015.png +0 -0
  96. data/samples/bigdemo/icons/choice.bmp +0 -0
  97. data/samples/bigdemo/icons/choice.xpm +27 -0
  98. data/samples/bigdemo/icons/combo.bmp +0 -0
  99. data/samples/bigdemo/icons/combo.xpm +27 -0
  100. data/samples/bigdemo/icons/copy.xpm +25 -0
  101. data/samples/bigdemo/icons/cut.xpm +24 -0
  102. data/samples/bigdemo/icons/gauge.bmp +0 -0
  103. data/samples/bigdemo/icons/gauge.xpm +27 -0
  104. data/samples/bigdemo/icons/help.xpm +25 -0
  105. data/samples/bigdemo/icons/list.bmp +0 -0
  106. data/samples/bigdemo/icons/list.xpm +27 -0
  107. data/samples/bigdemo/icons/mondrian.ico +0 -0
  108. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  109. data/samples/bigdemo/icons/new.xpm +24 -0
  110. data/samples/bigdemo/icons/ogl.ico +0 -0
  111. data/samples/bigdemo/icons/ogl.xpm +45 -0
  112. data/samples/bigdemo/icons/open.xpm +26 -0
  113. data/samples/bigdemo/icons/paste.bmp +0 -0
  114. data/samples/bigdemo/icons/paste.xpm +38 -0
  115. data/samples/bigdemo/icons/pointy.png +0 -0
  116. data/samples/bigdemo/icons/preview.xpm +26 -0
  117. data/samples/bigdemo/icons/print.xpm +26 -0
  118. data/samples/bigdemo/icons/radio.bmp +0 -0
  119. data/samples/bigdemo/icons/radio.xpm +27 -0
  120. data/samples/bigdemo/icons/robert.xpm +415 -0
  121. data/samples/bigdemo/icons/sashtest.ico +0 -0
  122. data/samples/bigdemo/icons/save.xpm +25 -0
  123. data/samples/bigdemo/icons/smiles.bmp +0 -0
  124. data/samples/bigdemo/icons/smiles.xpm +39 -0
  125. data/samples/bigdemo/icons/smiley.ico +0 -0
  126. data/samples/bigdemo/icons/smiley.xpm +42 -0
  127. data/samples/bigdemo/icons/stattext.xpm +24 -0
  128. data/samples/bigdemo/icons/test2.bmp +0 -0
  129. data/samples/bigdemo/icons/test2.png +0 -0
  130. data/samples/bigdemo/icons/test2.xpm +79 -0
  131. data/samples/bigdemo/icons/text.bmp +0 -0
  132. data/samples/bigdemo/icons/text.xpm +27 -0
  133. data/samples/bigdemo/icons/tog1.bmp +0 -0
  134. data/samples/bigdemo/icons/tog1.xpm +38 -0
  135. data/samples/bigdemo/icons/tog2.bmp +0 -0
  136. data/samples/bigdemo/icons/tog2.xpm +38 -0
  137. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  138. data/samples/bigdemo/icons/wxwin.ico +0 -0
  139. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  140. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  141. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  142. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  143. data/samples/bigdemo/run.rb +90 -0
  144. data/samples/bigdemo/tips.txt +7 -0
  145. data/samples/bigdemo/utils.rb +12 -0
  146. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  147. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  148. data/samples/bigdemo/wxButton.rbw +64 -0
  149. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  150. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  151. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  152. data/samples/bigdemo/wxChoice.rbw +47 -0
  153. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  154. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  155. data/samples/bigdemo/wxComboBox.rbw +77 -0
  156. data/samples/bigdemo/wxCursor.rbw +136 -0
  157. data/samples/bigdemo/wxDialog.rbw +74 -0
  158. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  159. data/samples/bigdemo/wxDragImage.rbw +70 -0
  160. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  161. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  162. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  163. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  164. data/samples/bigdemo/wxFrame.rbw +53 -0
  165. data/samples/bigdemo/wxGauge.rbw +71 -0
  166. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  167. data/samples/bigdemo/wxGrid.rbw +66 -0
  168. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  169. data/samples/bigdemo/wxListBox.rbw +140 -0
  170. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  171. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  172. data/samples/bigdemo/wxMenu.rbw +236 -0
  173. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  174. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  175. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  176. data/samples/bigdemo/wxNotebook.rbw +136 -0
  177. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  178. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  179. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  180. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  181. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  182. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  183. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  184. data/samples/bigdemo/wxSlider.rbw +42 -0
  185. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  186. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  187. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  188. data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
  189. data/samples/bigdemo/wxStaticText.rbw +55 -0
  190. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  191. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  192. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  193. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  194. data/samples/bigdemo/wxToolBar.rbw +131 -0
  195. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  196. data/samples/calendar/calendar.rb +348 -0
  197. data/samples/caret/caret.rb +282 -0
  198. data/samples/caret/mondrian.xpm +44 -0
  199. data/samples/controls/controls.rb +1136 -0
  200. data/samples/controls/get_item_sample.rb +87 -0
  201. data/samples/controls/icons/choice.xpm +27 -0
  202. data/samples/controls/icons/combo.xpm +27 -0
  203. data/samples/controls/icons/gauge.xpm +27 -0
  204. data/samples/controls/icons/list.xpm +27 -0
  205. data/samples/controls/icons/radio.xpm +27 -0
  206. data/samples/controls/icons/stattext.xpm +24 -0
  207. data/samples/controls/icons/text.xpm +27 -0
  208. data/samples/controls/mondrian.ico +0 -0
  209. data/samples/controls/mondrian.xpm +44 -0
  210. data/samples/controls/test2.bmp +0 -0
  211. data/samples/dialogs/dialogs.rb +797 -0
  212. data/samples/dialogs/tips.txt +18 -0
  213. data/samples/dragdrop/dragdrop.rb +177 -0
  214. data/samples/drawing/bitmap.rb +49 -0
  215. data/samples/drawing/bitmap_image.rb +92 -0
  216. data/samples/drawing/graphics_drawing.rb +235 -0
  217. data/samples/drawing/maths_images.rb +265 -0
  218. data/samples/drawing/rmagic_bitmap_image.rb +110 -0
  219. data/samples/drawing/ruby-logo.jpg +0 -0
  220. data/samples/etc/activation.rb +102 -0
  221. data/samples/etc/choice.rb +67 -0
  222. data/samples/etc/miniframe.rb +79 -0
  223. data/samples/etc/sash.rb +130 -0
  224. data/samples/etc/scrollwin.rb +110 -0
  225. data/samples/etc/system_settings.rb +252 -0
  226. data/samples/etc/threaded.rb +72 -0
  227. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  228. data/samples/etc/wizard.rb +74 -0
  229. data/samples/event/event.rb +182 -0
  230. data/samples/event/update_ui_event.rb +70 -0
  231. data/samples/grid/grid.rb +198 -0
  232. data/samples/grid/gridtablebase.rb +148 -0
  233. data/samples/html/html.rb +262 -0
  234. data/samples/listbook/listbook.rb +174 -0
  235. data/samples/listbook/listbook.xrc +370 -0
  236. data/samples/mdi/mdi.rb +85 -0
  237. data/samples/media/mediactrl.rb +167 -0
  238. data/samples/minimal/minimal.rb +77 -0
  239. data/samples/minimal/mondrian.ico +0 -0
  240. data/samples/minimal/mondrian.png +0 -0
  241. data/samples/minimal/nothing.rb +16 -0
  242. data/samples/opengl/cube.rb +130 -0
  243. data/samples/opengl/cube_anim_lighting.rb +191 -0
  244. data/samples/printing/mondrian.ico +0 -0
  245. data/samples/printing/mondrian.xpm +44 -0
  246. data/samples/printing/printing.rb +487 -0
  247. data/samples/sockets/SocketPackets.rb +27 -0
  248. data/samples/sockets/res/message-new.png +0 -0
  249. data/samples/sockets/res/user.png +0 -0
  250. data/samples/sockets/wxClient.rb +395 -0
  251. data/samples/sockets/wxServer.rb +422 -0
  252. data/samples/sockets/wxSocketGUI.rb +97 -0
  253. data/samples/text/document-open.png +0 -0
  254. data/samples/text/document-save.png +0 -0
  255. data/samples/text/edit-copy.png +0 -0
  256. data/samples/text/edit-cut.png +0 -0
  257. data/samples/text/edit-paste.png +0 -0
  258. data/samples/text/edit-redo.png +0 -0
  259. data/samples/text/edit-undo.png +0 -0
  260. data/samples/text/format-text-bold.png +0 -0
  261. data/samples/text/format-text-italic.png +0 -0
  262. data/samples/text/format-text-underline.png +0 -0
  263. data/samples/text/mondrian.ico +0 -0
  264. data/samples/text/mondrian.xpm +44 -0
  265. data/samples/text/preferences-desktop-font.png +0 -0
  266. data/samples/text/rich_textctrl.rb +290 -0
  267. data/samples/text/scintilla.rb +169 -0
  268. data/samples/text/textctrl.rb +111 -0
  269. data/samples/text/unicode.rb +242 -0
  270. data/samples/text/utf8.txt +15 -0
  271. data/samples/treectrl/icon1.xpm +79 -0
  272. data/samples/treectrl/icon2.xpm +53 -0
  273. data/samples/treectrl/icon3.xpm +79 -0
  274. data/samples/treectrl/icon4.xpm +43 -0
  275. data/samples/treectrl/icon5.xpm +79 -0
  276. data/samples/treectrl/treectrl.rb +1166 -0
  277. data/samples/xrc/samples.xrc +46 -0
  278. data/samples/xrc/xrc_sample.rb +76 -0
  279. metadata +330 -0
@@ -0,0 +1,85 @@
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
+ # Demonstrates a simple MDI (Multiple Document Interface) parent frame
11
+ # with menus to create, cycle through and close child frames within in.
12
+ #
13
+ # Note that MDI is only properly natively implemented on Windows, and
14
+ # even there it is deprecated by Microsoft as an application interface
15
+ # style.
16
+ #
17
+ # On Linux/GTK, Wx simulates an MDI by using a Notebook. On OS X, MDI is
18
+ # simulated simply by ordinary separate frames, and Next/Preview and
19
+ # Tile/Cascade are unimplemented.
20
+ #
21
+ # For these reasons, MDI is not recommended for cross-platform
22
+ # development. Alternative interface strategies include using separate
23
+ # frames, or the AUI classes.
24
+
25
+ class MDIFrame < Wx::MDIParentFrame
26
+ def initialize(title)
27
+ super(nil, :title => title, :size => [ 500, 400 ] )
28
+
29
+ @child_number = 0
30
+
31
+ menuFile = Wx::Menu.new
32
+ menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X")
33
+ evt_menu Wx::ID_EXIT, :close
34
+
35
+ menuMDI = Wx::Menu.new
36
+ menuMDI.append(Wx::ID_FORWARD, "&Next Child\tCtrl-F6")
37
+ evt_menu Wx::ID_FORWARD, :activate_next
38
+ menuMDI.append(Wx::ID_BACKWARD, "&Previous Child")
39
+ evt_menu Wx::ID_BACKWARD, :activate_previous
40
+ menuMDI.append_separator
41
+
42
+ mi_cascade = menuMDI.append("&Cascade")
43
+ evt_menu mi_cascade, :cascade
44
+ mi_tile = menuMDI.append("&Tile")
45
+ evt_menu mi_tile, :tile
46
+ menuMDI.append_separator
47
+
48
+ menuMDI.append(Wx::ID_NEW, "&Add Child")
49
+ evt_menu Wx::ID_NEW, :create_child
50
+ menuMDI.append(Wx::ID_CLOSE, "&Remove Child\tCtrl-F4")
51
+ evt_menu Wx::ID_CLOSE, :on_close_child
52
+
53
+ menuBar = Wx::MenuBar.new
54
+ menuBar.append(menuFile, "&File")
55
+ menuBar.append(menuMDI, "&Window")
56
+
57
+ self.menu_bar = menuBar
58
+
59
+ create_status_bar(2).set_status_widths([100, -1])
60
+ set_status_text("Some features only work on MS Windows", 1)
61
+
62
+ 3.times { create_child }
63
+ end
64
+
65
+ def on_close_child
66
+ if active_child
67
+ active_child.close
68
+ end
69
+ end
70
+
71
+ def create_child
72
+ @child_number += 1
73
+ name = "Child #{@child_number.to_s}"
74
+ child = Wx::MDIChildFrame.new(self, :title => name)
75
+ # Note that this is required on OS X; if no child frames are shown,
76
+ # then nothing is shown at all.
77
+ child.show
78
+ end
79
+ end
80
+
81
+ Wx::App.run do
82
+ MDIFrame.new("MDI Application").show # may return false on OS X
83
+ true
84
+ end
85
+
@@ -0,0 +1,167 @@
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
+ # This sample demonstrates the use of Wx::MediaCtrl, which can be used
11
+ # to playback sounds or movies using a platform-native player.
12
+ class MediaPanel < Wx::Panel
13
+ def initialize(parent)
14
+ super(parent, :style => Wx::TAB_TRAVERSAL|Wx::CLIP_CHILDREN)
15
+
16
+ # The actual media player control
17
+ @mc = Wx::MediaCtrl.new(self)
18
+
19
+ evt_media_loaded @mc,:on_media_loaded
20
+
21
+ # Some buttons to control playback
22
+ @btn_load = Wx::Button.new(self, :label => "Load File")
23
+ evt_button @btn_load,:on_load_file
24
+
25
+ @btn_play = Wx::Button.new(self, :label => "Play")
26
+ evt_button @btn_play, :on_play
27
+ @btn_play.disable
28
+
29
+ @btn_pause = Wx::Button.new(self, :label => "Pause")
30
+ evt_button @btn_pause, :on_pause
31
+ @btn_pause.disable
32
+
33
+ @btn_stop = Wx::Button.new(self, :label => "Stop")
34
+ evt_button @btn_stop,:on_stop
35
+ @btn_stop.disable
36
+
37
+ @slider = Wx::Slider.new(self, :min_value => 0, :max_value => 1)
38
+ @slider.min_size = [150, -1]
39
+ evt_slider @slider, :on_seek
40
+
41
+ @st_size = Wx::StaticText.new(self, :label => "", :size => [100, -1])
42
+ @st_len = Wx::StaticText.new(self, :label => "", :size => [100, -1])
43
+ @st_pos = Wx::StaticText.new(self, :label => "", :size => [100, -1])
44
+
45
+ # layout the panel
46
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
47
+
48
+ sizer.add(@mc, 1, Wx::EXPAND|Wx::ALL, 5)
49
+ sizer.add(@slider, 0, Wx::EXPAND|Wx::ALL, 5)
50
+
51
+ # For the playback text
52
+ secs_sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
53
+ secs_sizer.add(@st_pos, 0, Wx::ALL, 2)
54
+ secs_sizer.add(@st_len, 0, Wx::ALL, 2)
55
+ secs_sizer.add(@st_size, 0, Wx::ALL, 2)
56
+ sizer.add(secs_sizer, 0, Wx::ALIGN_RIGHT|Wx::ALL, 0)
57
+
58
+ btn_sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
59
+ btn_sizer.add(@btn_load, 1, Wx::ALL, 2)
60
+ btn_sizer.add(@btn_play, 1, Wx::ALL, 2)
61
+ btn_sizer.add(@btn_pause, 1, Wx::ALL, 2)
62
+ btn_sizer.add(@btn_stop, 1, Wx::ALL, 2)
63
+ sizer.add(btn_sizer, 0, Wx::ALL, 5)
64
+
65
+ self.sizer = sizer
66
+
67
+ @timer = Wx::Timer.new(self,101)
68
+ evt_timer(101,:on_timer)
69
+ @timer.start(100)
70
+ end
71
+
72
+ # Update the position indicator in seconds
73
+ def on_timer(evt)
74
+ offset = @mc.tell
75
+ # Will be -1 if nothing is loaded
76
+ if offset >= 0
77
+ @slider.value = offset
78
+ offset_secs = offset / 1000
79
+ @st_pos.label = "%i:%02d" % [ offset_secs / 60, offset_secs % 60 ]
80
+ else
81
+ @st_pos.label = ""
82
+ end
83
+ end
84
+
85
+ # Actually load a file into the mediactrl
86
+ def do_load_file(path)
87
+ @btn_play.disable
88
+ unless @mc.load(path)
89
+ Wx::message_box("Unable to load file", "ERROR",
90
+ Wx::ICON_ERROR|Wx::OK)
91
+ else
92
+
93
+ end
94
+ end
95
+
96
+ MEDIA_FILE_WILDCARD = "MP3 Files (*.mp3)|*.mp3|Avi Files (*.avi)|*.avi"
97
+ # Load a media file from disk
98
+ def on_load_file(evt)
99
+ dlg = Wx::FileDialog.new( self,
100
+ :message => "Choose a media file",
101
+ :wildcard => MEDIA_FILE_WILDCARD,
102
+ :style => Wx::OPEN)
103
+ if dlg.show_modal == Wx::ID_OK
104
+ do_load_file(dlg.path)
105
+ end
106
+ end
107
+
108
+ # Move the media to a position in the file, using the slider
109
+ def on_seek(evt)
110
+ offset = @slider.value
111
+ @mc.seek(offset)
112
+ end
113
+
114
+ # Set up the initial size for the move
115
+ def on_media_loaded(evt)
116
+ # Readjust to the original size of the video
117
+ @mc.set_initial_size
118
+
119
+ # Enable the control buttons
120
+ @btn_play.enable
121
+ @btn_pause.enable
122
+ @btn_stop.enable
123
+
124
+ # Update the length and position text indicators with the media's
125
+ # time length, shown as minutes and seconds
126
+ len_secs = @mc.length / 1000
127
+ @st_len.label = "%i:%02d" % [ len_secs / 60, len_secs % 60 ]
128
+
129
+ # Set the seek slider
130
+ @slider.set_range(0, @mc.length)
131
+
132
+ # Refresh the layout
133
+ sizer.layout
134
+ end
135
+
136
+ # Stop the playback
137
+ def on_stop(evt)
138
+ @mc.stop
139
+ end
140
+
141
+ # Pause the playback
142
+ def on_pause(evt)
143
+ @mc.pause
144
+ end
145
+
146
+ # Start the playback
147
+ def on_play(evt)
148
+ if not @mc.play
149
+ Wx::MessageBox("unable to play media","ERROR",Wx::ICON_ERROR|Wx::OK)
150
+ else
151
+ @mc.set_initial_size
152
+ sizer.layout
153
+ end
154
+ end
155
+ end
156
+
157
+ class MediaFrame<Wx::Frame
158
+ def initialize()
159
+ super(nil,:title=>"MediaCtrl test",:size=>[700,700])
160
+ win = MediaPanel.new(self)
161
+ end
162
+ end
163
+
164
+ # Actually run the app
165
+ Wx::App.run do
166
+ MediaFrame.new.show
167
+ end
@@ -0,0 +1,77 @@
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
+ # This sample shows a fairly minimal Wx::App using a Frame, with a
11
+ # MenuBar and StatusBar but no controls. For the absolute minimum app,
12
+ # see nothing.rb
13
+
14
+ # A Wx::Frame is a self-contained, top-level Window that can contain
15
+ # controls, menubars, and statusbars
16
+ class MinimalFrame < Wx::Frame
17
+ def initialize(title)
18
+ # The main application frame has no parent (nil)
19
+ super(nil, :title => title, :size => [ 400, 300 ])
20
+
21
+ # Give the frame an icon. PNG is a good choice of format for
22
+ # cross-platform images. Note that OS X doesn't have "Frame" icons.
23
+ icon_file = File.join( File.dirname(__FILE__)+"/../../art", "wxruby.png")
24
+ self.icon = Wx::Icon.new(icon_file)
25
+
26
+ menu_bar = Wx::MenuBar.new
27
+ # The "file" menu
28
+ menu_file = Wx::Menu.new
29
+ # Using Wx::ID_EXIT standard id means the menu item will be given
30
+ # the right label for the platform and language, and placed in the
31
+ # correct platform-specific menu - eg on OS X, in the Application's menu
32
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
33
+ menu_bar.append(menu_file, "&File")
34
+
35
+ # The "help" menu
36
+ menu_help = Wx::Menu.new
37
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
38
+ menu_bar.append(menu_help, "&Help")
39
+
40
+ # Assign the menubar to this frame
41
+ self.menu_bar = menu_bar
42
+
43
+ # Create a status bar at the bottom of the frame
44
+ create_status_bar(2)
45
+ self.status_text = "Welcome to wxRuby!"
46
+
47
+ # Set it up to handle menu events using the relevant methods.
48
+ evt_menu Wx::ID_EXIT, :on_quit
49
+ evt_menu Wx::ID_ABOUT, :on_about
50
+ end
51
+
52
+ # End the application; it should finish automatically when the last
53
+ # window is closed.
54
+ def on_quit
55
+ close()
56
+ end
57
+
58
+ # show an 'About' dialog - WxRuby's about_box function will show a
59
+ # platform-native 'About' dialog, but you could also use an ordinary
60
+ # Wx::MessageDialog here.
61
+ def on_about
62
+ Wx::about_box(:name => self.title,
63
+ :version => Wx::WXRUBY_VERSION,
64
+ :description => "This is the minimal sample",
65
+ :developers => ['The wxRuby Development Team'] )
66
+ end
67
+ end
68
+
69
+ # Wx::App is the container class for any wxruby app. To start an
70
+ # application, either define a subclass of Wx::App, create an instance,
71
+ # and call its main_loop method, OR, simply call the Wx::App.run class
72
+ # method, as shown here.
73
+ Wx::App.run do
74
+ self.app_name = 'Minimal'
75
+ frame = MinimalFrame.new("Minimal wxRuby App")
76
+ frame.show
77
+ end
@@ -0,0 +1,16 @@
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
+ # This is the minimum code to start a WxRuby app - create a Frame, and
12
+ # show it.
13
+ Wx::App.run do
14
+ frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
15
+ frame.show
16
+ end
@@ -0,0 +1,130 @@
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
+ require 'gl'
10
+ require 'glu'
11
+
12
+ include Gl
13
+ include Glu
14
+
15
+ class CubeFrame < Wx::Frame
16
+ def initialize(title)
17
+ super(nil, :title => title, :size => [ 600, 400 ])
18
+
19
+ sizer = Wx::VBoxSizer.new
20
+
21
+ attrib = [Wx::GL_RGBA, Wx::GL_DOUBLEBUFFER, Wx::GL_DEPTH_SIZE, 24]
22
+ @canvas = Wx::GLCanvas.new(self, -1, [-1, -1], [-1, -1],
23
+ Wx::FULL_REPAINT_ON_RESIZE, "GLCanvas", attrib)
24
+ sizer.add_item @canvas, :proportion => 1, :flag => Wx::EXPAND
25
+
26
+ text = Wx::StaticText.new(self, :label => "Use Up/Down/Left/Right keys to rotate the cube")
27
+ sizer.add_item text
28
+
29
+ self.sizer = sizer
30
+ self.show
31
+
32
+ @canvas.set_focus
33
+ @canvas.evt_key_down {|evt| on_key_down(evt.get_key_code) }
34
+
35
+ @canvas.evt_paint { @canvas.paint { render } }
36
+ @rotate = [30.0, 0.0, -30.0]
37
+
38
+ end
39
+
40
+ def on_key_down(key)
41
+ case key
42
+ when Wx::K_UP
43
+ @rotate[0] -= 3.0
44
+ when Wx::K_DOWN
45
+ @rotate[0] += 3.0
46
+ when Wx::K_LEFT
47
+ @rotate[2] -= 3.0
48
+ when Wx::K_RIGHT
49
+ @rotate[2] += 3.0
50
+ end
51
+ render
52
+ end
53
+
54
+ def render
55
+ @canvas.set_current
56
+ sz = @canvas.size
57
+ w = sz.width
58
+ h = sz.height
59
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
60
+ glEnable(GL_DEPTH_TEST)
61
+ glViewport(0, 0, w, h)
62
+ glMatrixMode(GL_PROJECTION)
63
+ glLoadIdentity()
64
+ gluPerspective(30.0, w.to_f/h.to_f, 0.1, 1000.0)
65
+ glMatrixMode(GL_MODELVIEW)
66
+ glLoadIdentity()
67
+ gluLookAt(0.0, -10.0, 0.0,
68
+ 0.0, 0.0, 0.0,
69
+ 0.0, 0.0, 1.0)
70
+ glRotate(@rotate[0], 1.0, 0.0, 0.0)
71
+ glRotate(@rotate[1], 0.0, 1.0, 0.0)
72
+ glRotate(@rotate[2], 0.0, 0.0, 1.0)
73
+ glBegin(GL_TRIANGLES)
74
+ #left
75
+ glColor3d(1.0, 1.0, 0.0) # yellow
76
+ glVertex3d(-1.0, 1.0, 1.0)
77
+ glVertex3d(-1.0, 1.0,-1.0)
78
+ glVertex3d(-1.0,-1.0, 1.0)
79
+ glVertex3d(-1.0,-1.0, 1.0)
80
+ glVertex3d(-1.0, 1.0,-1.0)
81
+ glVertex3d(-1.0,-1.0,-1.0)
82
+ #right
83
+ glColor3d(0.0, 1.0, 0.0) # green
84
+ glVertex3d( 1.0,-1.0, 1.0)
85
+ glVertex3d( 1.0,-1.0,-1.0)
86
+ glVertex3d( 1.0, 1.0, 1.0)
87
+ glVertex3d( 1.0, 1.0, 1.0)
88
+ glVertex3d( 1.0,-1.0,-1.0)
89
+ glVertex3d( 1.0, 1.0,-1.0)
90
+ #up
91
+ glColor3d(0.0, 0.0, 1.0) # blue
92
+ glVertex3d(-1.0, 1.0, 1.0)
93
+ glVertex3d(-1.0,-1.0, 1.0)
94
+ glVertex3d( 1.0, 1.0, 1.0)
95
+ glVertex3d( 1.0, 1.0, 1.0)
96
+ glVertex3d(-1.0,-1.0, 1.0)
97
+ glVertex3d( 1.0,-1.0, 1.0)
98
+ #down
99
+ glColor3d(0.0, 1.0, 1.0) # cyan
100
+ glVertex3d(-1.0,-1.0,-1.0)
101
+ glVertex3d(-1.0, 1.0,-1.0)
102
+ glVertex3d( 1.0,-1.0,-1.0)
103
+ glVertex3d( 1.0,-1.0,-1.0)
104
+ glVertex3d(-1.0, 1.0,-1.0)
105
+ glVertex3d( 1.0, 1.0,-1.0)
106
+ #front
107
+ glColor3d(1.0, 0.0, 0.0) # red
108
+ glVertex3d(-1.0,-1.0, 1.0)
109
+ glVertex3d(-1.0,-1.0,-1.0)
110
+ glVertex3d( 1.0,-1.0, 1.0)
111
+ glVertex3d( 1.0,-1.0, 1.0)
112
+ glVertex3d(-1.0,-1.0,-1.0)
113
+ glVertex3d( 1.0,-1.0,-1.0)
114
+ #back
115
+ glColor3d(1.0, 0.0, 1.0) # magenta
116
+ glVertex3d( 1.0, 1.0, 1.0)
117
+ glVertex3d( 1.0, 1.0,-1.0)
118
+ glVertex3d(-1.0, 1.0, 1.0)
119
+ glVertex3d(-1.0, 1.0, 1.0)
120
+ glVertex3d( 1.0, 1.0,-1.0)
121
+ glVertex3d(-1.0, 1.0,-1.0)
122
+ glEnd()
123
+ @canvas.swap_buffers
124
+ end
125
+ end
126
+
127
+ Wx::App.run do
128
+ self.app_name = 'GLCanvas Cube'
129
+ frame = CubeFrame.new("OpenGL Canvas wxRuby App")
130
+ end