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.
- data/LICENSE +53 -0
- data/README +297 -0
- data/lib/wx.rb +2 -2
- data/lib/wx/accessors.rb +7 -1
- data/lib/wx/classes/app.rb +10 -4
- data/lib/wx/classes/bitmap.rb +29 -1
- data/lib/wx/classes/clipboard.rb +19 -3
- data/lib/wx/classes/colour.rb +6 -4
- data/lib/wx/classes/data_object.rb +14 -0
- data/lib/wx/classes/data_object_simple.rb +6 -0
- data/lib/wx/classes/dataformat.rb +23 -0
- data/lib/wx/classes/evthandler.rb +79 -4
- data/lib/wx/classes/genericdirctrl.rb +36 -0
- data/lib/wx/classes/grid.rb +8 -0
- data/lib/wx/classes/hboxsizer.rb +6 -0
- data/lib/wx/classes/icon.rb +12 -1
- data/lib/wx/classes/image.rb +13 -1
- data/lib/wx/classes/listctrl.rb +12 -0
- data/lib/wx/classes/point.rb +8 -0
- data/lib/wx/classes/rect.rb +10 -1
- data/lib/wx/classes/richtextctrl.rb +63 -0
- data/lib/wx/classes/size.rb +9 -0
- data/lib/wx/classes/sizer.rb +18 -3
- data/lib/wx/classes/standardpaths.rb +9 -0
- data/lib/wx/classes/texturlevent.rb +14 -2
- data/lib/wx/classes/toolbar.rb +4 -6
- data/lib/wx/classes/vboxsizer.rb +6 -0
- data/lib/wx/classes/window.rb +7 -0
- data/lib/wx/classes/xmlresource.rb +17 -0
- data/lib/wx/helpers.rb +16 -1
- data/lib/wx/keyword_ctors.rb +3 -2
- data/lib/wx/keyword_defs.rb +56 -5
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.bundle +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1356 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +149 -0
- data/samples/bigdemo/ShapedWindow.rbw +131 -0
- data/samples/bigdemo/Sizers.rbw +543 -0
- data/samples/bigdemo/bigdemo.rb +823 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -0
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/choice.xpm +27 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +27 -0
- data/samples/bigdemo/icons/copy.xpm +25 -0
- data/samples/bigdemo/icons/cut.xpm +24 -0
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +27 -0
- data/samples/bigdemo/icons/help.xpm +25 -0
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +27 -0
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +44 -0
- data/samples/bigdemo/icons/new.xpm +24 -0
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -0
- data/samples/bigdemo/icons/open.xpm +26 -0
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +38 -0
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +26 -0
- data/samples/bigdemo/icons/print.xpm +26 -0
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +27 -0
- data/samples/bigdemo/icons/robert.xpm +415 -0
- data/samples/bigdemo/icons/ruby.png +0 -0
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +25 -0
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +39 -0
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +42 -0
- data/samples/bigdemo/icons/stattext.xpm +24 -0
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -0
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +27 -0
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +38 -0
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +38 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +90 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +65 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +31 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +173 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +71 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +236 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
- data/samples/calendar/calendar.rb +256 -0
- data/samples/caret/caret.rb +282 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1136 -0
- data/samples/controls/get_item_sample.rb +87 -0
- data/samples/controls/icons/choice.xpm +27 -0
- data/samples/controls/icons/combo.xpm +27 -0
- data/samples/controls/icons/gauge.xpm +27 -0
- data/samples/controls/icons/list.xpm +27 -0
- data/samples/controls/icons/radio.xpm +27 -0
- data/samples/controls/icons/stattext.xpm +24 -0
- data/samples/controls/icons/text.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/test2.bmp +0 -0
- data/samples/dialogs/dialogs.rb +797 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/dragdrop/dragdrop.rb +177 -0
- data/samples/drawing/graphics_drawing.rb +235 -0
- data/samples/drawing/images.rb +37 -0
- data/samples/drawing/paperclip.png +0 -0
- data/samples/etc/activation.rb +102 -0
- data/samples/etc/choice.rb +67 -0
- data/samples/etc/miniframe.rb +79 -0
- data/samples/etc/sash.rb +130 -0
- data/samples/etc/scrollwin.rb +110 -0
- data/samples/etc/system_settings.rb +252 -0
- data/samples/etc/threaded.rb +72 -0
- data/samples/etc/toolbar_sizer_additem.rb +55 -0
- data/samples/etc/wizard.rb +74 -0
- data/samples/event/event.rb +182 -0
- data/samples/event/update_ui_event.rb +70 -0
- data/samples/grid/grid.rb +198 -0
- data/samples/grid/gridtablebase.rb +148 -0
- data/samples/html/html.rb +262 -0
- data/samples/listbook/listbook.rb +174 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +85 -0
- data/samples/media/mediactrl.rb +167 -0
- data/samples/minimal/minimal.rb +77 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +16 -0
- data/samples/opengl/cube.rb +117 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +487 -0
- data/samples/sockets/SocketPackets.rb +27 -0
- data/samples/sockets/res/message-new.png +0 -0
- data/samples/sockets/res/user.png +0 -0
- data/samples/sockets/wxClient.rb +395 -0
- data/samples/sockets/wxServer.rb +422 -0
- data/samples/sockets/wxSocketGUI.rb +97 -0
- data/samples/text/format-text-bold.png +0 -0
- data/samples/text/format-text-italic.png +0 -0
- data/samples/text/format-text-underline.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/rich_textctrl.rb +98 -0
- data/samples/text/scintilla.rb +169 -0
- data/samples/text/textctrl.rb +111 -0
- data/samples/text/unicode.rb +242 -0
- data/samples/text/utf8.txt +15 -0
- data/samples/treectrl/icon1.xpm +79 -0
- data/samples/treectrl/icon2.xpm +53 -0
- data/samples/treectrl/icon3.xpm +79 -0
- data/samples/treectrl/icon4.xpm +43 -0
- data/samples/treectrl/icon5.xpm +79 -0
- data/samples/treectrl/treectrl.rb +1166 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +76 -0
- 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
|
+
|