wxruby 1.9.0-powerpc-darwin8.10.0
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,7 @@
|
|
1
|
+
Welcome to the WxRuby Tutorial! Click on all the different demos to learn how to use each kind of widget.
|
2
|
+
This demo was ported from wxPython. Thanks to Robin Dunn for his hard work and generosity!
|
3
|
+
Check out the WxRuby wiki at http://wxruby.rubyforge.org!
|
4
|
+
Don't forget to check out the samples that come with WxRuby - many contain more advanced examples of WxRuby than you'll find here.
|
5
|
+
Thanks to Kevin Smith for all his hard work - he made this Demo possible!
|
6
|
+
Thanks to Curt Hibbs for all his hard work - his WxRuby installer for Windows saved my life!
|
7
|
+
Thanks to Robert Carlin for porting this demo (I know, it's a shameless plug :-)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This module contains various utilities to simplify the implementation of the WxRuby Demo
|
2
|
+
|
3
|
+
module WxDemoUtilities
|
4
|
+
|
5
|
+
#Convert paths to the platform-specific separator
|
6
|
+
|
7
|
+
def opj(path)
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
#----------------------------------------------------------
|
12
|
+
end
|
@@ -0,0 +1,285 @@
|
|
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
|
+
ArtClients = [ "Wx::ART_TOOLBAR",
|
17
|
+
"Wx::ART_MENU",
|
18
|
+
"Wx::ART_FRAME_ICON",
|
19
|
+
"Wx::ART_CMN_DIALOG",
|
20
|
+
"Wx::ART_HELP_BROWSER",
|
21
|
+
"Wx::ART_MESSAGE_BOX",
|
22
|
+
"Wx::ART_OTHER",
|
23
|
+
]
|
24
|
+
|
25
|
+
ArtIDs = [ "Wx::ART_ADD_BOOKMARK",
|
26
|
+
"Wx::ART_DEL_BOOKMARK",
|
27
|
+
"Wx::ART_HELP_SIDE_PANEL",
|
28
|
+
"Wx::ART_HELP_SETTINGS",
|
29
|
+
"Wx::ART_HELP_BOOK",
|
30
|
+
"Wx::ART_HELP_FOLDER",
|
31
|
+
"Wx::ART_HELP_PAGE",
|
32
|
+
"Wx::ART_GO_BACK",
|
33
|
+
"Wx::ART_GO_FORWARD",
|
34
|
+
"Wx::ART_GO_UP",
|
35
|
+
"Wx::ART_GO_DOWN",
|
36
|
+
"Wx::ART_GO_TO_PARENT",
|
37
|
+
"Wx::ART_GO_HOME",
|
38
|
+
"Wx::ART_FILE_OPEN",
|
39
|
+
"Wx::ART_FILE_SAVE",
|
40
|
+
"Wx::ART_FILE_SAVE_AS",
|
41
|
+
"Wx::ART_PRINT",
|
42
|
+
"Wx::ART_HELP",
|
43
|
+
"Wx::ART_TIP",
|
44
|
+
"Wx::ART_REPORT_VIEW",
|
45
|
+
"Wx::ART_LIST_VIEW",
|
46
|
+
"Wx::ART_NEW_DIR",
|
47
|
+
"Wx::ART_HARDDISK",
|
48
|
+
"Wx::ART_FLOPPY",
|
49
|
+
"Wx::ART_CDROM",
|
50
|
+
"Wx::ART_REMOVABLE",
|
51
|
+
"Wx::ART_FOLDER",
|
52
|
+
"Wx::ART_FOLDER_OPEN",
|
53
|
+
"Wx::ART_GO_DIR_UP",
|
54
|
+
"Wx::ART_EXECUTABLE_FILE",
|
55
|
+
"Wx::ART_NORMAL_FILE",
|
56
|
+
"Wx::ART_TICK_MARK",
|
57
|
+
"Wx::ART_CROSS_MARK",
|
58
|
+
"Wx::ART_ERROR",
|
59
|
+
"Wx::ART_QUESTION",
|
60
|
+
"Wx::ART_WARNING",
|
61
|
+
"Wx::ART_INFORMATION",
|
62
|
+
"Wx::ART_MISSING_IMAGE",
|
63
|
+
"Wx::ART_COPY",
|
64
|
+
"Wx::ART_CUT",
|
65
|
+
"Wx::ART_PASTE",
|
66
|
+
"Wx::ART_DELETE",
|
67
|
+
"Wx::ART_NEW",
|
68
|
+
"Wx::ART_UNDO",
|
69
|
+
"Wx::ART_REDO",
|
70
|
+
"Wx::ART_QUIT",
|
71
|
+
"Wx::ART_FIND",
|
72
|
+
"Wx::ART_FIND_AND_REPLACE",
|
73
|
+
]
|
74
|
+
|
75
|
+
class MyArtProvider < Wx::ArtProvider
|
76
|
+
def initialize(log)
|
77
|
+
super()
|
78
|
+
@log = log
|
79
|
+
end
|
80
|
+
|
81
|
+
# Custom art providers must supply this method
|
82
|
+
|
83
|
+
def create_bitmap(artid, client, size)
|
84
|
+
# You can do anything here you want, such as using the same
|
85
|
+
# image for any size, any client, etc., or using specific
|
86
|
+
# images for specific sizes, whatever...
|
87
|
+
|
88
|
+
bmp = nil
|
89
|
+
# use this one for all 48x48 images
|
90
|
+
case size.get_width
|
91
|
+
when 48
|
92
|
+
bmp = make_bitmap("wxwin48x48.png")
|
93
|
+
when 32
|
94
|
+
bmp = make_bitmap("wxwin32x32.png")
|
95
|
+
when 16
|
96
|
+
# be more specific for these
|
97
|
+
if artid == Wx::ART_ADD_BOOKMARK
|
98
|
+
bmp = make_bitmap("smiles.bmp")
|
99
|
+
else
|
100
|
+
bmp = make_bitmap("wxwin16x16.png")
|
101
|
+
end
|
102
|
+
end
|
103
|
+
if bmp
|
104
|
+
@log.write_text("MyArtProvider: providing #{artid}:#{client} at #{size.x}x#{size.y}")
|
105
|
+
end
|
106
|
+
bmp
|
107
|
+
end
|
108
|
+
|
109
|
+
def make_bitmap(f)
|
110
|
+
f_path = File.join(File.dirname(__FILE__), 'icons', f)
|
111
|
+
Wx::Bitmap.new(Wx::Image.new(f_path))
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class TestPanel < Wx::Panel
|
116
|
+
def initialize(parent, log)
|
117
|
+
super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
|
118
|
+
@log = log
|
119
|
+
|
120
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
121
|
+
|
122
|
+
title = Wx::StaticText.new(self, -1, "ArtProvider")
|
123
|
+
title.set_font(Wx::Font.new(18, Wx::SWISS, Wx::NORMAL, Wx::BOLD))
|
124
|
+
sizer.add(title, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
125
|
+
|
126
|
+
line = Wx::StaticLine.new(self, -1, Wx::DEFAULT_POSITION, Wx::Size.new(20,-1), Wx::LI_HORIZONTAL)
|
127
|
+
sizer.add(line, 0, Wx::GROW|Wx::ALIGN_CENTER_VERTICAL|Wx::ALL, 5)
|
128
|
+
|
129
|
+
fgs = Wx::FlexGridSizer.new(0, 3, 10, 10)
|
130
|
+
|
131
|
+
combo = Wx::ComboBox.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
132
|
+
ArtClients, Wx::CB_DROPDOWN|Wx::CB_READONLY)
|
133
|
+
fgs.add(combo, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
134
|
+
evt_combobox(combo.get_id) { |event| on_select_client(event) }
|
135
|
+
combo.set_selection(0)
|
136
|
+
|
137
|
+
combo = Wx::ComboBox.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
138
|
+
ArtIDs, Wx::CB_DROPDOWN|Wx::CB_READONLY)
|
139
|
+
fgs.add(combo, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
140
|
+
evt_combobox(combo.get_id) { |event| on_select_id(event) }
|
141
|
+
combo.set_selection(0)
|
142
|
+
|
143
|
+
# Custom provider not currently working
|
144
|
+
cb = Wx::CheckBox.new(self, -1, "Use custom provider")
|
145
|
+
fgs.add(cb, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
146
|
+
evt_checkbox(cb.get_id) { |event| on_use_custom(event) }
|
147
|
+
# One extra spacer to account for missing checkbox
|
148
|
+
# fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
149
|
+
|
150
|
+
fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
151
|
+
fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
152
|
+
fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
153
|
+
|
154
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
155
|
+
bmp = Wx::Bitmap.new(16,16)
|
156
|
+
@bmp16 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
|
157
|
+
box.add(@bmp16, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
158
|
+
text = Wx::StaticText.new(self, -1, "16x16")
|
159
|
+
box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
160
|
+
|
161
|
+
fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
162
|
+
|
163
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
164
|
+
bmp = Wx::Bitmap.new(32,32)
|
165
|
+
@bmp32 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
|
166
|
+
box.add(@bmp32, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
167
|
+
text = Wx::StaticText.new(self, -1, "32x32")
|
168
|
+
box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
169
|
+
|
170
|
+
fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
171
|
+
|
172
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
173
|
+
bmp = Wx::Bitmap.new(48,48)
|
174
|
+
@bmp48 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
|
175
|
+
box.add(@bmp48, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
176
|
+
text = Wx::StaticText.new(self, -1, "48x48")
|
177
|
+
box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
178
|
+
|
179
|
+
fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
180
|
+
sizer.add(fgs, 0, Wx::ALL, 5)
|
181
|
+
set_sizer(sizer)
|
182
|
+
|
183
|
+
@client = eval(ArtClients[0])
|
184
|
+
@artid = eval(ArtIDs[0])
|
185
|
+
get_art
|
186
|
+
end
|
187
|
+
|
188
|
+
def on_select_client(evt)
|
189
|
+
@log.write_text("on_select_client")
|
190
|
+
@client = eval(evt.get_string)
|
191
|
+
get_art
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
def on_select_id(evt)
|
196
|
+
@log.write_text("on_select_id")
|
197
|
+
@artid = eval(evt.get_string)
|
198
|
+
get_art
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
def on_use_custom(evt)
|
203
|
+
if evt.is_checked
|
204
|
+
@log.write_text("Images will now be provided by
|
205
|
+
MyArtProvider")
|
206
|
+
Wx::ArtProvider.push( MyArtProvider.new(@log) )
|
207
|
+
|
208
|
+
else
|
209
|
+
@log.write_text("MyArtProvider deactivated\n")
|
210
|
+
Wx::ArtProvider.pop
|
211
|
+
end
|
212
|
+
get_art
|
213
|
+
end
|
214
|
+
|
215
|
+
|
216
|
+
def get_art
|
217
|
+
@log.write_text("Getting art for #{@client}:#{@artid}")
|
218
|
+
|
219
|
+
bmp = Wx::ArtProvider.get_bitmap(@artid, @client, Wx::Size.new(16,16))
|
220
|
+
|
221
|
+
if not bmp.is_ok
|
222
|
+
bmp = Wx::Bitmap.new(16,16)
|
223
|
+
clear_bmp(bmp)
|
224
|
+
end
|
225
|
+
|
226
|
+
@bmp16.set_bitmap(bmp)
|
227
|
+
|
228
|
+
bmp = Wx::ArtProvider::get_bitmap(@artid, @client, Wx::Size.new(32,32))
|
229
|
+
|
230
|
+
if not bmp.is_ok
|
231
|
+
bmp = Wx::Bitmap.new(32,32)
|
232
|
+
clear_bmp(bmp)
|
233
|
+
end
|
234
|
+
|
235
|
+
@bmp32.set_bitmap(bmp)
|
236
|
+
|
237
|
+
bmp = Wx::ArtProvider::get_bitmap(@artid, @client, Wx::Size.new(48,48))
|
238
|
+
|
239
|
+
if not bmp.is_ok
|
240
|
+
bmp = Wx::Bitmap.new(48,48)
|
241
|
+
clear_bmp(bmp)
|
242
|
+
end
|
243
|
+
|
244
|
+
@bmp48.set_bitmap(bmp)
|
245
|
+
end
|
246
|
+
|
247
|
+
|
248
|
+
def clear_bmp(bmp)
|
249
|
+
dc = Wx::MemoryDC.new
|
250
|
+
dc.select_object(bmp)
|
251
|
+
dc.set_background(Wx::WHITE_BRUSH)
|
252
|
+
dc.clear
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
module Demo
|
257
|
+
|
258
|
+
def Demo.run(frame, nb, log)
|
259
|
+
win = TestPanel.new(nb, log)
|
260
|
+
return win
|
261
|
+
end
|
262
|
+
|
263
|
+
def Demo.overview
|
264
|
+
return 'Wx::ArtProvider class can be used to customize the look of wxWindows
|
265
|
+
applications. When wxWindows internal classes need to display an icon
|
266
|
+
or a bitmap (e.g. in the standard file dialog), it does not use a
|
267
|
+
hard-coded resource but asks Wx::ArtProvider for it instead. This way
|
268
|
+
the users can plug in their own Wx::ArtProvider class and easily replace
|
269
|
+
standard art with his/her own version. It is easy thing to do: all
|
270
|
+
that is needed is to derive a class from Wx::ArtProvider, override its
|
271
|
+
CreateBitmap method and register the provider with
|
272
|
+
Wx::ArtProvider.push_provider.
|
273
|
+
|
274
|
+
This class can also be used to get the platform native icons as
|
275
|
+
provided by Wx::ArtProvider.get_bitmap or Wx::ArtProvider.get_icon methods.'
|
276
|
+
|
277
|
+
end
|
278
|
+
|
279
|
+
end
|
280
|
+
|
281
|
+
if __FILE__ == $0
|
282
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
283
|
+
load run_solo_lib
|
284
|
+
run File.basename($0)
|
285
|
+
end
|
@@ -0,0 +1,64 @@
|
|
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
|
+
bmp_file = File.join( File.dirname(__FILE__), 'icons', 'test2.bmp')
|
22
|
+
bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
|
23
|
+
mask = Wx::Mask.new(bmp, Wx::BLUE)
|
24
|
+
|
25
|
+
bmp.set_mask(mask)
|
26
|
+
b = Wx::BitmapButton.new(self, 10, bmp, Wx::Point.new(20,20), Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10))
|
27
|
+
evt_button(10) {|event| on_click(event)}
|
28
|
+
b.set_tool_tip('This is a bitmap button.')
|
29
|
+
|
30
|
+
b = Wx::BitmapButton.new(self, 20, bmp, Wx::Point.new(20,120), Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10), Wx::NO_BORDER)
|
31
|
+
evt_button(20) {|event| on_click(event)}
|
32
|
+
b.set_tool_tip("This is a Bitmap button with\nWx::NO_BORDER style.")
|
33
|
+
|
34
|
+
bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiles.bmp')
|
35
|
+
bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
|
36
|
+
b.set_bitmap_selected(bmp)
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def on_click(event)
|
41
|
+
@log.write_text("Click! %d" % event.get_id())
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
module Demo
|
48
|
+
|
49
|
+
def Demo.run(frame, nb, log)
|
50
|
+
win = TestPanel.new(nb, log)
|
51
|
+
return win
|
52
|
+
end
|
53
|
+
|
54
|
+
def Demo.overview
|
55
|
+
return "A BitmapButton control displays a bitmap. It can have a separate bitmap for each button state: normal, selected, disabled.\n\nThe bitmaps to be displayed should have a small number of colours, such as 16, to avoid palette problems.\n\nA bitmap can be derived from most image formats using the Wx::Image class."
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
if __FILE__ == $0
|
61
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
62
|
+
load run_solo_lib
|
63
|
+
run File.basename($0)
|
64
|
+
end
|
@@ -0,0 +1,66 @@
|
|
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, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
|
17
|
+
@log = log
|
18
|
+
|
19
|
+
b = Wx::Button.new(self, 10, "Hello", Wx::Point.new(20,20))
|
20
|
+
evt_button(10) {|event| on_click(event)}
|
21
|
+
b.set_background_colour(Wx::BLUE)
|
22
|
+
b.set_foreground_colour(Wx::WHITE)
|
23
|
+
b.set_default()
|
24
|
+
|
25
|
+
b = Wx::Button.new(self, 20, "HELLO AGAIN!", Wx::Point.new(20,60), Wx::Size.new(120,45))
|
26
|
+
evt_button(20) {|event| on_click(event)}
|
27
|
+
b.set_tool_tip("This is a Hello button...")
|
28
|
+
|
29
|
+
bmp_file = File.join( File.dirname(__FILE__), 'icons', 'test2.bmp')
|
30
|
+
bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
|
31
|
+
bmp_size = Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10)
|
32
|
+
|
33
|
+
#mask = Wx::MaskColour.new(bmp, Wx::BLUE)
|
34
|
+
#bmp.set_mask(mask)
|
35
|
+
|
36
|
+
Wx::BitmapButton.new(self, 30, bmp,
|
37
|
+
Wx::Point.new(160, 20), bmp_size)
|
38
|
+
evt_button(30) {|event| on_click(event)}
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
def on_click(event)
|
43
|
+
@log.write_text("Click! %d" % event.get_id())
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
module Demo
|
50
|
+
|
51
|
+
def Demo.run(frame, nb, log)
|
52
|
+
win = TestPanel.new(nb, log)
|
53
|
+
return win
|
54
|
+
end
|
55
|
+
|
56
|
+
def Demo.overview
|
57
|
+
return "A button is a control that contains a text string or a bitmap and cab be placed on nearly any kind of window."
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
if __FILE__ == $0
|
63
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
64
|
+
load run_solo_lib
|
65
|
+
run File.basename($0)
|
66
|
+
end
|
@@ -0,0 +1,72 @@
|
|
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
|
+
require 'date'
|
14
|
+
|
15
|
+
class TestPanel < Wx::Panel
|
16
|
+
def initialize(parent, id, log)
|
17
|
+
super(parent, id)
|
18
|
+
@log = log
|
19
|
+
|
20
|
+
date = DateTime.now
|
21
|
+
cal = Wx::CalendarCtrl.new(self, -1, date, Wx::Point.new(25,50), Wx::DEFAULT_SIZE,
|
22
|
+
Wx::CAL_SHOW_HOLIDAYS | Wx::CAL_SUNDAY_FIRST | Wx::CAL_SEQUENTIAL_MONTH_SELECTION)
|
23
|
+
|
24
|
+
evt_calendar(cal.get_id()) {|event| on_cal_selected(event)}
|
25
|
+
|
26
|
+
#b = Wx::Button.new(self, -1, "Destroy the Calendar", Wx::Point.new(250,50))
|
27
|
+
#evt_button(b.get_id()) {|event| on_button(event)}
|
28
|
+
@cal = cal
|
29
|
+
|
30
|
+
# Set up control to display a set of holidays:
|
31
|
+
evt_calendar_month(cal.get_id()) {|event| on_change_month(event)}
|
32
|
+
@holidays = [[1,1], [10,31], [12,25]] #(these don't move around)
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
#def on_button(event)
|
37
|
+
# @cal.destroy()
|
38
|
+
# @cal = nil
|
39
|
+
#end
|
40
|
+
|
41
|
+
def on_cal_selected(event)
|
42
|
+
@log.write_text("on_cal_selected: " + event.get_date().strftime("%F"))
|
43
|
+
end
|
44
|
+
|
45
|
+
# missing get_current_month() method
|
46
|
+
def on_change_month(event)
|
47
|
+
#~ cur_month = @cal.get_date().get_current_month() + 1
|
48
|
+
#~ @holidays.each do |date|
|
49
|
+
#~ if date[0] == cur_month
|
50
|
+
#~ @cal.set_holiday(date[1])
|
51
|
+
#~ end
|
52
|
+
#~ end
|
53
|
+
event.skip()
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module Demo
|
58
|
+
def Demo.run(frame, nb, log)
|
59
|
+
win = TestPanel.new(nb, -1, log)
|
60
|
+
return win
|
61
|
+
end
|
62
|
+
|
63
|
+
def Demo.overview
|
64
|
+
return "The calendar control allows the user to pick a date interactively. For this, it displays a window containing several parts: the control to pick the month and the year at the top (either or both of them may be disabled) and a month area below them which shows all the days in the month. The user can move the current selection using the keyboard and select the date (generating EVT_CALENDAR event) by pressing <Return> or double clicking it."
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
if __FILE__ == $0
|
69
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
70
|
+
load run_solo_lib
|
71
|
+
run File.basename($0)
|
72
|
+
end
|