wxruby 1.9.0-i686-darwin8.4.1
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/lib/wx.rb +35 -0
- data/lib/wx/classes/app.rb +25 -0
- data/lib/wx/classes/artprovider.rb +31 -0
- data/lib/wx/classes/bitmap.rb +23 -0
- data/lib/wx/classes/choice.rb +4 -0
- data/lib/wx/classes/clientdc.rb +13 -0
- data/lib/wx/classes/colour.rb +47 -0
- data/lib/wx/classes/combobox.rb +4 -0
- data/lib/wx/classes/evthandler.rb +824 -0
- data/lib/wx/classes/font.rb +118 -0
- data/lib/wx/classes/grid.rb +130 -0
- data/lib/wx/classes/helpcontroller.rb +5 -0
- data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
- data/lib/wx/classes/htmlwindow.rb +6 -0
- data/lib/wx/classes/icon.rb +14 -0
- data/lib/wx/classes/image.rb +14 -0
- data/lib/wx/classes/listbox.rb +4 -0
- data/lib/wx/classes/locale.rb +28 -0
- data/lib/wx/classes/object.rb +7 -0
- data/lib/wx/classes/paintdc.rb +12 -0
- data/lib/wx/classes/point.rb +5 -0
- data/lib/wx/classes/previewframe.rb +13 -0
- data/lib/wx/classes/rect.rb +5 -0
- data/lib/wx/classes/size.rb +5 -0
- data/lib/wx/classes/texturlevent.rb +6 -0
- data/lib/wx/classes/timer.rb +69 -0
- data/lib/wx/classes/window.rb +38 -0
- data/lib/wx/classes/xmlresource.rb +16 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wxruby2.bundle +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1352 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +25 -0
- data/samples/bigdemo/GridSimple.rbw +80 -0
- data/samples/bigdemo/MDIDemo.rbw +59 -0
- data/samples/bigdemo/PopupMenu.rbw +151 -0
- data/samples/bigdemo/ShapedWindow.rbw +135 -0
- data/samples/bigdemo/Sizers.rbw +545 -0
- data/samples/bigdemo/bigdemo.rb +826 -0
- data/samples/bigdemo/demoTemplate.rbw +37 -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 +94 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +285 -0
- data/samples/bigdemo/wxBitmapButton.rbw +64 -0
- data/samples/bigdemo/wxButton.rbw +66 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
- data/samples/bigdemo/wxCheckBox.rbw +52 -0
- data/samples/bigdemo/wxCheckListBox.rbw +77 -0
- data/samples/bigdemo/wxChoice.rbw +49 -0
- data/samples/bigdemo/wxChoicebook.rbw +80 -0
- data/samples/bigdemo/wxColourDialog.rbw +34 -0
- data/samples/bigdemo/wxComboBox.rbw +79 -0
- data/samples/bigdemo/wxCursor.rbw +140 -0
- data/samples/bigdemo/wxDialog.rbw +92 -0
- data/samples/bigdemo/wxDirDialog.rbw +32 -0
- data/samples/bigdemo/wxDragImage.rbw +74 -0
- data/samples/bigdemo/wxFileDialog.rbw +39 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
- data/samples/bigdemo/wxFontDialog.rbw +176 -0
- data/samples/bigdemo/wxFrame.rbw +55 -0
- data/samples/bigdemo/wxGauge.rbw +73 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
- data/samples/bigdemo/wxGrid.rbw +68 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
- data/samples/bigdemo/wxListBox.rbw +142 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
- data/samples/bigdemo/wxMDIWindows.rbw +52 -0
- data/samples/bigdemo/wxMenu.rbw +238 -0
- data/samples/bigdemo/wxMessageDialog.rbw +30 -0
- data/samples/bigdemo/wxMiniFrame.rbw +74 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
- data/samples/bigdemo/wxNotebook.rbw +138 -0
- data/samples/bigdemo/wxProgressDialog.rbw +45 -0
- data/samples/bigdemo/wxRadioBox.rbw +74 -0
- data/samples/bigdemo/wxRadioButton.rbw +127 -0
- data/samples/bigdemo/wxSashWindow.rbw +155 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +196 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
- data/samples/bigdemo/wxSlider.rbw +44 -0
- data/samples/bigdemo/wxSpinButton.rbw +52 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
- data/samples/bigdemo/wxStaticText.rbw +57 -0
- data/samples/bigdemo/wxStatusBar.rbw +128 -0
- data/samples/bigdemo/wxTextCtrl.rbw +151 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
- data/samples/bigdemo/wxToggleButton.rbw +51 -0
- data/samples/bigdemo/wxToolBar.rbw +133 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
- data/samples/calendar/calendar.rb +275 -0
- data/samples/caret/caret.rb +296 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1140 -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 +724 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/etc/activation.rb +108 -0
- data/samples/etc/choice.rb +72 -0
- data/samples/etc/miniframe.rb +84 -0
- data/samples/etc/sash.rb +135 -0
- data/samples/etc/scrollwin.rb +116 -0
- data/samples/etc/system_settings.rb +258 -0
- data/samples/etc/wizard.rb +81 -0
- data/samples/grid/grid.rb +201 -0
- data/samples/html/html.rb +251 -0
- data/samples/images/Thumbs.db +0 -0
- data/samples/images/images.rb +48 -0
- data/samples/images/paperclip.png +0 -0
- data/samples/listbook/listbook.rb +183 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +87 -0
- data/samples/minimal/minimal.rb +95 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.xpm +44 -0
- data/samples/minimal/nothing.rb +46 -0
- data/samples/minimal/text.rb +35 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +484 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/scintilla.rb +180 -0
- data/samples/text/textctrl.rb +124 -0
- data/samples/text/unicode.rb +238 -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 +1210 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +107 -0
- metadata +264 -0
@@ -0,0 +1,258 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'wx'
|
7
|
+
rescue LoadError => no_wx_err
|
8
|
+
begin
|
9
|
+
require 'rubygems'
|
10
|
+
require 'wx'
|
11
|
+
rescue LoadError
|
12
|
+
raise no_wx_err
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# This example lists the various system settings that WxRuby knows
|
17
|
+
# about. To use it, run it and use the 'View' menu to list the different
|
18
|
+
# groups of settings available.
|
19
|
+
|
20
|
+
# A class to display system settings in a spreadsheet-like table.
|
21
|
+
class SystemSettingsTable < Wx::Grid
|
22
|
+
def initialize(parent)
|
23
|
+
super(parent, -1)
|
24
|
+
max_length = [ COLOURS.length, FONTS.length, METRICS.length ].max
|
25
|
+
create_grid( max_length, 3)
|
26
|
+
|
27
|
+
set_row_label_size(0)
|
28
|
+
set_row_label_alignment(Wx::ALIGN_RIGHT, Wx::ALIGN_CENTRE)
|
29
|
+
|
30
|
+
set_col_label_value(0, 'Name')
|
31
|
+
set_col_size(0, 200)
|
32
|
+
set_col_label_value(1, 'Value')
|
33
|
+
set_col_size(1, 100)
|
34
|
+
set_col_label_value(2, 'Description')
|
35
|
+
set_col_size(2, 300)
|
36
|
+
end
|
37
|
+
|
38
|
+
# blank out all row labels from +from_row+ to the end of the grid.
|
39
|
+
def tidy_row_labels(from_row = 0)
|
40
|
+
from_row.upto( get_number_rows - 1 ) do | row |
|
41
|
+
set_row_label_value(row, '')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# display a settings constant name +const+, its value +value+ and a
|
46
|
+
# text description +desc+ of that setting in the row +row+
|
47
|
+
def list(row, const, val, desc)
|
48
|
+
set_cell_value(row, 0, const)
|
49
|
+
set_cell_value(row, 1, val.to_s() )
|
50
|
+
set_cell_value(row, 2, desc)
|
51
|
+
end
|
52
|
+
|
53
|
+
# List the elements of the system's colour scheme, giving each one's
|
54
|
+
# Wx constant name, its RGB value in hex, and the description of how it
|
55
|
+
# is used.
|
56
|
+
def list_colours
|
57
|
+
clear_grid()
|
58
|
+
COLOURS.each_with_index do | item, i |
|
59
|
+
constant_name, description = *item
|
60
|
+
const = Wx::const_get(constant_name)
|
61
|
+
# obtain a Wx::Colour object for the named constantb
|
62
|
+
colour = Wx::SystemSettings.get_colour(const)
|
63
|
+
colour_hex = '#%02X%02X%02X' %
|
64
|
+
[ colour.red, colour.green, colour.blue ]
|
65
|
+
list( i, constant_name, colour_hex, description )
|
66
|
+
end
|
67
|
+
tidy_row_labels(COLOURS.length)
|
68
|
+
end
|
69
|
+
|
70
|
+
# List the standard system fonts, giving each one's Wx contant name,
|
71
|
+
# the font's platform descriptor, and a description of its use.
|
72
|
+
def list_fonts
|
73
|
+
clear_grid()
|
74
|
+
FONTS.each_with_index do | item, i |
|
75
|
+
constant_name, description = *item
|
76
|
+
const = Wx::const_get(constant_name)
|
77
|
+
# obtain a standard system font
|
78
|
+
font = Wx::SystemSettings.get_font(const)
|
79
|
+
font_desc = "%s %ipt" %
|
80
|
+
[ font.get_face_name, font.get_point_size ]
|
81
|
+
list( i, constant_name, font_desc, description )
|
82
|
+
end
|
83
|
+
tidy_row_labels(FONTS.length)
|
84
|
+
end
|
85
|
+
|
86
|
+
# List various standard measurements of GUI elements and areas, such as
|
87
|
+
# the size of the screen, cursor, icons and window borders. For each
|
88
|
+
# one, the WxRuby constant name, the value (usually in pixels), and a
|
89
|
+
# short description of its use is given.
|
90
|
+
#
|
91
|
+
# Not all metrics are implemented in Wx on all platforms; undefined
|
92
|
+
# values are shown as '-1'.
|
93
|
+
def list_metrics
|
94
|
+
clear_grid()
|
95
|
+
METRICS.each_with_index do | item, i |
|
96
|
+
constant_name, description = *item
|
97
|
+
const = Wx::const_get(constant_name)
|
98
|
+
# obtain a standard system metric
|
99
|
+
metric = Wx::SystemSettings.get_metric(const)
|
100
|
+
list( i, constant_name, metric, description )
|
101
|
+
end
|
102
|
+
tidy_row_labels(METRICS.length)
|
103
|
+
end
|
104
|
+
|
105
|
+
# copied from WxWidgets 2.6.2 documentation
|
106
|
+
COLOURS = [
|
107
|
+
[ 'SYS_COLOUR_SCROLLBAR', 'The scrollbar grey area.' ],
|
108
|
+
[ 'SYS_COLOUR_BACKGROUND', 'The desktop colour.' ],
|
109
|
+
[ 'SYS_COLOUR_ACTIVECAPTION', 'Active window caption.' ],
|
110
|
+
[ 'SYS_COLOUR_INACTIVECAPTION', 'Inactive window caption.' ],
|
111
|
+
[ 'SYS_COLOUR_MENU', 'Menu background.' ],
|
112
|
+
[ 'SYS_COLOUR_WINDOW', 'Window background.' ],
|
113
|
+
[ 'SYS_COLOUR_WINDOWFRAME', 'Window frame.' ],
|
114
|
+
[ 'SYS_COLOUR_MENUTEXT', 'Menu text.' ],
|
115
|
+
[ 'SYS_COLOUR_WINDOWTEXT', 'Text in windows.' ],
|
116
|
+
[ 'SYS_COLOUR_CAPTIONTEXT', 'Text in caption, size box and scrollbar arrow box.' ],
|
117
|
+
[ 'SYS_COLOUR_ACTIVEBORDER', 'Active window border.' ],
|
118
|
+
[ 'SYS_COLOUR_INACTIVEBORDER', 'Inactive window border.' ],
|
119
|
+
[ 'SYS_COLOUR_APPWORKSPACE', 'Background colour MDI applications.' ],
|
120
|
+
[ 'SYS_COLOUR_HIGHLIGHT', 'Item(s) selected in a control.' ],
|
121
|
+
[ 'SYS_COLOUR_HIGHLIGHTTEXT', 'Text of item(s) selected in a control.' ],
|
122
|
+
[ 'SYS_COLOUR_BTNFACE', 'Face shading on push buttons.' ],
|
123
|
+
[ 'SYS_COLOUR_BTNSHADOW', 'Edge shading on push buttons.' ],
|
124
|
+
[ 'SYS_COLOUR_GRAYTEXT', 'Greyed (disabled) text.' ],
|
125
|
+
[ 'SYS_COLOUR_BTNTEXT', 'Text on push buttons.' ],
|
126
|
+
[ 'SYS_COLOUR_INACTIVECAPTIONTEXT', 'Colour of text in active captions.' ],
|
127
|
+
[ 'SYS_COLOUR_BTNHIGHLIGHT', 'Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT).' ],
|
128
|
+
[ 'SYS_COLOUR_3DDKSHADOW', 'Dark shadow for three-dimensional display elements.' ],
|
129
|
+
[ 'SYS_COLOUR_3DLIGHT', 'Light colour for three-dimensional display elements.' ],
|
130
|
+
[ 'SYS_COLOUR_INFOTEXT', 'Text colour for tooltip controls.' ],
|
131
|
+
[ 'SYS_COLOUR_INFOBK', 'Background colour for tooltip controls.' ],
|
132
|
+
[ 'SYS_COLOUR_DESKTOP', 'Same as wxSYS_COLOUR_BACKGROUND.' ],
|
133
|
+
[ 'SYS_COLOUR_3DFACE', 'Same as wxSYS_COLOUR_BTNFACE.' ],
|
134
|
+
[ 'SYS_COLOUR_3DSHADOW', 'Same as wxSYS_COLOUR_BTNSHADOW.' ],
|
135
|
+
[ 'SYS_COLOUR_3DHIGHLIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ],
|
136
|
+
[ 'SYS_COLOUR_3DHILIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ],
|
137
|
+
[ 'SYS_COLOUR_BTNHILIGHT', 'Same as wxSYS_COLOUR_BTNHIGHLIGHT.' ]
|
138
|
+
]
|
139
|
+
|
140
|
+
# copied from WxWidgets 2.6.2 documentation
|
141
|
+
FONTS = [
|
142
|
+
[ 'SYS_OEM_FIXED_FONT', 'Original equipment manufacturer dependent fixed-pitch font.' ],
|
143
|
+
[ 'SYS_ANSI_FIXED_FONT', 'Windows fixed-pitch font.' ],
|
144
|
+
[ 'SYS_ANSI_VAR_FONT', 'Windows variable-pitch (proportional) font.' ],
|
145
|
+
[ 'SYS_SYSTEM_FONT', 'System font.' ],
|
146
|
+
[ 'SYS_DEVICE_DEFAULT_FONT', 'Device-dependent font (Windows NT only).' ],
|
147
|
+
[ 'SYS_DEFAULT_GUI_FONT', 'Default font for user interface objects such as menus and dialog boxes.' ]
|
148
|
+
]
|
149
|
+
|
150
|
+
# copied from WxWidgets 2.6.2 documentation
|
151
|
+
METRICS = [
|
152
|
+
[ 'SYS_MOUSE_BUTTONS', 'Number of buttons on mouse, or zero if no mouse was installed.' ],
|
153
|
+
[ 'SYS_BORDER_X', 'Width of single border.' ],
|
154
|
+
[ 'SYS_BORDER_Y', 'Height of single border.' ],
|
155
|
+
[ 'SYS_CURSOR_X', 'Width of cursor.' ],
|
156
|
+
[ 'SYS_CURSOR_Y', 'Height of cursor.' ],
|
157
|
+
[ 'SYS_DCLICK_X', 'Width in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click.' ],
|
158
|
+
[ 'SYS_DCLICK_Y', 'Height in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click.' ],
|
159
|
+
[ '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.' ],
|
160
|
+
[ '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.' ],
|
161
|
+
[ 'SYS_EDGE_X', 'Width of a 3D border, in pixels.' ],
|
162
|
+
[ 'SYS_EDGE_Y', 'Height of a 3D border, in pixels.' ],
|
163
|
+
[ 'SYS_HSCROLL_ARROW_X', 'Width of arrow bitmap on horizontal scrollbar.' ],
|
164
|
+
[ 'SYS_HSCROLL_ARROW_Y', 'Height of arrow bitmap on horizontal scrollbar.' ],
|
165
|
+
[ 'SYS_HTHUMB_X', 'Width of horizontal scrollbar thumb.' ],
|
166
|
+
[ 'SYS_ICON_X', 'The default width of an icon.' ],
|
167
|
+
[ 'SYS_ICON_Y', 'The default height of an icon.' ],
|
168
|
+
[ '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.' ],
|
169
|
+
[ '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.' ],
|
170
|
+
[ 'SYS_WINDOWMIN_X', 'Minimum width of a window.' ],
|
171
|
+
[ 'SYS_WINDOWMIN_Y', 'Minimum height of a window.' ],
|
172
|
+
[ 'SYS_SCREEN_X', 'Width of the screen in pixels.' ],
|
173
|
+
[ 'SYS_SCREEN_Y', 'Height of the screen in pixels.' ],
|
174
|
+
[ 'SYS_FRAMESIZE_X', 'Width of the window frame for a wxTHICK_FRAME window.' ],
|
175
|
+
[ 'SYS_FRAMESIZE_Y', 'Height of the window frame for a wxTHICK_FRAME window.' ],
|
176
|
+
[ 'SYS_SMALLICON_X', 'Recommended width of a small icon (in window captions, and small icon view).' ],
|
177
|
+
[ 'SYS_SMALLICON_Y', 'Recommended height of a small icon (in window captions, and small icon view).' ],
|
178
|
+
[ 'SYS_HSCROLL_Y', 'Height of horizontal scrollbar in pixels.' ],
|
179
|
+
[ 'SYS_VSCROLL_X', 'Width of vertical scrollbar in pixels.' ],
|
180
|
+
[ 'SYS_VSCROLL_ARROW_X', 'Width of arrow bitmap on a vertical scrollbar.' ],
|
181
|
+
[ 'SYS_VSCROLL_ARROW_Y', 'Height of arrow bitmap on a vertical scrollbar.' ],
|
182
|
+
[ 'SYS_VTHUMB_Y', 'Height of vertical scrollbar thumb.' ],
|
183
|
+
[ 'SYS_CAPTION_Y', 'Height of normal caption area.' ],
|
184
|
+
[ 'SYS_MENU_Y', 'Height of single-line menu bar.' ],
|
185
|
+
[ 'SYS_NETWORK_PRESENT', '1 if there is a network present, 0 otherwise.' ],
|
186
|
+
[ 'SYS_PENWINDOWS_PRESENT', '1 if PenWindows is installed, 0 otherwise.' ],
|
187
|
+
[ '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.' ],
|
188
|
+
[ 'SYS_SWAP_BUTTONS', 'Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise.' ]
|
189
|
+
]
|
190
|
+
end
|
191
|
+
|
192
|
+
|
193
|
+
# A simple frame that just shows a table with the System Settings in it.
|
194
|
+
class SettingsFrame < Wx::Frame
|
195
|
+
|
196
|
+
def initialize(title, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE)
|
197
|
+
super(nil, -1, title, pos, size)
|
198
|
+
sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
199
|
+
@table = SystemSettingsTable.new(self)
|
200
|
+
sizer.add(@table, 1, Wx::ADJUST_MINSIZE|Wx::GROW|Wx::ALL, 2)
|
201
|
+
self.set_sizer(sizer)
|
202
|
+
construct_menus()
|
203
|
+
@table.list_colours()
|
204
|
+
end
|
205
|
+
|
206
|
+
ID_SHOW_COLOURS = 1
|
207
|
+
ID_SHOW_FONTS = 2
|
208
|
+
ID_SHOW_METRICS = 3
|
209
|
+
def construct_menus()
|
210
|
+
menu_bar = Wx::MenuBar.new()
|
211
|
+
|
212
|
+
menu_file = Wx::Menu.new()
|
213
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
214
|
+
menu_bar.append(menu_file, "&File")
|
215
|
+
evt_menu(Wx::ID_EXIT) { on_quit() }
|
216
|
+
|
217
|
+
menu_view = Wx::Menu.new()
|
218
|
+
menu_view.append(ID_SHOW_COLOURS,
|
219
|
+
"Show &Colours", "Show system colours")
|
220
|
+
evt_menu(ID_SHOW_COLOURS) { @table.list_colours() }
|
221
|
+
menu_view.append(ID_SHOW_FONTS,
|
222
|
+
"Show &Fonts", "Show system fonts")
|
223
|
+
evt_menu(ID_SHOW_FONTS) { @table.list_fonts() }
|
224
|
+
menu_view.append(ID_SHOW_METRICS,
|
225
|
+
"Show &Metrics", "Show system metrics")
|
226
|
+
evt_menu(ID_SHOW_METRICS) { @table.list_metrics() }
|
227
|
+
menu_bar.append(menu_view, "&View")
|
228
|
+
|
229
|
+
menu_help = Wx::Menu.new()
|
230
|
+
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
231
|
+
evt_menu(Wx::ID_ABOUT) { on_about() }
|
232
|
+
menu_bar.append(menu_help, "&Help")
|
233
|
+
|
234
|
+
set_menu_bar(menu_bar)
|
235
|
+
end
|
236
|
+
|
237
|
+
def on_quit()
|
238
|
+
close(TRUE)
|
239
|
+
end
|
240
|
+
|
241
|
+
def on_about()
|
242
|
+
msg = sprintf("This is the About dialog of the minimal sample.\n" \
|
243
|
+
"Welcome to %s", Wx::VERSION_STRING)
|
244
|
+
Wx::message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
class MyApp < Wx::App
|
249
|
+
def on_init()
|
250
|
+
frame = SettingsFrame.new("System Settings",
|
251
|
+
Wx::DEFAULT_POSITION,
|
252
|
+
Wx::Size.new(600, 400) )
|
253
|
+
frame.show(TRUE)
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
# run the app
|
258
|
+
MyApp.new.main_loop()
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'wx'
|
7
|
+
rescue LoadError => no_wx_err
|
8
|
+
begin
|
9
|
+
require 'rubygems'
|
10
|
+
require 'wx'
|
11
|
+
rescue LoadError
|
12
|
+
raise no_wx_err
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class MyFrame < Wx::Frame
|
17
|
+
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
18
|
+
super(nil, -1, title, pos, size, style)
|
19
|
+
|
20
|
+
|
21
|
+
menuFile = Wx::Menu.new()
|
22
|
+
helpMenu = Wx::Menu.new()
|
23
|
+
helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
24
|
+
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
25
|
+
menuBar = Wx::MenuBar.new()
|
26
|
+
menuBar.append(menuFile, "&File")
|
27
|
+
menuBar.append(helpMenu, "&Help")
|
28
|
+
set_menu_bar(menuBar)
|
29
|
+
|
30
|
+
create_status_bar(2)
|
31
|
+
set_status_text("Welcome to wxRuby!")
|
32
|
+
s = Wx::StaticText.new(self, -1, 'The Wizard has completed')
|
33
|
+
|
34
|
+
|
35
|
+
evt_menu(Wx::ID_EXIT) { on_quit }
|
36
|
+
evt_menu(Wx::ID_ABOUT) { on_about }
|
37
|
+
w = Wx::Wizard.new(self, -1, 'The WxRuby Wizard')
|
38
|
+
p1 = Wx::WizardPageSimple.new(w)
|
39
|
+
s = Wx::StaticText.new(p1, -1, 'This is the first page')
|
40
|
+
p2 = Wx::WizardPageSimple.new(w, p1)
|
41
|
+
p1.set_next(p2)
|
42
|
+
s = Wx::StaticText.new(p2, -1, 'This is the second page')
|
43
|
+
p3 = Wx::WizardPageSimple.new(w, p2)
|
44
|
+
p2.set_next(p3)
|
45
|
+
s = Wx::StaticText.new(p3, -1, 'This is the final page')
|
46
|
+
|
47
|
+
evt_wizard_page_changed(w.get_id) { p "page changed" }
|
48
|
+
evt_wizard_page_changing(w.get_id) { p "page changing" }
|
49
|
+
evt_wizard_help(w.get_id) { p "wizard help" }
|
50
|
+
evt_wizard_cancel(w.get_id) { p "wizard cancelled" }
|
51
|
+
evt_wizard_finished(w.get_id) { p "wizard finished" }
|
52
|
+
|
53
|
+
|
54
|
+
w.run_wizard(p1)
|
55
|
+
end
|
56
|
+
|
57
|
+
def on_quit
|
58
|
+
close(true)
|
59
|
+
end
|
60
|
+
|
61
|
+
def on_about
|
62
|
+
msg = sprintf("This is the About dialog of the wizard sample.\n" \
|
63
|
+
"Welcome to %s", Wx::VERSION_STRING)
|
64
|
+
Wx::message_box(msg, "About Wizard", Wx::OK|Wx::ICON_INFORMATION, self)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
class RbApp < Wx::App
|
69
|
+
def on_init
|
70
|
+
frame = MyFrame.new("Wizard wxRuby App",
|
71
|
+
Wx::Point.new(50, 50),
|
72
|
+
Wx::Size.new(450, 340))
|
73
|
+
|
74
|
+
frame.show(true)
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
app = RbApp.new
|
80
|
+
app.main_loop()
|
81
|
+
|
@@ -0,0 +1,201 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
begin
|
3
|
+
require 'wx'
|
4
|
+
rescue LoadError => no_wx_err
|
5
|
+
begin
|
6
|
+
require 'rubygems'
|
7
|
+
load 'wx'
|
8
|
+
rescue
|
9
|
+
raise no_wx_err
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
class GridFrame < Wx::Frame
|
15
|
+
|
16
|
+
def initialize(parent, id = -1, title = "MyFrame",
|
17
|
+
pos = Wx::DEFAULT_POSITION,
|
18
|
+
size = Wx::DEFAULT_SIZE,
|
19
|
+
style = Wx::DEFAULT_FRAME_STYLE)
|
20
|
+
|
21
|
+
super(parent, id, title, pos, size, style)
|
22
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
23
|
+
create_status_bar()
|
24
|
+
set_status_text(Wx::VERSION_STRING)
|
25
|
+
|
26
|
+
# panel = Wx::Panel.new(self)
|
27
|
+
sel_menu = Wx::Menu.new
|
28
|
+
sel_menu.append(1002, 'Select all', 'Select all')
|
29
|
+
evt_menu(1002) { @grid.select_all }
|
30
|
+
sel_menu.append(1003, 'Select row 2', 'Select row 2')
|
31
|
+
evt_menu(1003) { @grid.select_row(1) }
|
32
|
+
sel_menu.append(1004, 'Select column 4', 'Select col 4')
|
33
|
+
evt_menu(1004) { @grid.select_col(3) }
|
34
|
+
sel_menu.append(1005, 'Select block', 'Select block')
|
35
|
+
evt_menu(1005) { @grid.select_block(1, 1, 6, 3) }
|
36
|
+
menu_bar = Wx::MenuBar.new
|
37
|
+
menu_bar.append(sel_menu, 'Select')
|
38
|
+
set_menu_bar(menu_bar)
|
39
|
+
|
40
|
+
make_grid(self)
|
41
|
+
sizer.add(@grid, 1, Wx::ALL|Wx::GROW, 4)
|
42
|
+
set_sizer(sizer)
|
43
|
+
|
44
|
+
evt_grid_cell_left_click() do |evt|
|
45
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} is clicked")
|
46
|
+
evt.skip
|
47
|
+
end
|
48
|
+
|
49
|
+
evt_grid_cell_right_click() do |evt|
|
50
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} is right clicked")
|
51
|
+
evt.skip
|
52
|
+
end
|
53
|
+
|
54
|
+
evt_grid_cell_left_dclick() do |evt|
|
55
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} is double clicked")
|
56
|
+
evt.skip
|
57
|
+
end
|
58
|
+
|
59
|
+
evt_grid_cell_right_dclick() do |evt|
|
60
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} is right double clicked")
|
61
|
+
evt.skip
|
62
|
+
end
|
63
|
+
|
64
|
+
evt_grid_label_left_click() do |evt|
|
65
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} label is clicked")
|
66
|
+
evt.skip
|
67
|
+
end
|
68
|
+
|
69
|
+
evt_grid_label_right_click() do |evt|
|
70
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} label is right clicked")
|
71
|
+
evt.skip
|
72
|
+
end
|
73
|
+
|
74
|
+
evt_grid_label_left_dclick() do |evt|
|
75
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} labelis double clicked")
|
76
|
+
evt.skip
|
77
|
+
end
|
78
|
+
|
79
|
+
evt_grid_label_right_dclick() do |evt|
|
80
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} label is right double clicked")
|
81
|
+
evt.skip
|
82
|
+
end
|
83
|
+
|
84
|
+
evt_grid_select_cell() do |evt|
|
85
|
+
set_status_text("#{evt.get_row} x #{evt.get_col} cell is selected")
|
86
|
+
evt.skip
|
87
|
+
end
|
88
|
+
|
89
|
+
evt_grid_row_size do |evt|
|
90
|
+
set_status_text("Row #{evt.get_row_or_col} size changed")
|
91
|
+
evt.skip
|
92
|
+
end
|
93
|
+
|
94
|
+
evt_grid_col_size do |evt|
|
95
|
+
set_status_text("Column #{evt.get_row_or_col} size changed")
|
96
|
+
evt.skip
|
97
|
+
end
|
98
|
+
|
99
|
+
evt_grid_editor_shown do |evt|
|
100
|
+
set_status_text("Begin editing")
|
101
|
+
evt.skip
|
102
|
+
end
|
103
|
+
|
104
|
+
evt_grid_editor_hidden do |evt|
|
105
|
+
set_status_text("End editing")
|
106
|
+
evt.skip
|
107
|
+
end
|
108
|
+
|
109
|
+
evt_grid_range_select do |evt|
|
110
|
+
top = evt.get_top_left_coords
|
111
|
+
bottom = evt.get_bottom_right_coords
|
112
|
+
set_status_text("[ #{top[0].to_s} x #{top[1].to_s} ] to [ #{bottom[0].to_s} x #{bottom[1].to_s} ] is selected")
|
113
|
+
end
|
114
|
+
|
115
|
+
evt_grid_editor_created do |evt|
|
116
|
+
set_status_text("Control #{evt.get_control} created")
|
117
|
+
evt.skip
|
118
|
+
end
|
119
|
+
|
120
|
+
evt_grid_cell_change() do |evt|
|
121
|
+
set_status_text("Cell #{evt.get_row} x #{evt.get_col} has changed")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# Create a wxGrid object
|
126
|
+
def make_grid(panel)
|
127
|
+
@grid = Wx::Grid.new(panel, -1)
|
128
|
+
|
129
|
+
# Then we call CreateGrid to set the dimensions of the grid
|
130
|
+
# (11 rows and 12 columns in this example)
|
131
|
+
@grid.create_grid( 20, 12 )
|
132
|
+
@grid.set_default_cell_background_colour(Wx::WHITE)
|
133
|
+
# We can set the sizes of individual rows and columns
|
134
|
+
# in pixels, and the label value string
|
135
|
+
@grid.set_row_size( 0, 60 )
|
136
|
+
@grid.set_row_label_value( 0, "Row1" )
|
137
|
+
@grid.set_row_label_alignment(Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
|
138
|
+
|
139
|
+
@grid.set_col_size( 0, 120 )
|
140
|
+
@grid.set_col_label_value( 0, "Col1" )
|
141
|
+
@grid.set_col_label_alignment(Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
|
142
|
+
|
143
|
+
# And set grid cell contents as strings
|
144
|
+
@grid.set_cell_value( 0, 0, "wxGrid is good" )
|
145
|
+
|
146
|
+
# We can specify that some cells are read-only
|
147
|
+
@grid.set_cell_value( 0, 2, "Read-only" )
|
148
|
+
@grid.set_read_only( 0, 2 )
|
149
|
+
|
150
|
+
# Colours can be specified for grid cell contents
|
151
|
+
@grid.set_cell_value(1, 1, "white on red")
|
152
|
+
@grid.set_cell_text_colour(1, 1, Wx::WHITE)
|
153
|
+
@grid.set_cell_background_colour(1, 1, Wx::RED)
|
154
|
+
|
155
|
+
# We can specify the some cells will store numeric
|
156
|
+
# values rather than strings. Here we set grid column 6
|
157
|
+
# to hold floating point values displayed with width
|
158
|
+
# of 2 and precision of 2. The column is highlighted in light grey
|
159
|
+
cell_attr = Wx::GridCellAttr.new
|
160
|
+
cell_attr.set_background_colour( Wx::LIGHT_GREY )
|
161
|
+
cell_attr.set_renderer( Wx::GridCellFloatRenderer.new(2, 2) )
|
162
|
+
|
163
|
+
@grid.set_col_attr(5, cell_attr)
|
164
|
+
@grid.set_cell_value(0, 5, "3.1415")
|
165
|
+
@grid.set_cell_value(0, 6,
|
166
|
+
"The whole column to the left uses float format")
|
167
|
+
|
168
|
+
# Custom Editors Can be used
|
169
|
+
editor = Wx::GridCellNumberEditor.new(5, 20)
|
170
|
+
@grid.set_cell_value(3, 1, 'Number editor below')
|
171
|
+
@grid.set_cell_editor(4, 1, editor)
|
172
|
+
|
173
|
+
editor = Wx::GridCellFloatEditor.new(4, 2)
|
174
|
+
@grid.set_cell_value(3, 2, 'Float editor below')
|
175
|
+
@grid.set_cell_editor(4, 2, editor)
|
176
|
+
|
177
|
+
editor = Wx::GridCellChoiceEditor.new(['foo', 'bar', 'baz'])
|
178
|
+
@grid.set_cell_value(3, 3, 'Choice editor below')
|
179
|
+
@grid.set_cell_editor(4, 3, editor)
|
180
|
+
|
181
|
+
@grid.auto_size_row(3, true)
|
182
|
+
|
183
|
+
# Display of cells can be customised
|
184
|
+
@grid.set_cell_renderer(6, 0, Wx::GridCellBoolRenderer.new)
|
185
|
+
@grid.set_cell_value(6, 1, 'Cell to the left displayed as boolean')
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
|
190
|
+
class GridApp < Wx::App
|
191
|
+
def on_init
|
192
|
+
frame = GridFrame.new(nil, -1, "Grid Sample",
|
193
|
+
Wx::Point.new(10, 100),
|
194
|
+
Wx::Size.new(630,400))
|
195
|
+
|
196
|
+
set_top_window(frame)
|
197
|
+
frame.show()
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
GridApp.new.main_loop()
|