wxruby 1.9.3-i386-mswin32 → 1.9.4-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/evthandler.rb +9 -0
- data/lib/wx/classes/timer.rb +25 -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/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/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 +22 -18
- data/samples/drawing/images.rb +48 -48
- 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/threaded.rb +5 -8
- data/samples/etc/wizard.rb +79 -79
- data/samples/html/html.rb +14 -10
- data/samples/listbook/listbook.rb +181 -181
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +87 -87
- data/samples/minimal/minimal.rb +85 -85
- data/samples/minimal/nothing.rb +21 -21
- 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 -1180
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +107 -107
- metadata +3 -3
data/samples/mdi/mdi.rb
CHANGED
@@ -1,87 +1,87 @@
|
|
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
|
-
# MDI sample for wxRuby
|
17
|
-
# slapped together quickly by Kevin Smith
|
18
|
-
|
19
|
-
ID_NEXT = 1
|
20
|
-
ID_PREVIOUS = 2
|
21
|
-
ID_CASCADE = 3
|
22
|
-
ID_TILE = 4
|
23
|
-
ID_CREATE = 5
|
24
|
-
ID_CLOSE = 6
|
25
|
-
ID_EXIT = 99
|
26
|
-
|
27
|
-
class MyFrame < Wx::MDIParentFrame
|
28
|
-
def initialize(title)
|
29
|
-
super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
|
30
|
-
|
31
|
-
@child_number = 0
|
32
|
-
|
33
|
-
menuFile = Wx::Menu.new
|
34
|
-
menuFile.append(ID_EXIT, "E&xit\tAlt-X")
|
35
|
-
menuMDI = Wx::Menu.new
|
36
|
-
menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
|
37
|
-
menuMDI.append(ID_PREVIOUS, "&Previous Child")
|
38
|
-
menuMDI.append_separator()
|
39
|
-
menuMDI.append(ID_CASCADE, "&Cascade")
|
40
|
-
menuMDI.append(ID_TILE, "&Tile")
|
41
|
-
menuMDI.append_separator()
|
42
|
-
menuMDI.append(ID_CREATE, "&Add Child")
|
43
|
-
menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
|
44
|
-
menuBar = Wx::MenuBar.new
|
45
|
-
menuBar.append(menuFile, "&File")
|
46
|
-
menuBar.append(menuMDI, "&Window")
|
47
|
-
set_menu_bar(menuBar)
|
48
|
-
|
49
|
-
evt_menu(ID_EXIT) { close }
|
50
|
-
evt_menu(ID_NEXT) { activate_next }
|
51
|
-
evt_menu(ID_PREVIOUS) { activate_previous }
|
52
|
-
evt_menu(ID_CASCADE) { cascade }
|
53
|
-
evt_menu(ID_TILE) { tile }
|
54
|
-
evt_menu(ID_CREATE) { create_child }
|
55
|
-
evt_menu(ID_CLOSE) { on_close_child }
|
56
|
-
|
57
|
-
create_status_bar(2).set_status_widths([100, -1])
|
58
|
-
set_status_text("Some features only work on MS Windows", 1)
|
59
|
-
|
60
|
-
create_child
|
61
|
-
create_child
|
62
|
-
create_child
|
63
|
-
end
|
64
|
-
|
65
|
-
def on_close_child
|
66
|
-
active = get_active_child
|
67
|
-
if(active)
|
68
|
-
active.close
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def create_child
|
73
|
-
@child_number += 1
|
74
|
-
name = "Child #{@child_number.to_s}"
|
75
|
-
Wx::MDIChildFrame.new(self, -1, name)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
class NothingApp < Wx::App
|
80
|
-
def on_init
|
81
|
-
frame = MyFrame.new("MDI App")
|
82
|
-
frame.show
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
a = NothingApp.new
|
87
|
-
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
|
+
|
16
|
+
# MDI sample for wxRuby
|
17
|
+
# slapped together quickly by Kevin Smith
|
18
|
+
|
19
|
+
ID_NEXT = 1
|
20
|
+
ID_PREVIOUS = 2
|
21
|
+
ID_CASCADE = 3
|
22
|
+
ID_TILE = 4
|
23
|
+
ID_CREATE = 5
|
24
|
+
ID_CLOSE = 6
|
25
|
+
ID_EXIT = 99
|
26
|
+
|
27
|
+
class MyFrame < Wx::MDIParentFrame
|
28
|
+
def initialize(title)
|
29
|
+
super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
|
30
|
+
|
31
|
+
@child_number = 0
|
32
|
+
|
33
|
+
menuFile = Wx::Menu.new
|
34
|
+
menuFile.append(ID_EXIT, "E&xit\tAlt-X")
|
35
|
+
menuMDI = Wx::Menu.new
|
36
|
+
menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
|
37
|
+
menuMDI.append(ID_PREVIOUS, "&Previous Child")
|
38
|
+
menuMDI.append_separator()
|
39
|
+
menuMDI.append(ID_CASCADE, "&Cascade")
|
40
|
+
menuMDI.append(ID_TILE, "&Tile")
|
41
|
+
menuMDI.append_separator()
|
42
|
+
menuMDI.append(ID_CREATE, "&Add Child")
|
43
|
+
menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
|
44
|
+
menuBar = Wx::MenuBar.new
|
45
|
+
menuBar.append(menuFile, "&File")
|
46
|
+
menuBar.append(menuMDI, "&Window")
|
47
|
+
set_menu_bar(menuBar)
|
48
|
+
|
49
|
+
evt_menu(ID_EXIT) { close }
|
50
|
+
evt_menu(ID_NEXT) { activate_next }
|
51
|
+
evt_menu(ID_PREVIOUS) { activate_previous }
|
52
|
+
evt_menu(ID_CASCADE) { cascade }
|
53
|
+
evt_menu(ID_TILE) { tile }
|
54
|
+
evt_menu(ID_CREATE) { create_child }
|
55
|
+
evt_menu(ID_CLOSE) { on_close_child }
|
56
|
+
|
57
|
+
create_status_bar(2).set_status_widths([100, -1])
|
58
|
+
set_status_text("Some features only work on MS Windows", 1)
|
59
|
+
|
60
|
+
create_child
|
61
|
+
create_child
|
62
|
+
create_child
|
63
|
+
end
|
64
|
+
|
65
|
+
def on_close_child
|
66
|
+
active = get_active_child
|
67
|
+
if(active)
|
68
|
+
active.close
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def create_child
|
73
|
+
@child_number += 1
|
74
|
+
name = "Child #{@child_number.to_s}"
|
75
|
+
Wx::MDIChildFrame.new(self, -1, name)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
class NothingApp < Wx::App
|
80
|
+
def on_init
|
81
|
+
frame = MyFrame.new("MDI App")
|
82
|
+
frame.show
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
a = NothingApp.new
|
87
|
+
a.main_loop()
|
data/samples/minimal/minimal.rb
CHANGED
@@ -1,85 +1,85 @@
|
|
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
|
-
load 'wx'
|
11
|
-
rescue
|
12
|
-
raise no_wx_err
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# This sample shows a fairly minimal Wx::App using a Frame, with a
|
17
|
-
# MenuBar and StatusBar but no controls. For the absolute minimum app,
|
18
|
-
# see nothing.rb
|
19
|
-
|
20
|
-
# A Wx::Frame is a self-contained, top-level Window that can contain
|
21
|
-
# controls, menubars, and statusbars
|
22
|
-
class MinimalFrame < Wx::Frame
|
23
|
-
def initialize(title)
|
24
|
-
# The main application frame has no parent (nil)
|
25
|
-
super(nil, :title => title, :size => [ 400, 300 ])
|
26
|
-
|
27
|
-
icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
|
28
|
-
# PNG can be used on all platforms, but icon type must be specified
|
29
|
-
# to work on Windows; OS X doesn't have "Frame" icons.
|
30
|
-
self.icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_PNG)
|
31
|
-
|
32
|
-
menu_bar = Wx::MenuBar.new
|
33
|
-
# The "file" menu
|
34
|
-
menu_file = Wx::Menu.new
|
35
|
-
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
36
|
-
menu_bar.append(menu_file, "&File")
|
37
|
-
|
38
|
-
# The "help" menu
|
39
|
-
menu_help = Wx::Menu.new
|
40
|
-
# Using Wx::ID_ABOUT default id means the menu item will be placed
|
41
|
-
# in the correct platform-specific place - eg on OS X
|
42
|
-
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
43
|
-
menu_bar.append(menu_help, "&Help")
|
44
|
-
|
45
|
-
# Assign the menubar to this frame
|
46
|
-
self.menu_bar = menu_bar
|
47
|
-
|
48
|
-
# Create a status bar
|
49
|
-
create_status_bar(2)
|
50
|
-
self.status_text = "Welcome to wxRuby!"
|
51
|
-
|
52
|
-
# Set it up to handle menu events using the relevant methods
|
53
|
-
evt_menu Wx::ID_EXIT, :on_quit
|
54
|
-
evt_menu Wx::ID_ABOUT, :on_about
|
55
|
-
end
|
56
|
-
|
57
|
-
# End the application; it should finish automatically when the last
|
58
|
-
# window is closed.
|
59
|
-
def on_quit
|
60
|
-
close()
|
61
|
-
end
|
62
|
-
|
63
|
-
# show an 'About' dialog
|
64
|
-
def on_about
|
65
|
-
msg = sprintf("This is the About dialog of the minimal sample.\n" \
|
66
|
-
"Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
|
67
|
-
|
68
|
-
# create a simple message dialog with OK button
|
69
|
-
about_dlg = Wx::MessageDialog.new( self, msg, 'About Minimal',
|
70
|
-
Wx::OK|Wx::ICON_INFORMATION )
|
71
|
-
# Display the dialog on top of and blocking other windows, until
|
72
|
-
# dismissed by clicking the 'OK' button
|
73
|
-
about_dlg.show_modal
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
# Wx::App is the container class for any wxruby app. To start an
|
78
|
-
# application, either define a subclass of Wx::App, create an instance,
|
79
|
-
# and call its main_loop method, OR, simply call the Wx::App.run class
|
80
|
-
# method, as shown here.
|
81
|
-
Wx::App.run do
|
82
|
-
self.app_name = 'Minimal'
|
83
|
-
frame = MinimalFrame.new("Minimal wxRuby App")
|
84
|
-
frame.show
|
85
|
-
end
|
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
|
+
load 'wx'
|
11
|
+
rescue
|
12
|
+
raise no_wx_err
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# This sample shows a fairly minimal Wx::App using a Frame, with a
|
17
|
+
# MenuBar and StatusBar but no controls. For the absolute minimum app,
|
18
|
+
# see nothing.rb
|
19
|
+
|
20
|
+
# A Wx::Frame is a self-contained, top-level Window that can contain
|
21
|
+
# controls, menubars, and statusbars
|
22
|
+
class MinimalFrame < Wx::Frame
|
23
|
+
def initialize(title)
|
24
|
+
# The main application frame has no parent (nil)
|
25
|
+
super(nil, :title => title, :size => [ 400, 300 ])
|
26
|
+
|
27
|
+
icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
|
28
|
+
# PNG can be used on all platforms, but icon type must be specified
|
29
|
+
# to work on Windows; OS X doesn't have "Frame" icons.
|
30
|
+
self.icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_PNG)
|
31
|
+
|
32
|
+
menu_bar = Wx::MenuBar.new
|
33
|
+
# The "file" menu
|
34
|
+
menu_file = Wx::Menu.new
|
35
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
36
|
+
menu_bar.append(menu_file, "&File")
|
37
|
+
|
38
|
+
# The "help" menu
|
39
|
+
menu_help = Wx::Menu.new
|
40
|
+
# Using Wx::ID_ABOUT default id means the menu item will be placed
|
41
|
+
# in the correct platform-specific place - eg on OS X
|
42
|
+
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
43
|
+
menu_bar.append(menu_help, "&Help")
|
44
|
+
|
45
|
+
# Assign the menubar to this frame
|
46
|
+
self.menu_bar = menu_bar
|
47
|
+
|
48
|
+
# Create a status bar
|
49
|
+
create_status_bar(2)
|
50
|
+
self.status_text = "Welcome to wxRuby!"
|
51
|
+
|
52
|
+
# Set it up to handle menu events using the relevant methods
|
53
|
+
evt_menu Wx::ID_EXIT, :on_quit
|
54
|
+
evt_menu Wx::ID_ABOUT, :on_about
|
55
|
+
end
|
56
|
+
|
57
|
+
# End the application; it should finish automatically when the last
|
58
|
+
# window is closed.
|
59
|
+
def on_quit
|
60
|
+
close()
|
61
|
+
end
|
62
|
+
|
63
|
+
# show an 'About' dialog
|
64
|
+
def on_about
|
65
|
+
msg = sprintf("This is the About dialog of the minimal sample.\n" \
|
66
|
+
"Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
|
67
|
+
|
68
|
+
# create a simple message dialog with OK button
|
69
|
+
about_dlg = Wx::MessageDialog.new( self, msg, 'About Minimal',
|
70
|
+
Wx::OK|Wx::ICON_INFORMATION )
|
71
|
+
# Display the dialog on top of and blocking other windows, until
|
72
|
+
# dismissed by clicking the 'OK' button
|
73
|
+
about_dlg.show_modal
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# Wx::App is the container class for any wxruby app. To start an
|
78
|
+
# application, either define a subclass of Wx::App, create an instance,
|
79
|
+
# and call its main_loop method, OR, simply call the Wx::App.run class
|
80
|
+
# method, as shown here.
|
81
|
+
Wx::App.run do
|
82
|
+
self.app_name = 'Minimal'
|
83
|
+
frame = MinimalFrame.new("Minimal wxRuby App")
|
84
|
+
frame.show
|
85
|
+
end
|
data/samples/minimal/nothing.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
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 is the minimum code to start a WxRuby app - create a Frame, and
|
17
|
-
# show it.
|
18
|
-
Wx::App.run do
|
19
|
-
frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
|
20
|
-
frame.show
|
21
|
-
end
|
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 is the minimum code to start a WxRuby app - create a Frame, and
|
17
|
+
# show it.
|
18
|
+
Wx::App.run do
|
19
|
+
frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
|
20
|
+
frame.show
|
21
|
+
end
|
data/samples/text/textctrl.rb
CHANGED
@@ -1,124 +1,124 @@
|
|
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 InformativeTextCtrl < Wx::TextCtrl
|
17
|
-
NEWLINE_CORRECTION_FACTOR = 0
|
18
|
-
|
19
|
-
# These text controls are multiline, and may have rich (coloured,
|
20
|
-
# styled) text in them
|
21
|
-
STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
|
22
|
-
def initialize(parent, text)
|
23
|
-
super(parent, -1, text, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
|
24
|
-
end
|
25
|
-
|
26
|
-
# more ruby-ish
|
27
|
-
alias :<< :append_text
|
28
|
-
|
29
|
-
# run through a few useful methods of textctrl and report the results
|
30
|
-
# as a string
|
31
|
-
def report()
|
32
|
-
report = ''
|
33
|
-
report << 'Insertion Point: ' << get_insertion_point.to_s() << "\n"
|
34
|
-
report << 'First Line Text: ' << get_line_text(0) << "\n"
|
35
|
-
report << 'Final Position: ' << get_last_position().to_s() << "\n"
|
36
|
-
report << 'Selection: ' << get_selection().inspect() << "\n"
|
37
|
-
report << 'String Selection: ' << get_string_selection().inspect << "\n"
|
38
|
-
report << 'Position to X, Y: ' <<
|
39
|
-
position_to_xy( get_insertion_point ).inspect
|
40
|
-
return report
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# A read-only text ctrl useful for displaying output
|
45
|
-
class LogTextCtrl < Wx::TextCtrl
|
46
|
-
STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
|
47
|
-
def initialize(parent)
|
48
|
-
super(parent, -1, '', Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class TextCtrlFrame < Wx::Frame
|
53
|
-
def initialize(title, pos, size)
|
54
|
-
super(nil, -1, title, pos, size)
|
55
|
-
|
56
|
-
panel = Wx::Panel.new(self, -1)
|
57
|
-
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
58
|
-
|
59
|
-
@textctrl = InformativeTextCtrl.new(panel, '')
|
60
|
-
populate_textctrl()
|
61
|
-
sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
|
62
|
-
|
63
|
-
button = Wx::Button.new(panel, -1, 'Get Info')
|
64
|
-
sizer.add(button, 0, Wx::ADJUST_MINSIZE|Wx::ALL, 2 )
|
65
|
-
evt_button(button.get_id) { | e | on_click(e) }
|
66
|
-
|
67
|
-
@log = LogTextCtrl.new(panel)
|
68
|
-
sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
|
69
|
-
|
70
|
-
panel.set_sizer( sizer )
|
71
|
-
end
|
72
|
-
|
73
|
-
def populate_textctrl()
|
74
|
-
@textctrl << "This is some plain text\n"
|
75
|
-
@textctrl << "Text with green letters and yellow background\n"
|
76
|
-
@textctrl << "This is some more plain text"
|
77
|
-
# create a new rich text style
|
78
|
-
attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
|
79
|
-
# apply the style from character 26 to character 76
|
80
|
-
@textctrl.set_style(24, 69, attr)
|
81
|
-
end
|
82
|
-
|
83
|
-
def construct_menus()
|
84
|
-
menu_bar = Wx::MenuBar.new()
|
85
|
-
|
86
|
-
menu_file = Wx::Menu.new()
|
87
|
-
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
88
|
-
menu_bar.append(menu_file, "&File")
|
89
|
-
evt_menu(Wx::ID_EXIT) { on_quit() }
|
90
|
-
|
91
|
-
menu_help = Wx::Menu.new()
|
92
|
-
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
93
|
-
evt_menu(Wx::ID_ABOUT) { on_about() }
|
94
|
-
menu_bar.append(menu_help, "&Help")
|
95
|
-
|
96
|
-
set_menu_bar(menu_bar)
|
97
|
-
end
|
98
|
-
|
99
|
-
def on_click(e)
|
100
|
-
@log.set_value( @textctrl.report() )
|
101
|
-
end
|
102
|
-
|
103
|
-
def on_quit()
|
104
|
-
close(TRUE)
|
105
|
-
end
|
106
|
-
|
107
|
-
def on_about()
|
108
|
-
msg = sprintf("This is the About dialog of the textctrl sample.\n" \
|
109
|
-
"Welcome to %s", Wx::VERSION_STRING)
|
110
|
-
message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
class RbApp < Wx::App
|
115
|
-
def on_init()
|
116
|
-
frame = TextCtrlFrame.new("TextCtrl demonstration",
|
117
|
-
Wx::Point.new(50, 50),
|
118
|
-
Wx::Size.new(450, 340) )
|
119
|
-
|
120
|
-
frame.show(true)
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
RbApp.new().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 InformativeTextCtrl < Wx::TextCtrl
|
17
|
+
NEWLINE_CORRECTION_FACTOR = 0
|
18
|
+
|
19
|
+
# These text controls are multiline, and may have rich (coloured,
|
20
|
+
# styled) text in them
|
21
|
+
STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
|
22
|
+
def initialize(parent, text)
|
23
|
+
super(parent, -1, text, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
|
24
|
+
end
|
25
|
+
|
26
|
+
# more ruby-ish
|
27
|
+
alias :<< :append_text
|
28
|
+
|
29
|
+
# run through a few useful methods of textctrl and report the results
|
30
|
+
# as a string
|
31
|
+
def report()
|
32
|
+
report = ''
|
33
|
+
report << 'Insertion Point: ' << get_insertion_point.to_s() << "\n"
|
34
|
+
report << 'First Line Text: ' << get_line_text(0) << "\n"
|
35
|
+
report << 'Final Position: ' << get_last_position().to_s() << "\n"
|
36
|
+
report << 'Selection: ' << get_selection().inspect() << "\n"
|
37
|
+
report << 'String Selection: ' << get_string_selection().inspect << "\n"
|
38
|
+
report << 'Position to X, Y: ' <<
|
39
|
+
position_to_xy( get_insertion_point ).inspect
|
40
|
+
return report
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# A read-only text ctrl useful for displaying output
|
45
|
+
class LogTextCtrl < Wx::TextCtrl
|
46
|
+
STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
|
47
|
+
def initialize(parent)
|
48
|
+
super(parent, -1, '', Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class TextCtrlFrame < Wx::Frame
|
53
|
+
def initialize(title, pos, size)
|
54
|
+
super(nil, -1, title, pos, size)
|
55
|
+
|
56
|
+
panel = Wx::Panel.new(self, -1)
|
57
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
58
|
+
|
59
|
+
@textctrl = InformativeTextCtrl.new(panel, '')
|
60
|
+
populate_textctrl()
|
61
|
+
sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
|
62
|
+
|
63
|
+
button = Wx::Button.new(panel, -1, 'Get Info')
|
64
|
+
sizer.add(button, 0, Wx::ADJUST_MINSIZE|Wx::ALL, 2 )
|
65
|
+
evt_button(button.get_id) { | e | on_click(e) }
|
66
|
+
|
67
|
+
@log = LogTextCtrl.new(panel)
|
68
|
+
sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
|
69
|
+
|
70
|
+
panel.set_sizer( sizer )
|
71
|
+
end
|
72
|
+
|
73
|
+
def populate_textctrl()
|
74
|
+
@textctrl << "This is some plain text\n"
|
75
|
+
@textctrl << "Text with green letters and yellow background\n"
|
76
|
+
@textctrl << "This is some more plain text"
|
77
|
+
# create a new rich text style
|
78
|
+
attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
|
79
|
+
# apply the style from character 26 to character 76
|
80
|
+
@textctrl.set_style(24, 69, attr)
|
81
|
+
end
|
82
|
+
|
83
|
+
def construct_menus()
|
84
|
+
menu_bar = Wx::MenuBar.new()
|
85
|
+
|
86
|
+
menu_file = Wx::Menu.new()
|
87
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
88
|
+
menu_bar.append(menu_file, "&File")
|
89
|
+
evt_menu(Wx::ID_EXIT) { on_quit() }
|
90
|
+
|
91
|
+
menu_help = Wx::Menu.new()
|
92
|
+
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
93
|
+
evt_menu(Wx::ID_ABOUT) { on_about() }
|
94
|
+
menu_bar.append(menu_help, "&Help")
|
95
|
+
|
96
|
+
set_menu_bar(menu_bar)
|
97
|
+
end
|
98
|
+
|
99
|
+
def on_click(e)
|
100
|
+
@log.set_value( @textctrl.report() )
|
101
|
+
end
|
102
|
+
|
103
|
+
def on_quit()
|
104
|
+
close(TRUE)
|
105
|
+
end
|
106
|
+
|
107
|
+
def on_about()
|
108
|
+
msg = sprintf("This is the About dialog of the textctrl sample.\n" \
|
109
|
+
"Welcome to %s", Wx::VERSION_STRING)
|
110
|
+
message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
class RbApp < Wx::App
|
115
|
+
def on_init()
|
116
|
+
frame = TextCtrlFrame.new("TextCtrl demonstration",
|
117
|
+
Wx::Point.new(50, 50),
|
118
|
+
Wx::Size.new(450, 340) )
|
119
|
+
|
120
|
+
frame.show(true)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
RbApp.new().main_loop()
|