wxruby 1.9.2-i386-mswin32 → 1.9.3-i386-mswin32
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 -53
- data/README +299 -299
- data/lib/wx/classes/app.rb +6 -0
- data/lib/wx/classes/checklistbox.rb +45 -30
- data/lib/wx/classes/clipboard.rb +16 -0
- data/lib/wx/classes/event.rb +5 -0
- data/lib/wx/classes/evthandler.rb +20 -10
- data/lib/wx/classes/grid.rb +38 -39
- data/lib/wx/classes/listctrl.rb +12 -0
- data/lib/wx/classes/mediactrl.rb +22 -0
- data/lib/wx/classes/menu.rb +6 -6
- data/lib/wx/classes/sound.rb +23 -0
- data/lib/wx/classes/styledtextctrl.rb +2 -2
- data/lib/wx/classes/treectrl.rb +26 -0
- data/lib/wx/keyword_ctors.rb +19 -5
- data/lib/wx/keyword_defs.rb +20 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wx.rb +42 -42
- data/lib/wxruby2.exp +0 -0
- data/lib/wxruby2.lib +0 -0
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +17 -17
- data/samples/aui/aui.rb +8 -1
- data/samples/bigdemo/About.rbw +39 -39
- data/samples/bigdemo/ColorPanel.rbw +25 -25
- data/samples/bigdemo/GridSimple.rbw +80 -80
- data/samples/bigdemo/MDIDemo.rbw +59 -59
- data/samples/bigdemo/PopupMenu.rbw +151 -151
- data/samples/bigdemo/Sizers.rbw +545 -545
- data/samples/bigdemo/bigdemo.rb +826 -826
- data/samples/bigdemo/demoTemplate.rbw +37 -37
- data/samples/bigdemo/icons/choice.xpm +27 -27
- data/samples/bigdemo/icons/combo.xpm +27 -27
- data/samples/bigdemo/icons/copy.xpm +25 -25
- data/samples/bigdemo/icons/cut.xpm +24 -24
- data/samples/bigdemo/icons/gauge.xpm +27 -27
- data/samples/bigdemo/icons/help.xpm +25 -25
- data/samples/bigdemo/icons/list.xpm +27 -27
- data/samples/bigdemo/icons/mondrian.xpm +44 -44
- data/samples/bigdemo/icons/new.xpm +24 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -45
- data/samples/bigdemo/icons/open.xpm +26 -26
- data/samples/bigdemo/icons/paste.xpm +38 -38
- data/samples/bigdemo/icons/preview.xpm +26 -26
- data/samples/bigdemo/icons/print.xpm +26 -26
- data/samples/bigdemo/icons/radio.xpm +27 -27
- data/samples/bigdemo/icons/robert.xpm +415 -415
- data/samples/bigdemo/icons/save.xpm +25 -25
- data/samples/bigdemo/icons/smiles.xpm +39 -39
- data/samples/bigdemo/icons/smiley.xpm +42 -42
- data/samples/bigdemo/icons/stattext.xpm +24 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -79
- data/samples/bigdemo/icons/text.xpm +27 -27
- data/samples/bigdemo/icons/tog1.xpm +38 -38
- data/samples/bigdemo/icons/tog2.xpm +38 -38
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
- data/samples/bigdemo/tips.txt +7 -7
- data/samples/bigdemo/utils.rb +11 -11
- data/samples/bigdemo/wxButton.rbw +66 -66
- data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
- data/samples/bigdemo/wxCheckBox.rbw +52 -52
- data/samples/bigdemo/wxCheckListBox.rbw +77 -77
- data/samples/bigdemo/wxChoice.rbw +49 -49
- data/samples/bigdemo/wxColourDialog.rbw +34 -34
- data/samples/bigdemo/wxComboBox.rbw +79 -79
- data/samples/bigdemo/wxDialog.rbw +92 -92
- data/samples/bigdemo/wxDirDialog.rbw +32 -32
- data/samples/bigdemo/wxFileDialog.rbw +39 -39
- data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
- data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
- data/samples/bigdemo/wxFontDialog.rbw +176 -176
- data/samples/bigdemo/wxFrame.rbw +55 -55
- data/samples/bigdemo/wxGauge.rbw +73 -73
- data/samples/bigdemo/wxGrid.rbw +68 -68
- data/samples/bigdemo/wxListBox.rbw +142 -142
- data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
- data/samples/bigdemo/wxMDIWindows.rbw +52 -52
- data/samples/bigdemo/wxMenu.rbw +238 -238
- data/samples/bigdemo/wxMessageDialog.rbw +30 -30
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
- data/samples/bigdemo/wxNotebook.rbw +138 -138
- data/samples/bigdemo/wxProgressDialog.rbw +45 -45
- data/samples/bigdemo/wxRadioBox.rbw +74 -74
- data/samples/bigdemo/wxRadioButton.rbw +127 -127
- data/samples/bigdemo/wxSashWindow.rbw +94 -104
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
- data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
- data/samples/bigdemo/wxSlider.rbw +44 -44
- data/samples/bigdemo/wxSpinButton.rbw +52 -52
- data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
- data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
- data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
- data/samples/bigdemo/wxStaticText.rbw +57 -57
- data/samples/bigdemo/wxStatusBar.rbw +128 -128
- data/samples/bigdemo/wxTextCtrl.rbw +151 -151
- data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
- data/samples/bigdemo/wxToggleButton.rbw +51 -51
- data/samples/bigdemo/wxToolBar.rbw +133 -133
- data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
- data/samples/calendar/calendar.rb +275 -275
- data/samples/caret/caret.rb +286 -286
- data/samples/caret/mondrian.xpm +44 -44
- data/samples/controls/controls.rb +1140 -1140
- data/samples/controls/get_item_sample.rb +87 -87
- data/samples/controls/icons/choice.xpm +27 -27
- data/samples/controls/icons/combo.xpm +27 -27
- data/samples/controls/icons/gauge.xpm +27 -27
- data/samples/controls/icons/list.xpm +27 -27
- data/samples/controls/icons/radio.xpm +27 -27
- data/samples/controls/icons/stattext.xpm +24 -24
- data/samples/controls/icons/text.xpm +27 -27
- data/samples/controls/mondrian.xpm +44 -44
- data/samples/dialogs/dialogs.rb +724 -724
- data/samples/dialogs/tips.txt +18 -18
- data/samples/drawing/graphics_drawing.rb +232 -0
- data/samples/{images → drawing}/images.rb +48 -48
- data/samples/{images → drawing}/paperclip.png +0 -0
- data/samples/etc/activation.rb +108 -108
- data/samples/etc/choice.rb +72 -72
- data/samples/etc/miniframe.rb +84 -84
- data/samples/etc/sash.rb +135 -135
- data/samples/etc/scrollwin.rb +116 -116
- data/samples/etc/system_settings.rb +258 -258
- data/samples/etc/wizard.rb +79 -79
- data/samples/grid/grid.rb +1 -0
- data/samples/listbook/listbook.rb +181 -181
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +87 -87
- data/samples/media/mediactrl.rb +173 -0
- data/samples/minimal/minimal.rb +85 -85
- data/samples/minimal/nothing.rb +21 -21
- data/samples/opengl/cube.rb +123 -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/textctrl.rb +124 -124
- data/samples/text/unicode.rb +238 -238
- data/samples/text/utf8.txt +14 -14
- data/samples/treectrl/treectrl.rb +1180 -1181
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +107 -107
- metadata +26 -9
- data/samples/images/Thumbs.db +0 -0
data/samples/etc/choice.rb
CHANGED
@@ -1,72 +1,72 @@
|
|
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
|
-
include Wx
|
16
|
-
|
17
|
-
ID_CHOICE = 1000
|
18
|
-
|
19
|
-
class ChoiceDlg < Dialog
|
20
|
-
def initialize
|
21
|
-
super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
|
22
|
-
|
23
|
-
list = [ "ABS", "Airbag", "Air conditioning" ]
|
24
|
-
|
25
|
-
@m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
|
26
|
-
@m_pChoice.append("Automatic gear", 100)
|
27
|
-
|
28
|
-
@m_pLabel = StaticText.new(self, -1, "default")
|
29
|
-
dlgSizer = BoxSizer.new(HORIZONTAL)
|
30
|
-
choiceSizer = BoxSizer.new(VERTICAL)
|
31
|
-
choiceSizer.add(@m_pChoice, 1, GROW)
|
32
|
-
choiceSizer.add(@m_pLabel)
|
33
|
-
dlgSizer.add(choiceSizer, 1, GROW)
|
34
|
-
set_sizer(dlgSizer)
|
35
|
-
set_auto_layout(TRUE)
|
36
|
-
layout()
|
37
|
-
|
38
|
-
evt_choice(ID_CHOICE) {|event| onChoice(event) }
|
39
|
-
evt_close {onClose}
|
40
|
-
end
|
41
|
-
|
42
|
-
def onChoice(event)
|
43
|
-
chose = event.get_selection
|
44
|
-
data = event.get_client_data
|
45
|
-
# NOTE: uninitialized client data will be false, not nil
|
46
|
-
if(!data)
|
47
|
-
data = 0
|
48
|
-
end
|
49
|
-
data += 1
|
50
|
-
@m_pLabel.set_label(data.to_s)
|
51
|
-
|
52
|
-
@m_pChoice.set_selection(chose)
|
53
|
-
@m_pChoice.set_client_data(chose, data)
|
54
|
-
end
|
55
|
-
|
56
|
-
def onClose
|
57
|
-
destroy()
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
class RbApp < App
|
63
|
-
def on_init
|
64
|
-
dlg = ChoiceDlg.new
|
65
|
-
set_top_window(dlg)
|
66
|
-
dlg.show(TRUE)
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
a = RbApp.new
|
72
|
-
a.main_loop()
|
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
|
+
include Wx
|
16
|
+
|
17
|
+
ID_CHOICE = 1000
|
18
|
+
|
19
|
+
class ChoiceDlg < Dialog
|
20
|
+
def initialize
|
21
|
+
super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
|
22
|
+
|
23
|
+
list = [ "ABS", "Airbag", "Air conditioning" ]
|
24
|
+
|
25
|
+
@m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
|
26
|
+
@m_pChoice.append("Automatic gear", 100)
|
27
|
+
|
28
|
+
@m_pLabel = StaticText.new(self, -1, "default")
|
29
|
+
dlgSizer = BoxSizer.new(HORIZONTAL)
|
30
|
+
choiceSizer = BoxSizer.new(VERTICAL)
|
31
|
+
choiceSizer.add(@m_pChoice, 1, GROW)
|
32
|
+
choiceSizer.add(@m_pLabel)
|
33
|
+
dlgSizer.add(choiceSizer, 1, GROW)
|
34
|
+
set_sizer(dlgSizer)
|
35
|
+
set_auto_layout(TRUE)
|
36
|
+
layout()
|
37
|
+
|
38
|
+
evt_choice(ID_CHOICE) {|event| onChoice(event) }
|
39
|
+
evt_close {onClose}
|
40
|
+
end
|
41
|
+
|
42
|
+
def onChoice(event)
|
43
|
+
chose = event.get_selection
|
44
|
+
data = event.get_client_data
|
45
|
+
# NOTE: uninitialized client data will be false, not nil
|
46
|
+
if(!data)
|
47
|
+
data = 0
|
48
|
+
end
|
49
|
+
data += 1
|
50
|
+
@m_pLabel.set_label(data.to_s)
|
51
|
+
|
52
|
+
@m_pChoice.set_selection(chose)
|
53
|
+
@m_pChoice.set_client_data(chose, data)
|
54
|
+
end
|
55
|
+
|
56
|
+
def onClose
|
57
|
+
destroy()
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
class RbApp < App
|
63
|
+
def on_init
|
64
|
+
dlg = ChoiceDlg.new
|
65
|
+
set_top_window(dlg)
|
66
|
+
dlg.show(TRUE)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
a = RbApp.new
|
72
|
+
a.main_loop()
|
data/samples/etc/miniframe.rb
CHANGED
@@ -1,84 +1,84 @@
|
|
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
|
-
attr_reader :mini
|
18
|
-
|
19
|
-
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
20
|
-
super(nil, -1, title, pos, size, style)
|
21
|
-
|
22
|
-
|
23
|
-
menuFile = Wx::Menu.new()
|
24
|
-
helpMenu = Wx::Menu.new()
|
25
|
-
helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
26
|
-
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
27
|
-
menuBar = Wx::MenuBar.new()
|
28
|
-
menuBar.append(menuFile, "&File")
|
29
|
-
menuBar.append(helpMenu, "&Help")
|
30
|
-
set_menu_bar(menuBar)
|
31
|
-
|
32
|
-
create_status_bar(2)
|
33
|
-
set_status_text("Welcome to wxRuby!")
|
34
|
-
|
35
|
-
evt_menu(Wx::ID_EXIT) { on_quit }
|
36
|
-
evt_menu(Wx::ID_ABOUT) { on_about }
|
37
|
-
|
38
|
-
make_miniframe()
|
39
|
-
end
|
40
|
-
|
41
|
-
def make_miniframe
|
42
|
-
@mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
|
43
|
-
Wx::Point.new(300, 75), Wx::Size.new(300, 150),
|
44
|
-
Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
|
45
|
-
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
46
|
-
text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
|
47
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
48
|
-
text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
|
49
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
50
|
-
text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
|
51
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
52
|
-
text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
|
53
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
54
|
-
text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
|
55
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
56
|
-
mini.set_sizer(sizer)
|
57
|
-
mini.show()
|
58
|
-
mini.raise()
|
59
|
-
end
|
60
|
-
|
61
|
-
def on_quit
|
62
|
-
mini.close()
|
63
|
-
close()
|
64
|
-
end
|
65
|
-
|
66
|
-
def on_about
|
67
|
-
msg = sprintf("This is the About dialog of the miniframe sample.\n" \
|
68
|
-
"Welcome to %s", Wx::VERSION_STRING)
|
69
|
-
Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
class RbApp < Wx::App
|
74
|
-
def on_init
|
75
|
-
frame = MyFrame.new("Mini Frame wxRuby App",
|
76
|
-
Wx::Point.new(50, 50),
|
77
|
-
Wx::Size.new(450, 340))
|
78
|
-
frame.show()
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
app = RbApp.new
|
83
|
-
app.main_loop()
|
84
|
-
|
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
|
+
attr_reader :mini
|
18
|
+
|
19
|
+
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
20
|
+
super(nil, -1, title, pos, size, style)
|
21
|
+
|
22
|
+
|
23
|
+
menuFile = Wx::Menu.new()
|
24
|
+
helpMenu = Wx::Menu.new()
|
25
|
+
helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
26
|
+
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
27
|
+
menuBar = Wx::MenuBar.new()
|
28
|
+
menuBar.append(menuFile, "&File")
|
29
|
+
menuBar.append(helpMenu, "&Help")
|
30
|
+
set_menu_bar(menuBar)
|
31
|
+
|
32
|
+
create_status_bar(2)
|
33
|
+
set_status_text("Welcome to wxRuby!")
|
34
|
+
|
35
|
+
evt_menu(Wx::ID_EXIT) { on_quit }
|
36
|
+
evt_menu(Wx::ID_ABOUT) { on_about }
|
37
|
+
|
38
|
+
make_miniframe()
|
39
|
+
end
|
40
|
+
|
41
|
+
def make_miniframe
|
42
|
+
@mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
|
43
|
+
Wx::Point.new(300, 75), Wx::Size.new(300, 150),
|
44
|
+
Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
|
45
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
46
|
+
text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
|
47
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
48
|
+
text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
|
49
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
50
|
+
text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
|
51
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
52
|
+
text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
|
53
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
54
|
+
text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
|
55
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
56
|
+
mini.set_sizer(sizer)
|
57
|
+
mini.show()
|
58
|
+
mini.raise()
|
59
|
+
end
|
60
|
+
|
61
|
+
def on_quit
|
62
|
+
mini.close()
|
63
|
+
close()
|
64
|
+
end
|
65
|
+
|
66
|
+
def on_about
|
67
|
+
msg = sprintf("This is the About dialog of the miniframe sample.\n" \
|
68
|
+
"Welcome to %s", Wx::VERSION_STRING)
|
69
|
+
Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class RbApp < Wx::App
|
74
|
+
def on_init
|
75
|
+
frame = MyFrame.new("Mini Frame wxRuby App",
|
76
|
+
Wx::Point.new(50, 50),
|
77
|
+
Wx::Size.new(450, 340))
|
78
|
+
frame.show()
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
app = RbApp.new
|
83
|
+
app.main_loop()
|
84
|
+
|
data/samples/etc/sash.rb
CHANGED
@@ -1,135 +1,135 @@
|
|
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 MySashFrame < 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("wxRuby Sash sample")
|
32
|
-
|
33
|
-
evt_menu(Wx::ID_EXIT) { on_quit }
|
34
|
-
evt_menu(Wx::ID_ABOUT) { on_about }
|
35
|
-
|
36
|
-
# Start creating the sashes - these are created from outermost
|
37
|
-
# inwards.
|
38
|
-
sash = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
39
|
-
Wx::Size.new(150, self.get_size.y) )
|
40
|
-
# The default width of the sash is 150 pixels, and it extends the
|
41
|
-
# full height of the frame
|
42
|
-
sash.set_default_size( Wx::Size.new(150, self.get_size.y) )
|
43
|
-
# This sash splits the frame top to bottom
|
44
|
-
sash.set_orientation(Wx::LAYOUT_VERTICAL)
|
45
|
-
# Place the sash on the left of the frame
|
46
|
-
sash.set_alignment(Wx::LAYOUT_LEFT)
|
47
|
-
# Show a drag bar on the right of the sash
|
48
|
-
sash.set_sash_visible(Wx::SASH_RIGHT, true)
|
49
|
-
sash.set_background_colour(Wx::Colour.new(225, 200, 200) )
|
50
|
-
|
51
|
-
panel = Wx::Panel.new(sash)
|
52
|
-
v_siz = Wx::BoxSizer.new(Wx::VERTICAL)
|
53
|
-
chk_1 = Wx::CheckBox.new(panel, -1, 'test 1')
|
54
|
-
v_siz.add(chk_1, 0, Wx::ADJUST_MINSIZE)
|
55
|
-
chk_2 = Wx::CheckBox.new(panel, -1, 'test 2')
|
56
|
-
v_siz.add(chk_2, 0, Wx::ADJUST_MINSIZE)
|
57
|
-
panel.set_sizer_and_fit(v_siz)
|
58
|
-
|
59
|
-
# handle the sash being dragged
|
60
|
-
evt_sash_dragged( sash.get_id ) { | e | on_v_sash_dragged(sash, e) }
|
61
|
-
|
62
|
-
# Create another small sash on the bottom of the frame
|
63
|
-
sash_2 = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
64
|
-
Wx::Size.new(self.get_size.x,
|
65
|
-
100),
|
66
|
-
Wx::SW_3DSASH)
|
67
|
-
sash_2.set_default_size( Wx::Size.new(self.get_size.x, 100) )
|
68
|
-
sash_2.set_orientation(Wx::LAYOUT_HORIZONTAL)
|
69
|
-
sash_2.set_alignment(Wx::LAYOUT_BOTTOM)
|
70
|
-
sash_2.set_sash_visible(Wx::SASH_TOP, true)
|
71
|
-
text = Wx::StaticText.new(sash_2, -1, 'This is the second sash window')
|
72
|
-
evt_sash_dragged( sash_2.get_id ) { | e | on_h_sash_dragged(sash_2, e) }
|
73
|
-
|
74
|
-
# The main panel - the residual part of the frame that takes up all
|
75
|
-
# remaining space not used by the sash windows.
|
76
|
-
@m_panel = Wx::Panel.new(self, -1)
|
77
|
-
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
78
|
-
|
79
|
-
txt = Wx::TextCtrl.new(@m_panel, -1, 'Main panel area',
|
80
|
-
Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
81
|
-
Wx::SUNKEN_BORDER|Wx::TE_MULTILINE)
|
82
|
-
sizer.add(txt, 1, Wx::EXPAND|Wx::ADJUST_MINSIZE|Wx::ALL, 10)
|
83
|
-
@m_panel.set_sizer_and_fit(sizer)
|
84
|
-
|
85
|
-
# Adjust the size of the sashes when the frame is resized
|
86
|
-
evt_size { | e | on_size(e) }
|
87
|
-
|
88
|
-
# Call LayoutAlgorithm#layout_frame to layout the sashes.
|
89
|
-
# The second argument is the residual window that takes up remaining
|
90
|
-
# space
|
91
|
-
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
92
|
-
end
|
93
|
-
|
94
|
-
def on_v_sash_dragged(sash, e)
|
95
|
-
# Call get_drag_rect to get the new size
|
96
|
-
size = Wx::Size.new( e.get_drag_rect.width(), self.get_size.y )
|
97
|
-
sash.set_default_size( size )
|
98
|
-
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
99
|
-
end
|
100
|
-
|
101
|
-
def on_h_sash_dragged(sash, e)
|
102
|
-
size = Wx::Size.new( self.get_size.x, e.get_drag_rect.height() )
|
103
|
-
sash.set_default_size( size )
|
104
|
-
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
105
|
-
end
|
106
|
-
|
107
|
-
def on_size(e)
|
108
|
-
e.skip()
|
109
|
-
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
110
|
-
end
|
111
|
-
|
112
|
-
def on_quit
|
113
|
-
close(true)
|
114
|
-
end
|
115
|
-
|
116
|
-
def on_about
|
117
|
-
msg = sprintf("This is the About dialog of the sash sample.\n" \
|
118
|
-
"Welcome to %s", Wx::VERSION_STRING)
|
119
|
-
Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
class SashApp < Wx::App
|
124
|
-
def on_init
|
125
|
-
frame = MySashFrame.new("Sash Layout wxRuby App",
|
126
|
-
Wx::Point.new(50, 50),
|
127
|
-
Wx::Size.new(450, 340))
|
128
|
-
|
129
|
-
frame.show(true)
|
130
|
-
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
app = SashApp.new
|
135
|
-
app.main_loop()
|
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 MySashFrame < 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("wxRuby Sash sample")
|
32
|
+
|
33
|
+
evt_menu(Wx::ID_EXIT) { on_quit }
|
34
|
+
evt_menu(Wx::ID_ABOUT) { on_about }
|
35
|
+
|
36
|
+
# Start creating the sashes - these are created from outermost
|
37
|
+
# inwards.
|
38
|
+
sash = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
39
|
+
Wx::Size.new(150, self.get_size.y) )
|
40
|
+
# The default width of the sash is 150 pixels, and it extends the
|
41
|
+
# full height of the frame
|
42
|
+
sash.set_default_size( Wx::Size.new(150, self.get_size.y) )
|
43
|
+
# This sash splits the frame top to bottom
|
44
|
+
sash.set_orientation(Wx::LAYOUT_VERTICAL)
|
45
|
+
# Place the sash on the left of the frame
|
46
|
+
sash.set_alignment(Wx::LAYOUT_LEFT)
|
47
|
+
# Show a drag bar on the right of the sash
|
48
|
+
sash.set_sash_visible(Wx::SASH_RIGHT, true)
|
49
|
+
sash.set_background_colour(Wx::Colour.new(225, 200, 200) )
|
50
|
+
|
51
|
+
panel = Wx::Panel.new(sash)
|
52
|
+
v_siz = Wx::BoxSizer.new(Wx::VERTICAL)
|
53
|
+
chk_1 = Wx::CheckBox.new(panel, -1, 'test 1')
|
54
|
+
v_siz.add(chk_1, 0, Wx::ADJUST_MINSIZE)
|
55
|
+
chk_2 = Wx::CheckBox.new(panel, -1, 'test 2')
|
56
|
+
v_siz.add(chk_2, 0, Wx::ADJUST_MINSIZE)
|
57
|
+
panel.set_sizer_and_fit(v_siz)
|
58
|
+
|
59
|
+
# handle the sash being dragged
|
60
|
+
evt_sash_dragged( sash.get_id ) { | e | on_v_sash_dragged(sash, e) }
|
61
|
+
|
62
|
+
# Create another small sash on the bottom of the frame
|
63
|
+
sash_2 = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
64
|
+
Wx::Size.new(self.get_size.x,
|
65
|
+
100),
|
66
|
+
Wx::SW_3DSASH)
|
67
|
+
sash_2.set_default_size( Wx::Size.new(self.get_size.x, 100) )
|
68
|
+
sash_2.set_orientation(Wx::LAYOUT_HORIZONTAL)
|
69
|
+
sash_2.set_alignment(Wx::LAYOUT_BOTTOM)
|
70
|
+
sash_2.set_sash_visible(Wx::SASH_TOP, true)
|
71
|
+
text = Wx::StaticText.new(sash_2, -1, 'This is the second sash window')
|
72
|
+
evt_sash_dragged( sash_2.get_id ) { | e | on_h_sash_dragged(sash_2, e) }
|
73
|
+
|
74
|
+
# The main panel - the residual part of the frame that takes up all
|
75
|
+
# remaining space not used by the sash windows.
|
76
|
+
@m_panel = Wx::Panel.new(self, -1)
|
77
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
78
|
+
|
79
|
+
txt = Wx::TextCtrl.new(@m_panel, -1, 'Main panel area',
|
80
|
+
Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
81
|
+
Wx::SUNKEN_BORDER|Wx::TE_MULTILINE)
|
82
|
+
sizer.add(txt, 1, Wx::EXPAND|Wx::ADJUST_MINSIZE|Wx::ALL, 10)
|
83
|
+
@m_panel.set_sizer_and_fit(sizer)
|
84
|
+
|
85
|
+
# Adjust the size of the sashes when the frame is resized
|
86
|
+
evt_size { | e | on_size(e) }
|
87
|
+
|
88
|
+
# Call LayoutAlgorithm#layout_frame to layout the sashes.
|
89
|
+
# The second argument is the residual window that takes up remaining
|
90
|
+
# space
|
91
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
92
|
+
end
|
93
|
+
|
94
|
+
def on_v_sash_dragged(sash, e)
|
95
|
+
# Call get_drag_rect to get the new size
|
96
|
+
size = Wx::Size.new( e.get_drag_rect.width(), self.get_size.y )
|
97
|
+
sash.set_default_size( size )
|
98
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
99
|
+
end
|
100
|
+
|
101
|
+
def on_h_sash_dragged(sash, e)
|
102
|
+
size = Wx::Size.new( self.get_size.x, e.get_drag_rect.height() )
|
103
|
+
sash.set_default_size( size )
|
104
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
105
|
+
end
|
106
|
+
|
107
|
+
def on_size(e)
|
108
|
+
e.skip()
|
109
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
110
|
+
end
|
111
|
+
|
112
|
+
def on_quit
|
113
|
+
close(true)
|
114
|
+
end
|
115
|
+
|
116
|
+
def on_about
|
117
|
+
msg = sprintf("This is the About dialog of the sash sample.\n" \
|
118
|
+
"Welcome to %s", Wx::VERSION_STRING)
|
119
|
+
Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
class SashApp < Wx::App
|
124
|
+
def on_init
|
125
|
+
frame = MySashFrame.new("Sash Layout wxRuby App",
|
126
|
+
Wx::Point.new(50, 50),
|
127
|
+
Wx::Size.new(450, 340))
|
128
|
+
|
129
|
+
frame.show(true)
|
130
|
+
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
app = SashApp.new
|
135
|
+
app.main_loop()
|