wxruby-ruby19 1.9.8-x86-darwin-9 → 1.9.10-x86-darwin-9

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 (220) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx.rb +2 -2
  4. data/lib/wx/accessors.rb +7 -1
  5. data/lib/wx/classes/app.rb +10 -4
  6. data/lib/wx/classes/bitmap.rb +29 -1
  7. data/lib/wx/classes/clipboard.rb +19 -3
  8. data/lib/wx/classes/colour.rb +6 -4
  9. data/lib/wx/classes/data_object.rb +14 -0
  10. data/lib/wx/classes/data_object_simple.rb +6 -0
  11. data/lib/wx/classes/dataformat.rb +23 -0
  12. data/lib/wx/classes/evthandler.rb +79 -4
  13. data/lib/wx/classes/genericdirctrl.rb +36 -0
  14. data/lib/wx/classes/grid.rb +8 -0
  15. data/lib/wx/classes/hboxsizer.rb +6 -0
  16. data/lib/wx/classes/icon.rb +12 -1
  17. data/lib/wx/classes/image.rb +13 -1
  18. data/lib/wx/classes/listctrl.rb +12 -0
  19. data/lib/wx/classes/point.rb +8 -0
  20. data/lib/wx/classes/rect.rb +10 -1
  21. data/lib/wx/classes/richtextctrl.rb +63 -0
  22. data/lib/wx/classes/size.rb +9 -0
  23. data/lib/wx/classes/sizer.rb +18 -3
  24. data/lib/wx/classes/standardpaths.rb +9 -0
  25. data/lib/wx/classes/texturlevent.rb +14 -2
  26. data/lib/wx/classes/toolbar.rb +4 -6
  27. data/lib/wx/classes/vboxsizer.rb +6 -0
  28. data/lib/wx/classes/window.rb +7 -0
  29. data/lib/wx/classes/xmlresource.rb +17 -0
  30. data/lib/wx/helpers.rb +16 -1
  31. data/lib/wx/keyword_ctors.rb +3 -2
  32. data/lib/wx/keyword_defs.rb +56 -5
  33. data/lib/wx/version.rb +1 -1
  34. data/lib/wxruby2.bundle +0 -0
  35. data/samples/SAMPLES-LICENSE.TXT +18 -0
  36. data/samples/aui/aui.rb +1356 -0
  37. data/samples/bigdemo/About.rbw +39 -0
  38. data/samples/bigdemo/ColorPanel.rbw +23 -0
  39. data/samples/bigdemo/GridSimple.rbw +78 -0
  40. data/samples/bigdemo/MDIDemo.rbw +57 -0
  41. data/samples/bigdemo/PopupMenu.rbw +149 -0
  42. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  43. data/samples/bigdemo/Sizers.rbw +543 -0
  44. data/samples/bigdemo/bigdemo.rb +823 -0
  45. data/samples/bigdemo/demoTemplate.rbw +33 -0
  46. data/samples/bigdemo/helpfile.htb +0 -0
  47. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  48. data/samples/bigdemo/icons/Test 015.png +0 -0
  49. data/samples/bigdemo/icons/choice.bmp +0 -0
  50. data/samples/bigdemo/icons/choice.xpm +27 -0
  51. data/samples/bigdemo/icons/combo.bmp +0 -0
  52. data/samples/bigdemo/icons/combo.xpm +27 -0
  53. data/samples/bigdemo/icons/copy.xpm +25 -0
  54. data/samples/bigdemo/icons/cut.xpm +24 -0
  55. data/samples/bigdemo/icons/gauge.bmp +0 -0
  56. data/samples/bigdemo/icons/gauge.xpm +27 -0
  57. data/samples/bigdemo/icons/help.xpm +25 -0
  58. data/samples/bigdemo/icons/list.bmp +0 -0
  59. data/samples/bigdemo/icons/list.xpm +27 -0
  60. data/samples/bigdemo/icons/mondrian.ico +0 -0
  61. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  62. data/samples/bigdemo/icons/new.xpm +24 -0
  63. data/samples/bigdemo/icons/ogl.ico +0 -0
  64. data/samples/bigdemo/icons/ogl.xpm +45 -0
  65. data/samples/bigdemo/icons/open.xpm +26 -0
  66. data/samples/bigdemo/icons/paste.bmp +0 -0
  67. data/samples/bigdemo/icons/paste.xpm +38 -0
  68. data/samples/bigdemo/icons/pointy.png +0 -0
  69. data/samples/bigdemo/icons/preview.xpm +26 -0
  70. data/samples/bigdemo/icons/print.xpm +26 -0
  71. data/samples/bigdemo/icons/radio.bmp +0 -0
  72. data/samples/bigdemo/icons/radio.xpm +27 -0
  73. data/samples/bigdemo/icons/robert.xpm +415 -0
  74. data/samples/bigdemo/icons/ruby.png +0 -0
  75. data/samples/bigdemo/icons/sashtest.ico +0 -0
  76. data/samples/bigdemo/icons/save.xpm +25 -0
  77. data/samples/bigdemo/icons/smiles.bmp +0 -0
  78. data/samples/bigdemo/icons/smiles.xpm +39 -0
  79. data/samples/bigdemo/icons/smiley.ico +0 -0
  80. data/samples/bigdemo/icons/smiley.xpm +42 -0
  81. data/samples/bigdemo/icons/stattext.xpm +24 -0
  82. data/samples/bigdemo/icons/test2.bmp +0 -0
  83. data/samples/bigdemo/icons/test2.png +0 -0
  84. data/samples/bigdemo/icons/test2.xpm +79 -0
  85. data/samples/bigdemo/icons/text.bmp +0 -0
  86. data/samples/bigdemo/icons/text.xpm +27 -0
  87. data/samples/bigdemo/icons/tog1.bmp +0 -0
  88. data/samples/bigdemo/icons/tog1.xpm +38 -0
  89. data/samples/bigdemo/icons/tog2.bmp +0 -0
  90. data/samples/bigdemo/icons/tog2.xpm +38 -0
  91. data/samples/bigdemo/icons/wxwin.ico +0 -0
  92. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  93. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  94. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  95. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  96. data/samples/bigdemo/run.rb +90 -0
  97. data/samples/bigdemo/tips.txt +7 -0
  98. data/samples/bigdemo/utils.rb +12 -0
  99. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  100. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  101. data/samples/bigdemo/wxButton.rbw +64 -0
  102. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  103. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  104. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  105. data/samples/bigdemo/wxChoice.rbw +47 -0
  106. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  107. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  108. data/samples/bigdemo/wxComboBox.rbw +77 -0
  109. data/samples/bigdemo/wxCursor.rbw +136 -0
  110. data/samples/bigdemo/wxDialog.rbw +74 -0
  111. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  112. data/samples/bigdemo/wxDragImage.rbw +70 -0
  113. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  114. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  115. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  116. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  117. data/samples/bigdemo/wxFrame.rbw +53 -0
  118. data/samples/bigdemo/wxGauge.rbw +71 -0
  119. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  120. data/samples/bigdemo/wxGrid.rbw +66 -0
  121. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  122. data/samples/bigdemo/wxListBox.rbw +140 -0
  123. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  124. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  125. data/samples/bigdemo/wxMenu.rbw +236 -0
  126. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  127. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  128. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  129. data/samples/bigdemo/wxNotebook.rbw +136 -0
  130. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  131. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  132. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  133. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  134. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  135. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  136. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  137. data/samples/bigdemo/wxSlider.rbw +42 -0
  138. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  139. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  140. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  141. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  142. data/samples/bigdemo/wxStaticText.rbw +55 -0
  143. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  144. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  145. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  146. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  147. data/samples/bigdemo/wxToolBar.rbw +131 -0
  148. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  149. data/samples/calendar/calendar.rb +256 -0
  150. data/samples/caret/caret.rb +282 -0
  151. data/samples/caret/mondrian.xpm +44 -0
  152. data/samples/controls/controls.rb +1136 -0
  153. data/samples/controls/get_item_sample.rb +87 -0
  154. data/samples/controls/icons/choice.xpm +27 -0
  155. data/samples/controls/icons/combo.xpm +27 -0
  156. data/samples/controls/icons/gauge.xpm +27 -0
  157. data/samples/controls/icons/list.xpm +27 -0
  158. data/samples/controls/icons/radio.xpm +27 -0
  159. data/samples/controls/icons/stattext.xpm +24 -0
  160. data/samples/controls/icons/text.xpm +27 -0
  161. data/samples/controls/mondrian.ico +0 -0
  162. data/samples/controls/mondrian.xpm +44 -0
  163. data/samples/controls/test2.bmp +0 -0
  164. data/samples/dialogs/dialogs.rb +797 -0
  165. data/samples/dialogs/tips.txt +18 -0
  166. data/samples/dragdrop/dragdrop.rb +177 -0
  167. data/samples/drawing/graphics_drawing.rb +235 -0
  168. data/samples/drawing/images.rb +37 -0
  169. data/samples/drawing/paperclip.png +0 -0
  170. data/samples/etc/activation.rb +102 -0
  171. data/samples/etc/choice.rb +67 -0
  172. data/samples/etc/miniframe.rb +79 -0
  173. data/samples/etc/sash.rb +130 -0
  174. data/samples/etc/scrollwin.rb +110 -0
  175. data/samples/etc/system_settings.rb +252 -0
  176. data/samples/etc/threaded.rb +72 -0
  177. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  178. data/samples/etc/wizard.rb +74 -0
  179. data/samples/event/event.rb +182 -0
  180. data/samples/event/update_ui_event.rb +70 -0
  181. data/samples/grid/grid.rb +198 -0
  182. data/samples/grid/gridtablebase.rb +148 -0
  183. data/samples/html/html.rb +262 -0
  184. data/samples/listbook/listbook.rb +174 -0
  185. data/samples/listbook/listbook.xrc +370 -0
  186. data/samples/mdi/mdi.rb +85 -0
  187. data/samples/media/mediactrl.rb +167 -0
  188. data/samples/minimal/minimal.rb +77 -0
  189. data/samples/minimal/mondrian.ico +0 -0
  190. data/samples/minimal/mondrian.png +0 -0
  191. data/samples/minimal/nothing.rb +16 -0
  192. data/samples/opengl/cube.rb +117 -0
  193. data/samples/printing/mondrian.ico +0 -0
  194. data/samples/printing/mondrian.xpm +44 -0
  195. data/samples/printing/printing.rb +487 -0
  196. data/samples/sockets/SocketPackets.rb +27 -0
  197. data/samples/sockets/res/message-new.png +0 -0
  198. data/samples/sockets/res/user.png +0 -0
  199. data/samples/sockets/wxClient.rb +395 -0
  200. data/samples/sockets/wxServer.rb +422 -0
  201. data/samples/sockets/wxSocketGUI.rb +97 -0
  202. data/samples/text/format-text-bold.png +0 -0
  203. data/samples/text/format-text-italic.png +0 -0
  204. data/samples/text/format-text-underline.png +0 -0
  205. data/samples/text/mondrian.ico +0 -0
  206. data/samples/text/mondrian.xpm +44 -0
  207. data/samples/text/rich_textctrl.rb +98 -0
  208. data/samples/text/scintilla.rb +169 -0
  209. data/samples/text/textctrl.rb +111 -0
  210. data/samples/text/unicode.rb +242 -0
  211. data/samples/text/utf8.txt +15 -0
  212. data/samples/treectrl/icon1.xpm +79 -0
  213. data/samples/treectrl/icon2.xpm +53 -0
  214. data/samples/treectrl/icon3.xpm +79 -0
  215. data/samples/treectrl/icon4.xpm +43 -0
  216. data/samples/treectrl/icon5.xpm +79 -0
  217. data/samples/treectrl/treectrl.rb +1166 -0
  218. data/samples/xrc/samples.xrc +46 -0
  219. data/samples/xrc/xrc_sample.rb +76 -0
  220. metadata +17 -3
