wxruby 1.9.0-i386-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- 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/wx.rb +35 -0
- data/lib/wxruby2.so +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 +263 -0
@@ -0,0 +1,176 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class FontTestPanel < Wx::Panel
|
15
|
+
def initialize(parent, log)
|
16
|
+
super(parent, -1)
|
17
|
+
@log = log
|
18
|
+
btn = Wx::Button.new(self, -1, "Select Font")
|
19
|
+
evt_button(btn.get_id()) {|event| on_select_font(event)}
|
20
|
+
|
21
|
+
@sampleText = Wx::TextCtrl.new(self, -1, "Sample Text")
|
22
|
+
@curFont = @sampleText.get_font()
|
23
|
+
@curClr = Wx::BLACK
|
24
|
+
|
25
|
+
fgs = Wx::FlexGridSizer.new(2,2, 5, 5)
|
26
|
+
fgs.add_growable_col(1)
|
27
|
+
fgs.add_growable_row(0)
|
28
|
+
|
29
|
+
fgs.add(btn, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
30
|
+
fgs.add(@sampleText, 10, Wx::ADJUST_MINSIZE | Wx::GROW)
|
31
|
+
|
32
|
+
fgs.add(15, 15)
|
33
|
+
fgs.add(15, 15) # an empty row
|
34
|
+
|
35
|
+
fgs.add(Wx::StaticText.new(self, -1, "PointSize: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
36
|
+
@ps = Wx::StaticText.new(self, -1, "")
|
37
|
+
font = @ps.get_font()
|
38
|
+
font.set_weight(Wx::BOLD)
|
39
|
+
@ps.set_font(font)
|
40
|
+
fgs.add(@ps, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
41
|
+
|
42
|
+
fgs.add(Wx::StaticText.new(self, -1, "Family: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
43
|
+
@family = Wx::StaticText.new(self, -1, "")
|
44
|
+
@family.set_font(font)
|
45
|
+
fgs.add(@family, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
46
|
+
|
47
|
+
fgs.add(Wx::StaticText.new(self, -1, "Style: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
48
|
+
@style = Wx::StaticText.new(self, -1, "")
|
49
|
+
@style.set_font(font)
|
50
|
+
fgs.add(@style, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
51
|
+
|
52
|
+
fgs.add(Wx::StaticText.new(self, -1, "Weight: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
53
|
+
@weight = Wx::StaticText.new(self, -1, "")
|
54
|
+
@weight.set_font(font)
|
55
|
+
fgs.add(@weight, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
56
|
+
|
57
|
+
fgs.add(Wx::StaticText.new(self, -1, "Face: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
58
|
+
@face = Wx::StaticText.new(self, -1, "")
|
59
|
+
@face.set_font(font)
|
60
|
+
fgs.add(@face, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
61
|
+
|
62
|
+
fgs.add(15, 15)
|
63
|
+
fgs.add(15, 15) # an empty row
|
64
|
+
|
65
|
+
fgs.add(Wx::StaticText.new(self, -1, "Wx::NativeFontInfo: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
|
66
|
+
@nfi = Wx::StaticText.new(self, -1, "")
|
67
|
+
@nfi.set_font(font)
|
68
|
+
fgs.add(@nfi, 0, Wx::ALIGN_CENTRE_VERTICAL)
|
69
|
+
|
70
|
+
# give it some border space
|
71
|
+
|
72
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
73
|
+
sizer.add(fgs, 0, Wx::GROW | Wx::ADJUST_MINSIZE | Wx::ALL, 25)
|
74
|
+
|
75
|
+
set_sizer(sizer)
|
76
|
+
sizer.fit(self)
|
77
|
+
@sizer = fgs
|
78
|
+
update_ui()
|
79
|
+
end
|
80
|
+
|
81
|
+
def update_ui()
|
82
|
+
@sampleText.set_font(@curFont)
|
83
|
+
# layout() is called so that if the user changes the size of the Font, the text control will be properly displayed
|
84
|
+
# to show the whole font - just comment out this line, to see the font size change without corresponding changes
|
85
|
+
# to the text control :-)
|
86
|
+
# As a postscript, it is interesting to note that if I call layout() at the end of this method, it causes all of the
|
87
|
+
# labels to appear BLANK, showing nothing. Through trial and error, I moved it here, and found that it resized the
|
88
|
+
# text control properly and set the text of the labels too - I don't know why that is though?
|
89
|
+
@sizer.layout()
|
90
|
+
@ps.set_label(@curFont.get_point_size().to_s)
|
91
|
+
@family.set_label(map_font_value_to_name(@curFont.get_family()) )
|
92
|
+
@style.set_label(map_font_value_to_name(@curFont.get_style()))
|
93
|
+
@weight.set_label(map_font_value_to_name(@curFont.get_weight()))
|
94
|
+
@face.set_label(@curFont.get_face_name())
|
95
|
+
@nfi.set_label(@curFont.get_native_font_info_desc().to_s)
|
96
|
+
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
def on_select_font(evt)
|
101
|
+
data = Wx::FontData.new()
|
102
|
+
#data.enable_effects(true)
|
103
|
+
data.set_colour(@curClr) #set colour
|
104
|
+
data.set_initial_font(@curFont)
|
105
|
+
|
106
|
+
dlg = Wx::FontDialog.new(self, data)
|
107
|
+
if dlg.show_modal() == Wx::ID_OK
|
108
|
+
data = dlg.get_font_data()
|
109
|
+
font = data.get_chosen_font()
|
110
|
+
colour = data.get_colour()
|
111
|
+
@log.write_text("You selected: " + font.get_face_name() + ", " + font.get_point_size().to_s + " points, color (" +
|
112
|
+
get_rgb_string(colour))
|
113
|
+
@curFont = font
|
114
|
+
@curClr = colour
|
115
|
+
update_ui()
|
116
|
+
end
|
117
|
+
dlg.destroy()
|
118
|
+
end
|
119
|
+
|
120
|
+
def map_font_value_to_name(constant)
|
121
|
+
case constant
|
122
|
+
when Wx::DEFAULT
|
123
|
+
return "Wx::DEFAULT"
|
124
|
+
when Wx::DECORATIVE
|
125
|
+
return "Wx::DECORATIVE"
|
126
|
+
when Wx::ROMAN
|
127
|
+
return "Wx::ROMAN"
|
128
|
+
when Wx::SCRIPT
|
129
|
+
return "Wx::SCRIPT"
|
130
|
+
when Wx::SWISS
|
131
|
+
return "Wx::SWISS"
|
132
|
+
when Wx::MODERN
|
133
|
+
return "Wx::MODERN"
|
134
|
+
when Wx::TELETYPE
|
135
|
+
return "Wx::TELETYPE"
|
136
|
+
when Wx::NORMAL
|
137
|
+
return "Wx::NORMAL"
|
138
|
+
when Wx::SLANT
|
139
|
+
return "Wx::SLANT"
|
140
|
+
when Wx::ITALIC
|
141
|
+
return "Wx::ITALIC"
|
142
|
+
when Wx::LIGHT
|
143
|
+
return "Wx::LIGHT"
|
144
|
+
when Wx::BOLD
|
145
|
+
return "Wx::BOLD"
|
146
|
+
else
|
147
|
+
return "Unknown"
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def get_rgb_string(color)
|
152
|
+
red = color.red().to_s()
|
153
|
+
green = color.green().to_s()
|
154
|
+
blue = color.blue().to_s()
|
155
|
+
return "(%s, %s, %s)" % [red, green, blue]
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
module Demo
|
160
|
+
def Demo.run(frame, nb, log)
|
161
|
+
win = FontTestPanel.new(nb, log)
|
162
|
+
return win
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
def Demo.overview
|
167
|
+
return "This class allows you to use the system font chooser dialog."
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
if __FILE__ == $0
|
173
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
174
|
+
load run_solo_lib
|
175
|
+
run File.basename($0)
|
176
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
include Wx
|
14
|
+
|
15
|
+
class MyFrame < Frame
|
16
|
+
def initialize
|
17
|
+
super(nil, -1, "Wx::Frame demonstration",
|
18
|
+
DEFAULT_POSITION, Size.new(350,200), DEFAULT_FRAME_STYLE)
|
19
|
+
panel = Panel.new(self, -1)
|
20
|
+
|
21
|
+
button = Button.new(panel, -1, "Close me", Point.new(15,15))
|
22
|
+
evt_button( button.get_id ) { on_close_me }
|
23
|
+
evt_close { | e | on_close_window(e) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def on_close_me
|
27
|
+
close(true)
|
28
|
+
end
|
29
|
+
|
30
|
+
def on_close_window(event)
|
31
|
+
|
32
|
+
event.skip
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module Demo
|
37
|
+
def Demo.run(frame, nb, log)
|
38
|
+
win = MyFrame.new
|
39
|
+
frame.otherWin = win
|
40
|
+
win.center_on_parent(Wx::BOTH)
|
41
|
+
win.show(true)
|
42
|
+
end
|
43
|
+
|
44
|
+
def Demo.overview
|
45
|
+
return "This is the wxFrame Overview!"
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
if __FILE__ == $0
|
52
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
53
|
+
load run_solo_lib
|
54
|
+
run File.basename($0)
|
55
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestPanel < Wx::Panel
|
15
|
+
def initialize(parent, log)
|
16
|
+
super(parent, -1)
|
17
|
+
@log = log
|
18
|
+
@count = 0
|
19
|
+
|
20
|
+
Wx::StaticText.new( self, -1, "This example shows the wxGauge control.",
|
21
|
+
Wx::Point.new(45,15))
|
22
|
+
|
23
|
+
@g1 = Wx::Gauge.new( self, -1, 50,
|
24
|
+
Wx::Point.new(110,50), Wx::Size.new(250,25))
|
25
|
+
@g1.set_bezel_face(3)
|
26
|
+
@g1.set_shadow_width(3)
|
27
|
+
|
28
|
+
@g2 = Wx::Gauge.new( self, -1, 50,
|
29
|
+
Wx::Point.new(110,95), Wx::Size.new(250,25),
|
30
|
+
Wx::GA_HORIZONTAL|Wx::GA_SMOOTH)
|
31
|
+
@g2.set_bezel_face(5)
|
32
|
+
@g2.set_shadow_width(5)
|
33
|
+
|
34
|
+
@g3 = Wx::Gauge.new( self, -1, 50,
|
35
|
+
Wx::Point.new(110, 140), Wx::Size.new(25,250),
|
36
|
+
Wx::GA_VERTICAL)
|
37
|
+
@g3.set_bezel_face(3)
|
38
|
+
@g3.set_shadow_width(3)
|
39
|
+
|
40
|
+
# start a timer to move the gauges forward every 1/4 s
|
41
|
+
timer = Wx::Timer.new(self, 5001)
|
42
|
+
evt_timer(5001) { move_gauges }
|
43
|
+
timer.start(250)
|
44
|
+
end
|
45
|
+
|
46
|
+
# advance the gauges
|
47
|
+
def move_gauges
|
48
|
+
@count +=1
|
49
|
+
if @count > 50
|
50
|
+
@count = 0
|
51
|
+
end
|
52
|
+
@g1.set_value(@count)
|
53
|
+
@g2.set_value(@count)
|
54
|
+
@g3.set_value(@count)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
module Demo
|
59
|
+
def Demo.run(frame, nb, log)
|
60
|
+
win = TestPanel.new(nb, log)
|
61
|
+
return win
|
62
|
+
end
|
63
|
+
|
64
|
+
def Demo.overview
|
65
|
+
return "A gauge is a horizontal or vertical bar which shows a quantity (often time). "
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
if __FILE__ == $0
|
70
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
71
|
+
load run_solo_lib
|
72
|
+
run File.basename($0)
|
73
|
+
end
|
@@ -0,0 +1,78 @@
|
|
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 TestPanel < Wx::Panel
|
17
|
+
def initialize(parent, log)
|
18
|
+
super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
|
19
|
+
@log = log
|
20
|
+
|
21
|
+
txt1 = Wx::StaticText.new(self, -1, "style=0")
|
22
|
+
dir1 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), 0)
|
23
|
+
|
24
|
+
txt2 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_DIR_ONLY")
|
25
|
+
dir2 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_DIR_ONLY)
|
26
|
+
|
27
|
+
txt3 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_SHOW_FILTERS")
|
28
|
+
dir3 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_SHOW_FILTERS,
|
29
|
+
"All files (*.*)|*.*|Ruby files (*.rb)|*.rb")
|
30
|
+
|
31
|
+
sz = Wx::FlexGridSizer.new(3, 5, 5)
|
32
|
+
sz.add(35, 35) # some space above
|
33
|
+
sz.add(35, 35)
|
34
|
+
sz.add(35, 35)
|
35
|
+
|
36
|
+
sz.add(txt1)
|
37
|
+
sz.add(txt2)
|
38
|
+
sz.add(txt3)
|
39
|
+
|
40
|
+
sz.add(dir1, 0, Wx::EXPAND)
|
41
|
+
sz.add(dir2, 0, Wx::EXPAND)
|
42
|
+
sz.add(dir3, 0, Wx::EXPAND)
|
43
|
+
|
44
|
+
sz.add(35,35) # some space below
|
45
|
+
|
46
|
+
sz.add_growable_row(2)
|
47
|
+
sz.add_growable_col(0)
|
48
|
+
sz.add_growable_col(1)
|
49
|
+
sz.add_growable_col(2)
|
50
|
+
|
51
|
+
set_sizer(sz)
|
52
|
+
set_auto_layout(true)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
module Demo
|
57
|
+
|
58
|
+
def Demo.run(frame, nb, log)
|
59
|
+
win = TestPanel.new(nb, log)
|
60
|
+
return win
|
61
|
+
end
|
62
|
+
|
63
|
+
def Demo.overview
|
64
|
+
return <<EOS
|
65
|
+
This control can be used to place a directory listing (with optional files)
|
66
|
+
on an arbitrary window. The control contains a TreeCtrl window representing
|
67
|
+
the directory hierarchy, and optionally, a Choice window containing a list
|
68
|
+
of filters.
|
69
|
+
EOS
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
if __FILE__ == $0
|
75
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
76
|
+
load run_solo_lib
|
77
|
+
run File.basename($0)
|
78
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
$buttonDefs = {
|
15
|
+
814 => ['GridSimple', ' Simple wxGrid'] # , catching all events '] ,
|
16
|
+
# 815 => ['GridStdEdRend', ' wxGrid showing Editors and Renderers '],
|
17
|
+
# 818 => ['GridHugeTable', ' A wxGrid with a HUGE table [100 MILLION cells!] '],
|
18
|
+
# 817 => ['GridCustTable', ' wxGrid using a custom Table, with non-string data '],
|
19
|
+
# 819 => ['GridEnterHandler',' Remapping keys to behave differently '],
|
20
|
+
# 820 => ['GridCustEditor', ' Shows how to create a custom Cell Editor '],
|
21
|
+
# 821 => ['GridDragable', ' A wxGrid with dragable rows and columns '],
|
22
|
+
# 822 => ['GridDragAndDrop', 'Shows how to make a grid a drop target for files'],
|
23
|
+
}
|
24
|
+
|
25
|
+
class ButtonPanel < Wx::Panel
|
26
|
+
def initialize(parent, log)
|
27
|
+
super(parent, -1)
|
28
|
+
@log = log
|
29
|
+
|
30
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
31
|
+
box.add(20,30)
|
32
|
+
keys = $buttonDefs.keys().sort()
|
33
|
+
keys.each do |key|
|
34
|
+
text = $buttonDefs[key][1]
|
35
|
+
btn = Wx::Button.new(self, key, text)
|
36
|
+
box.add(btn, 0, Wx::ALIGN_CENTER | Wx::ALL, 10)
|
37
|
+
evt_button(key) {|event| on_button(event)}
|
38
|
+
end
|
39
|
+
set_sizer(box)
|
40
|
+
end
|
41
|
+
|
42
|
+
def on_button(event)
|
43
|
+
modName = $buttonDefs[event.get_id()][0]
|
44
|
+
mod_file = File.join(File.dirname(__FILE__), modName + ".rbw")
|
45
|
+
load mod_file
|
46
|
+
|
47
|
+
frame = GridDemo::TestFrame.new(nil, @log)
|
48
|
+
frame.show()
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
module Demo
|
53
|
+
def Demo.run(frame,nb,log)
|
54
|
+
win = ButtonPanel.new(nb, log)
|
55
|
+
return win
|
56
|
+
end
|
57
|
+
|
58
|
+
def Demo.overview
|
59
|
+
"A simple grid."
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
if __FILE__ == $0
|
65
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
66
|
+
load run_solo_lib
|
67
|
+
run File.basename($0)
|
68
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
#!/usr/bin/env ruby
|
3
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
|
4
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
5
|
+
|
6
|
+
begin
|
7
|
+
require 'wx'
|
8
|
+
rescue LoadError => no_wx_err
|
9
|
+
begin
|
10
|
+
require 'rubygems'
|
11
|
+
require 'wx'
|
12
|
+
rescue LoadError
|
13
|
+
raise no_wx_err
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
class TestPanel < Wx::Panel
|
19
|
+
def initialize(parent, log)
|
20
|
+
super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
21
|
+
Wx::NO_FULL_REPAINT_ON_RESIZE)
|
22
|
+
@log = log
|
23
|
+
|
24
|
+
b = Wx::Button.new(self, -1, 'Give me some help!',
|
25
|
+
Wx::Point.new(50,50))
|
26
|
+
|
27
|
+
evt_button(b.get_id) { on_button }
|
28
|
+
end
|
29
|
+
|
30
|
+
def on_button
|
31
|
+
help = Wx::HtmlHelpController.instance
|
32
|
+
help_file = File.join( File.dirname(__FILE__), 'helpfile.htb')
|
33
|
+
exit if not File.exists?(help_file)
|
34
|
+
help.add_book( File.expand_path(help_file), false )
|
35
|
+
help.display_contents
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
module Demo
|
40
|
+
def Demo.run(frame, nb, log)
|
41
|
+
TestPanel.new(nb, log)
|
42
|
+
end
|
43
|
+
|
44
|
+
def Demo.overview
|
45
|
+
"Wx::HtmlHelpController is a sophisticated viewer for online help\n" +
|
46
|
+
"documentation in HTML format. It uses a format based on the Microsoft\n" +
|
47
|
+
"HTML Help format, but is available on all platforms. It includes a\n" +
|
48
|
+
"contents page, index and keyword search."
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
if __FILE__ == $0
|
54
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
55
|
+
load run_solo_lib
|
56
|
+
run File.basename($0)
|
57
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class FindPrefixListBox < Wx::ListBox
|
15
|
+
def initialize(parent, id, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, choices=[], style=0)
|
16
|
+
super(parent, id, pos, size, choices, style)
|
17
|
+
@typedText = ""
|
18
|
+
@log = parent.log
|
19
|
+
evt_key_down {|event| on_key(event)}
|
20
|
+
end
|
21
|
+
|
22
|
+
def find_prefix(prefix)
|
23
|
+
@log.write_text("Looking for prefix: " + prefix.to_s)
|
24
|
+
if prefix
|
25
|
+
prefix.downcase!
|
26
|
+
length = prefix.length
|
27
|
+
0.upto(get_count) do |x|
|
28
|
+
text = get_string(x).to_s.downcase
|
29
|
+
if text[0,length] == prefix
|
30
|
+
@log.write_text("Prefix " + prefix + " is found.")
|
31
|
+
return x
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
@log.write_text("Prefix " + prefix + " is not found.")
|
36
|
+
return -1
|
37
|
+
end
|
38
|
+
|
39
|
+
def on_key(event)
|
40
|
+
key = event.get_key_code
|
41
|
+
if key >= 32 and key <= 127
|
42
|
+
@typedText += key.chr
|
43
|
+
item = find_prefix(@typedText)
|
44
|
+
if item != -1
|
45
|
+
set_selection(item)
|
46
|
+
end
|
47
|
+
elsif key == Wx::K_BACK # backspace removes one character and backs up
|
48
|
+
@typedText = @typedText[0..-2]
|
49
|
+
if not @typedText
|
50
|
+
set_selection(0)
|
51
|
+
else
|
52
|
+
item = find_prefix(@typedText)
|
53
|
+
if item != -1
|
54
|
+
set_selection(item)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
else
|
59
|
+
@typedText = ""
|
60
|
+
event.skip
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def on_key_down(event)
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class TestListBox < Wx::Panel
|
70
|
+
attr_reader :log
|
71
|
+
def initialize(parent, log)
|
72
|
+
@log = log
|
73
|
+
super(parent, -1)
|
74
|
+
|
75
|
+
sampleList = %w(zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
|
76
|
+
|
77
|
+
Wx::StaticText.new(self, -1, "This example uses the wxListBox control.", Wx::Point.new(45,10))
|
78
|
+
|
79
|
+
Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,18))
|
80
|
+
@lb1 = Wx::ListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
|
81
|
+
evt_listbox(@lb1.get_id) {|event| on_evt_listbox(event)}
|
82
|
+
evt_listbox_dclick(@lb1.get_id) {|event| on_evt_listbox_dclick(event)}
|
83
|
+
@lb1.set_selection(3)
|
84
|
+
@lb1.append("with data", "This one has data")
|
85
|
+
@lb1.set_client_data(2, "This one has data")
|
86
|
+
|
87
|
+
Wx::StaticText.new(self, -1, "Select many:", Wx::Point.new(200,50), Wx::Size.new(65,18))
|
88
|
+
@lb2 = Wx::ListBox.new(self, 70, Wx::Point.new(280,50), Wx::Size.new(80,120), sampleList, Wx::LB_EXTENDED)
|
89
|
+
evt_listbox(@lb2.get_id) {|event| on_evt_multi_listbox(event)}
|
90
|
+
@lb2.evt_right_up {|event| on_evt_right_button(event)}
|
91
|
+
@lb2.set_selection(0)
|
92
|
+
|
93
|
+
sampleList += ["test a", "test aa", "test aab", "test ab", "test abc", "test abcc", "test abcd"]
|
94
|
+
sampleList.sort!
|
95
|
+
Wx::StaticText.new(self, -1, "Find typed prefix:", Wx::Point.new(15,250))
|
96
|
+
fp = FindPrefixListBox.new(self, -1, Wx::Point.new(110,250), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
|
97
|
+
fp.set_selection(0)
|
98
|
+
end
|
99
|
+
|
100
|
+
def on_evt_listbox(event)
|
101
|
+
@log.write_text("evt_listbox: #{event.get_string}, #{event.is_selection}, #{event.get_selection}, #{event.get_client_data}")
|
102
|
+
end
|
103
|
+
|
104
|
+
def on_evt_listbox_dclick(event)
|
105
|
+
@log.write_text("evt_listbox_dclick: " + @lb1.get_selection.to_s)
|
106
|
+
@lb1.delete(@lb1.get_selection)
|
107
|
+
end
|
108
|
+
|
109
|
+
def on_evt_multi_listbox(event)
|
110
|
+
@log.write_text("evt_multi_listbox: (" +
|
111
|
+
@lb2.get_selections.join(',') + ")")
|
112
|
+
end
|
113
|
+
|
114
|
+
def on_evt_right_button(event)
|
115
|
+
@log.write_text("evt_right_button: " + event.get_position.to_s)
|
116
|
+
if event.get_event_object.get_id == 70
|
117
|
+
selections = @lb2.get_selections
|
118
|
+
selections.reverse!
|
119
|
+
selections.each do |index|
|
120
|
+
@lb2.delete(index)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
module Demo
|
127
|
+
def Demo.run(frame,nb,log)
|
128
|
+
win = TestListBox.new(nb, log)
|
129
|
+
return win
|
130
|
+
end
|
131
|
+
|
132
|
+
def Demo.overview
|
133
|
+
"A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections)."
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
if __FILE__ == $0
|
139
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
140
|
+
load run_solo_lib
|
141
|
+
run File.basename($0)
|
142
|
+
end
|