@@ -0,0 +1,252 @@
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 example lists the various system settings that WxRuby knows
11
+ # about. To use it, run it and use the 'View' menu to list the different
12
+ # groups of settings available.
13
+
14
+ # A class to display system settings in a spreadsheet-like table.
15
+ class SystemSettingsTable < Wx::Grid
16
+ def initialize(parent)
17
+ super(parent, -1)
18
+ max_length = [ COLOURS.length, FONTS.length, METRICS.length ].max
19
+ create_grid( max_length, 3)
20
+
21
+ set_row_label_size(0)
22
+ set_row_label_alignment(Wx::ALIGN_RIGHT, Wx::ALIGN_CENTRE)
23
+
24
+ set_col_label_value(0, 'Name')
25
+ set_col_size(0, 200)
26
+ set_col_label_value(1, 'Value')
27
+ set_col_size(1, 100)
28
+ set_col_label_value(2, 'Description')
29
+ set_col_size(2, 300)
30
+ end
31
+
32
+ # blank out all row labels from +from_row+ to the end of the grid.
33
+ def tidy_row_labels(from_row = 0)
34
+ from_row.upto( get_number_rows - 1 ) do | row |
35
+ set_row_label_value(row, '')
36
+ end
37
+ end
38
+
39
+ # display a settings constant name +const+, its value +value+ and a
40
+ # text description +desc+ of that setting in the row +row+
41
+ def list(row, const, val, desc)
42
+ set_cell_value(row, 0, const)
43
+ set_cell_value(row, 1, val.to_s() )
44
+ set_cell_value(row, 2, desc)
45
+ end
46
+
47
+ # List the elements of the system's colour scheme, giving each one's
48
+ # Wx constant name, its RGB value in hex, and the description of how it
49
+ # is used.
50
+ def list_colours
51
+ clear_grid()
52
+ COLOURS.each_with_index do | item, i |
53
+ constant_name, description = *item
54
+ const = Wx::const_get(constant_name)
55
+ # obtain a Wx::Colour object for the named constantb
56
+ colour = Wx::SystemSettings.get_colour(const)
57
+ colour_hex = '#%02X%02X%02X' %
58
+ [ colour.red, colour.green, colour.blue ]
59
+ list( i, constant_name, colour_hex, description )
60
+ end
61
+ tidy_row_labels(COLOURS.length)
62
+ end
63
+
64
+ # List the standard system fonts, giving each one's Wx contant name,
65
+ # the font's platform descriptor, and a description of its use.
66
+ def list_fonts
67
+ clear_grid()
68
+ FONTS.each_with_index do | item, i |
69
+ constant_name, description = *item
70
+ const = Wx::const_get(constant_name)
71
+ # obtain a standard system font
72
+ font = Wx::SystemSettings.get_font(const)
73
+ font_desc = "%s %ipt" %
74
+ [ font.get_face_name, font.get_point_size ]
75
+ list( i, constant_name, font_desc, description )
76
+ end
77
+ tidy_row_labels(FONTS.length)
78
+ end
79
+
80
+ # List various standard measurements of GUI elements and areas, such as
81
+ # the size of the screen, cursor, icons and window borders. For each
82
+ # one, the WxRuby constant name, the value (usually in pixels), and a
83
+ # short description of its use is given.
84
+ #
85
+ # Not all metrics are implemented in Wx on all platforms; undefined
86
+ # values are shown as '-1'.
87
+ def list_metrics
88
+ clear_grid()
89
+ METRICS.each_with_index do | item, i |
90
+ constant_name, description = *item
91
+ const = Wx::const_get(constant_name)
92
+ # obtain a standard system metric
93
+ metric = Wx::SystemSettings.get_metric(const)
94
+ list( i, constant_name, metric, description )
95
+ end
96
+ tidy_row_labels(METRICS.length)
97
+ end
98
+
99
+ # copied from WxWidgets 2.6.2 documentation
100
+ COLOURS = [
101
+ [ 'SYS_COLOUR_SCROLLBAR', 'The scrollbar grey area.' ],
102
+ [ 'SYS_COLOUR_BACKGROUND', 'The desktop colour.' ],
103
+ [ 'SYS_COLOUR_ACTIVECAPTION', 'Active window caption.' ],
104
+ [ 'SYS_COLOUR_INACTIVECAPTION', 'Inactive window caption.' ],
105
+ [ 'SYS_COLOUR_MENU', 'Menu background.' ],
106
+ [ 'SYS_COLOUR_WINDOW', 'Window background.' ],
107
+ [ 'SYS_COLOUR_WINDOWFRAME', 'Window frame.' ],
108
+ [ 'SYS_COLOUR_MENUTEXT', 'Menu text.' ],
109
+ [ 'SYS_COLOUR_WINDOWTEXT', 'Text in windows.' ],
110
+ [ 'SYS_COLOUR_CAPTIONTEXT', 'Text in caption, size box and scrollbar arrow box.' ],
111
+ [ 'SYS_COLOUR_ACTIVEBORDER', 'Active window border.' ],
112
+ [ 'SYS_COLOUR_INACTIVEBORDER', 'Inactive window border.' ],
113
+ [ 'SYS_COLOUR_APPWORKSPACE', 'Background colour MDI applications.' ],
114
+ [ 'SYS_COLOUR_HIGHLIGHT', 'Item(s) selected in a control.' ],
115
+ [ 'SYS_COLOUR_HIGHLIGHTTEXT', 'Text of item(s) selected in a control.' ],
116
+ [ 'SYS_COLOUR_BTNFACE', 'Face shading on push buttons.' ],
117
+ [ 'SYS_COLOUR_BTNSHADOW', 'Edge shading on push buttons.' ],
118
+ [ 'SYS_COLOUR_GRAYTEXT', 'Greyed (disabled) text.' ],
119
+ [ 'SYS_COLOUR_BTNTEXT', 'Text on push buttons.' ],
120
+ [ 'SYS_COLOUR_INACTIVECAPTIONTEXT', 'Colour of text in active captions.' ],
121
+ [ 'SYS_COLOUR_BTNHIGHLIGHT', 'Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT).' ],
122
+ [ 'SYS_COLOUR_3DDKSHADOW', 'Dark shadow for three-dimensional display elements.' ],
123
+ [ 'SYS_COLOUR_3DLIGHT', 'Light colour for three-dimensional display elements.' ],
124
+ [ 'SYS_COLOUR_INFOTEXT', 'Text colour for tooltip controls.' ],
125
+ [ 'SYS_COLOUR_INFOBK', 'Background colour for tooltip controls.' ],
126
+ [ 'SYS_COLOUR_DESKTOP', 'Same as wxSYS_COLOUR_BACKGROUND.' ],
127
+ [ 'SYS_COLOUR_3DFACE', 'Same as wxSYS_COLOUR_BTNFACE.' ],
128
+ [ 'SYS_COLOUR_3DSHADOW', 'Same as wxSYS_COLOUR_BTNSHADOW.' ],
129
+ [ 'SYS_COLOUR_3DHIGHLIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ],
130
+ [ 'SYS_COLOUR_3DHILIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ],
131
+ [ 'SYS_COLOUR_BTNHILIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ]
132
+ ]
133
+
134
+ # copied from WxWidgets 2.6.2 documentation
135
+ FONTS = [
136
+ [ 'SYS_OEM_FIXED_FONT', 'Original equipment manufacturer dependent fixed-pitch font.' ],
137
+ [ 'SYS_ANSI_FIXED_FONT', 'Windows fixed-pitch font.' ],
138
+ [ 'SYS_ANSI_VAR_FONT', 'Windows variable-pitch (proportional) font.' ],
139
+ [ 'SYS_SYSTEM_FONT', 'System font.' ],
140
+ [ 'SYS_DEVICE_DEFAULT_FONT', 'Device-dependent font (Windows NT only).' ],
141
+ [ 'SYS_DEFAULT_GUI_FONT', 'Default font for user interface objects such as menus and dialog boxes.' ]
142
+ ]
143
+
144
+ # copied from WxWidgets 2.6.2 documentation
145
+ METRICS = [
146
+ [ 'SYS_MOUSE_BUTTONS', 'Number of buttons on mouse, or zero if no mouse was installed.' ],
147
+ [ 'SYS_BORDER_X', 'Width of single border.' ],
148
+ [ 'SYS_BORDER_Y', 'Height of single border.' ],
149
+ [ 'SYS_CURSOR_X', 'Width of cursor.' ],
150
+ [ 'SYS_CURSOR_Y', 'Height of cursor.' ],
151
+ [ 'SYS_DCLICK_X', 'Width in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click.' ],
152
+ [ 'SYS_DCLICK_Y', 'Height in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click.' ],
153
+ [ 'SYS_DRAG_X', 'Width in pixels of a rectangle centered on a drag point to allow for limited movement of the mouse pointer before a drag operation begins.' ],
154
+ [ 'SYS_DRAG_Y', 'Height in pixels of a rectangle centered on a drag point to allow for limited movement of the mouse pointer before a drag operation begins.' ],
155
+ [ 'SYS_EDGE_X', 'Width of a 3D border, in pixels.' ],
156
+ [ 'SYS_EDGE_Y', 'Height of a 3D border, in pixels.' ],
157
+ [ 'SYS_HSCROLL_ARROW_X', 'Width of arrow bitmap on horizontal scrollbar.' ],
158
+ [ 'SYS_HSCROLL_ARROW_Y', 'Height of arrow bitmap on horizontal scrollbar.' ],
159
+ [ 'SYS_HTHUMB_X', 'Width of horizontal scrollbar thumb.' ],
160
+ [ 'SYS_ICON_X', 'The default width of an icon.' ],
161
+ [ 'SYS_ICON_Y', 'The default height of an icon.' ],
162
+ [ 'SYS_ICONSPACING_X', 'Width of a grid cell for items in large icon view, in pixels. Each item fits into a rectangle of this size when arranged.' ],
163
+ [ 'SYS_ICONSPACING_Y', 'Height of a grid cell for items in large icon view, in pixels. Each item fits into a rectangle of this size when arranged.' ],
164
+ [ 'SYS_WINDOWMIN_X', 'Minimum width of a window.' ],
165
+ [ 'SYS_WINDOWMIN_Y', 'Minimum height of a window.' ],
166
+ [ 'SYS_SCREEN_X', 'Width of the screen in pixels.' ],
167
+ [ 'SYS_SCREEN_Y', 'Height of the screen in pixels.' ],
168
+ [ 'SYS_FRAMESIZE_X', 'Width of the window frame for a wxTHICK_FRAME window.' ],
169
+ [ 'SYS_FRAMESIZE_Y', 'Height of the window frame for a wxTHICK_FRAME window.' ],
170
+ [ 'SYS_SMALLICON_X', 'Recommended width of a small icon (in window captions, and small icon view).' ],
171
+ [ 'SYS_SMALLICON_Y', 'Recommended height of a small icon (in window captions, and small icon view).' ],
172
+ [ 'SYS_HSCROLL_Y', 'Height of horizontal scrollbar in pixels.' ],
173
+ [ 'SYS_VSCROLL_X', 'Width of vertical scrollbar in pixels.' ],
174
+ [ 'SYS_VSCROLL_ARROW_X', 'Width of arrow bitmap on a vertical scrollbar.' ],
175
+ [ 'SYS_VSCROLL_ARROW_Y', 'Height of arrow bitmap on a vertical scrollbar.' ],
176
+ [ 'SYS_VTHUMB_Y', 'Height of vertical scrollbar thumb.' ],
177
+ [ 'SYS_CAPTION_Y', 'Height of normal caption area.' ],
178
+ [ 'SYS_MENU_Y', 'Height of single-line menu bar.' ],
179
+ [ 'SYS_NETWORK_PRESENT', '1 if there is a network present, 0 otherwise.' ],
180
+ [ 'SYS_PENWINDOWS_PRESENT', '1 if PenWindows is installed, 0 otherwise.' ],
181
+ [ 'SYS_SHOW_SOUNDS', 'Non-zero if the user requires an application to present information visually in situations where it would otherwise present the information only in audible form; zero otherwise.' ],
182
+ [ 'SYS_SWAP_BUTTONS', 'Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise.' ]
183
+ ]
184
+ end
185
+
186
+
187
+ # A simple frame that just shows a table with the System Settings in it.
188
+ class SettingsFrame < Wx::Frame
189
+
190
+ def initialize(title, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE)
191
+ super(nil, -1, title, pos, size)
192
+ sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
193
+ @table = SystemSettingsTable.new(self)
194
+ sizer.add(@table, 1, Wx::ADJUST_MINSIZE|Wx::GROW|Wx::ALL, 2)
195
+ self.set_sizer(sizer)
196
+ construct_menus()
197
+ @table.list_colours()
198
+ end
199
+
200
+ ID_SHOW_COLOURS = 1
201
+ ID_SHOW_FONTS = 2
202
+ ID_SHOW_METRICS = 3
203
+ def construct_menus()
204
+ menu_bar = Wx::MenuBar.new()
205
+
206
+ menu_file = Wx::Menu.new()
207
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
208
+ menu_bar.append(menu_file, "&File")
209
+ evt_menu(Wx::ID_EXIT) { on_quit() }
210
+
211
+ menu_view = Wx::Menu.new()
212
+ menu_view.append(ID_SHOW_COLOURS,
213
+ "Show &Colours", "Show system colours")
214
+ evt_menu(ID_SHOW_COLOURS) { @table.list_colours() }
215
+ menu_view.append(ID_SHOW_FONTS,
216
+ "Show &Fonts", "Show system fonts")
217
+ evt_menu(ID_SHOW_FONTS) { @table.list_fonts() }
218
+ menu_view.append(ID_SHOW_METRICS,
219
+ "Show &Metrics", "Show system metrics")
220
+ evt_menu(ID_SHOW_METRICS) { @table.list_metrics() }
221
+ menu_bar.append(menu_view, "&View")
222
+
223
+ menu_help = Wx::Menu.new()
224
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
225
+ evt_menu(Wx::ID_ABOUT) { on_about() }
226
+ menu_bar.append(menu_help, "&Help")
227
+
228
+ set_menu_bar(menu_bar)
229
+ end
230
+
231
+ def on_quit()
232
+ close(TRUE)
233
+ end
234
+
235
+ def on_about()
236
+ msg = sprintf("This is the About dialog of the minimal sample.\n" \
237
+ "Welcome to %s", Wx::VERSION_STRING)
238
+ Wx::message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
239
+ end
240
+ end
241
+
242
+ class MyApp < Wx::App
243
+ def on_init()
244
+ frame = SettingsFrame.new("System Settings",
245
+ Wx::DEFAULT_POSITION,
246
+ Wx::Size.new(600, 400) )
247
+ frame.show(TRUE)
248
+ end
249
+ end
250
+
251
+ # run the app
252
+ MyApp.new.main_loop()
@@ -0,0 +1,72 @@
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 simple sample demonstrates how to use Ruby 1.8's lightweight
11
+ # (green) threads to execute non-GUI code in parallel with a wxRuby
12
+ # GUI. This strategy is useful in a number of situations:
13
+ #
14
+ # * To keep the GUI responsive whilst computationally intensive
15
+ # operations are carried out in the background
16
+ # * To keep the GUI responsive while waiting for networking operations
17
+ # to complete
18
+ #
19
+ # The basic problem is that, as with other Ruby GUI toolkits, non-GUI
20
+ # threads will not, by default, get allocated time to run while Ruby is
21
+ # busy in Wx code - the main wxRuby event loop. Strategies to deal with
22
+ # this include using non-blocking IO, and, more generically, using
23
+ # wxRuby's Timer class to explicitly allocate time for non-GUI threads
24
+ # to run. The latter technique is shown here.
25
+
26
+ # This frame shows a set of progress bars which monitor progress of
27
+ # long-running tasks. In this example, this long-running task is
28
+ # emulated by simply sleep-ing for random periods, but could equally be
29
+ # downloading from a socket or parsing a file.
30
+ class ProgressFrame < Wx::Frame
31
+ STEPS = 20
32
+ def initialize
33
+ super(nil, :title => 'Threading demo')
34
+ @gauges = []
35
+ panel = Wx::Panel.new(self)
36
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
37
+ # show ten gauges
38
+ 10.times do
39
+ gauge = Wx::Gauge.new(panel, :range => STEPS)
40
+ # For each gauge, start a new thread in which the task runs
41
+ Thread.new do
42
+ # The long-running task
43
+ STEPS.times do | i |
44
+ sleep rand(100) / 50.0
45
+ # Update the main GUI
46
+ gauge.value = i + 1
47
+ end
48
+ end
49
+ @gauges << gauge
50
+ sizer.add(gauge, 0, Wx::GROW|Wx::ALL, 2)
51
+ end
52
+ panel.sizer = sizer
53
+ sizer.fit(panel)
54
+ end
55
+ end
56
+
57
+ # This app class creates a frame, and, importantly, a timer to allow
58
+ class GaugeApp < Wx::App
59
+ # Get a guaranteed-unique id
60
+ THREAD_TIMER_ID = Wx::ID_HIGHEST + 1
61
+ def on_init
62
+ # Create a global application timer that passes control to other
63
+ # ruby threads. The timer will run every 1/40 second (25ms). Higher
64
+ # values will make the other threads run more often, but will
65
+ # eventually degrade the responsiveness of the GUI.
66
+ Wx::Timer.every(25) { Thread.pass }
67
+ prog = ProgressFrame.new
68
+ prog.show
69
+ end
70
+ end
71
+
72
+ GaugeApp.new.main_loop
@@ -0,0 +1,55 @@
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
+
5
+ require 'rubygems' rescue LoadError
6
+
7
+ require 'wx'
8
+
9
+ # Simple test application for keyword arguments to Sizer#add_item and
10
+ # ToolBar#add_item. Originally contributed by Chauk-Mean P
11
+
12
+ Wx::App.run do
13
+ frame = Wx::Frame.new( nil,
14
+ :title => 'ToolBar and Sizer API enhancements') do
15
+
16
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
17
+
18
+ button1 = Wx::Button.new(self, :label => 'Button 1')
19
+ button2 = Wx::Button.new(self, :label => 'Button 2')
20
+ button3 = Wx::Button.new(self, :label => 'Button 3')
21
+
22
+ # Sizer#add_item usage
23
+ # use of positional arguments
24
+ sizer.add_item(button1, -1, 1, Wx::EXPAND)
25
+ # use of a spacer
26
+ sizer.add_item([20, 15])
27
+ # use of keyword arguments without index
28
+ sizer.add_item(button3, :proportion => 1, :flag => Wx::EXPAND)
29
+ # use of keyword arguments with index specified
30
+ sizer.add_item(button2, :index => 1, :proportion => 1, :flag => Wx::EXPAND)
31
+ self.sizer = sizer
32
+
33
+ # ToolBar#add_item usage
34
+ toolbar = create_tool_bar( Wx::TB_HORIZONTAL|Wx::TB_FLAT )
35
+ # provide only a bitmap
36
+ new_item_id = toolbar.add_item( Wx::ArtProvider.bitmap(Wx::ART_NEW) )
37
+ # use of keyword arguments without pos
38
+ save_item_id = toolbar.add_item( Wx::ArtProvider.bitmap(Wx::ART_FILE_SAVE),
39
+ :short_help => "Save")
40
+ # use of keyword arguments with pos
41
+ open_item_id = toolbar.add_item( Wx::ArtProvider.bitmap(Wx::ART_FILE_OPEN),
42
+ :position => 1,
43
+ :short_help => "Open")
44
+ toolbar.realize
45
+
46
+ # tool item event handling
47
+ evt_tool new_item_id do
48
+ Wx::message_box "New clicked"
49
+ end
50
+
51
+ end
52
+
53
+ frame.show
54
+ end
55
+
@@ -0,0 +1,74 @@
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
+ class MyFrame < Wx::Frame
12
+ def initialize(title, pos, size)
13
+ super(nil, :title => title, :position => pos, :size => size)
14
+
15
+ menuFile = Wx::Menu.new
16
+ helpMenu = Wx::Menu.new
17
+ helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
18
+ menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
19
+ menuBar = Wx::MenuBar.new
20
+ menuBar.append(menuFile, "&File")
21
+ menuBar.append(helpMenu, "&Help")
22
+ self.menu_bar = menuBar
23
+
24
+ create_status_bar(1)
25
+ self.status_text = "Welcome to wxRuby!"
26
+ s = Wx::StaticText.new(self, :label => 'The Wizard has completed')
27
+ evt_menu Wx::ID_EXIT, :on_quit
28
+ evt_menu Wx::ID_ABOUT, :on_about
29
+
30
+ w = Wx::Wizard.new(self, :title => 'The WxRuby Wizard')
31
+ p1 = Wx::WizardPageSimple.new(w)
32
+ s = Wx::StaticText.new(p1, :label => 'This is the first page')
33
+
34
+ p2 = Wx::WizardPageSimple.new(w, p1)
35
+ p1.set_next(p2)
36
+ s = Wx::StaticText.new(p2, :label => 'This is the second page')
37
+
38
+ p3 = Wx::WizardPageSimple.new(w, p2)
39
+ p2.set_next(p3)
40
+ s = Wx::StaticText.new(p3, :label => 'This is the final page')
41
+
42
+ evt_wizard_page_changed(w) { p "page changed" }
43
+ evt_wizard_page_changing(w) { p "page changing" }
44
+ evt_wizard_help(w) { p "wizard help" }
45
+ evt_wizard_cancel(w) { p "wizard cancelled" }
46
+ evt_wizard_finished(w) { p "wizard finished" }
47
+
48
+ w.run_wizard(p1)
49
+ end
50
+
51
+ def on_quit
52
+ close(true)
53
+ end
54
+
55
+ def on_about
56
+ msg = sprintf("This is the About dialog of the wizard sample.\n" \
57
+ "Welcome to %s", Wx::VERSION_STRING)
58
+ Wx::message_box(msg, "About Wizard", Wx::OK|Wx::ICON_INFORMATION, self)
59
+ end
60
+ end
61
+
62
+ class RbApp < Wx::App
63
+ def on_init
64
+ frame = MyFrame.new("Wizard wxRuby App",
65
+ Wx::Point.new(50, 50),
66
+ Wx::Size.new(450, 340))
67
+ frame.show(true)
68
+
69
+ end
70
+ end
71
+
72
+ app = RbApp.new
73
+ app.main_loop()
74
+