wxruby-ruby19 1.9.10-x86-mingw32
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 -0
- data/README +297 -0
- data/lib/wx/accessors.rb +58 -0
- data/lib/wx/classes/acceleratortable.rb +28 -0
- data/lib/wx/classes/animation.rb +18 -0
- data/lib/wx/classes/app.rb +51 -0
- data/lib/wx/classes/artprovider.rb +31 -0
- data/lib/wx/classes/auinotebook.rb +9 -0
- data/lib/wx/classes/bitmap.rb +56 -0
- data/lib/wx/classes/busycursor.rb +12 -0
- data/lib/wx/classes/checklistbox.rb +45 -0
- data/lib/wx/classes/choice.rb +4 -0
- data/lib/wx/classes/clientdc.rb +13 -0
- data/lib/wx/classes/clipboard.rb +32 -0
- data/lib/wx/classes/colour.rb +49 -0
- data/lib/wx/classes/combobox.rb +4 -0
- data/lib/wx/classes/commandevent.rb +7 -0
- data/lib/wx/classes/controlwithitems.rb +10 -0
- data/lib/wx/classes/data_object.rb +14 -0
- data/lib/wx/classes/data_object_simple.rb +6 -0
- data/lib/wx/classes/dataformat.rb +23 -0
- data/lib/wx/classes/dc.rb +57 -0
- data/lib/wx/classes/event.rb +5 -0
- data/lib/wx/classes/evthandler.rb +1039 -0
- data/lib/wx/classes/font.rb +118 -0
- data/lib/wx/classes/functions.rb +44 -0
- data/lib/wx/classes/gauge.rb +12 -0
- data/lib/wx/classes/genericdirctrl.rb +36 -0
- data/lib/wx/classes/grid.rb +146 -0
- data/lib/wx/classes/hboxsizer.rb +6 -0
- data/lib/wx/classes/helpcontroller.rb +5 -0
- data/lib/wx/classes/helpcontrollerhelpprovider.rb +23 -0
- data/lib/wx/classes/helpprovider.rb +15 -0
- data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
- data/lib/wx/classes/htmlwindow.rb +14 -0
- data/lib/wx/classes/icon.rb +32 -0
- data/lib/wx/classes/iconbundle.rb +3 -0
- data/lib/wx/classes/image.rb +43 -0
- data/lib/wx/classes/imagelist.rb +3 -0
- data/lib/wx/classes/listbox.rb +4 -0
- data/lib/wx/classes/listctrl.rb +33 -0
- data/lib/wx/classes/locale.rb +28 -0
- data/lib/wx/classes/mediactrl.rb +48 -0
- data/lib/wx/classes/menu.rb +62 -0
- data/lib/wx/classes/menuitem.rb +7 -0
- data/lib/wx/classes/notebook.rb +9 -0
- data/lib/wx/classes/object.rb +14 -0
- data/lib/wx/classes/paintdc.rb +12 -0
- data/lib/wx/classes/point.rb +56 -0
- data/lib/wx/classes/previewframe.rb +13 -0
- data/lib/wx/classes/rect.rb +19 -0
- data/lib/wx/classes/richtextctrl.rb +63 -0
- data/lib/wx/classes/simplehelpprovider.rb +38 -0
- data/lib/wx/classes/size.rb +58 -0
- data/lib/wx/classes/sizer.rb +37 -0
- data/lib/wx/classes/sound.rb +23 -0
- data/lib/wx/classes/standardpaths.rb +9 -0
- data/lib/wx/classes/styledtextctrl.rb +92 -0
- data/lib/wx/classes/textctrl.rb +14 -0
- data/lib/wx/classes/texturlevent.rb +18 -0
- data/lib/wx/classes/timer.rb +94 -0
- data/lib/wx/classes/toolbar.rb +27 -0
- data/lib/wx/classes/toolbartool.rb +4 -0
- data/lib/wx/classes/treectrl.rb +44 -0
- data/lib/wx/classes/vboxsizer.rb +6 -0
- data/lib/wx/classes/window.rb +89 -0
- data/lib/wx/classes/xmlresource.rb +54 -0
- data/lib/wx/helpers.rb +45 -0
- data/lib/wx/keyword_ctors.rb +204 -0
- data/lib/wx/keyword_defs.rb +558 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wx.rb +53 -0
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1356 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +149 -0
- data/samples/bigdemo/ShapedWindow.rbw +131 -0
- data/samples/bigdemo/Sizers.rbw +543 -0
- data/samples/bigdemo/bigdemo.rb +823 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -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 +90 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +65 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +31 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +173 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +71 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +236 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
- data/samples/calendar/calendar.rb +256 -0
- data/samples/caret/caret.rb +282 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1136 -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 +797 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/dragdrop/dragdrop.rb +177 -0
- data/samples/drawing/graphics_drawing.rb +235 -0
- data/samples/drawing/images.rb +37 -0
- data/samples/drawing/paperclip.png +0 -0
- data/samples/etc/activation.rb +102 -0
- data/samples/etc/choice.rb +67 -0
- data/samples/etc/miniframe.rb +79 -0
- data/samples/etc/sash.rb +130 -0
- data/samples/etc/scrollwin.rb +110 -0
- data/samples/etc/system_settings.rb +252 -0
- data/samples/etc/threaded.rb +72 -0
- data/samples/etc/toolbar_sizer_additem.rb +55 -0
- data/samples/etc/wizard.rb +74 -0
- data/samples/event/event.rb +182 -0
- data/samples/event/update_ui_event.rb +70 -0
- data/samples/grid/grid.rb +198 -0
- data/samples/grid/gridtablebase.rb +148 -0
- data/samples/html/html.rb +262 -0
- data/samples/listbook/listbook.rb +174 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +85 -0
- data/samples/media/mediactrl.rb +167 -0
- data/samples/minimal/minimal.rb +77 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +16 -0
- data/samples/opengl/cube.rb +117 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +487 -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/format-text-bold.png +0 -0
- data/samples/text/format-text-italic.png +0 -0
- data/samples/text/format-text-underline.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/rich_textctrl.rb +98 -0
- data/samples/text/scintilla.rb +169 -0
- data/samples/text/textctrl.rb +111 -0
- data/samples/text/unicode.rb +242 -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 +1166 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +76 -0
- metadata +337 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
class Wx::Font
|
2
|
+
# String names of the constants provided by C++
|
3
|
+
# (enum is originally defined inc include/wx/fontenc.h)
|
4
|
+
ENCODING_NAMES = %w[
|
5
|
+
DEFAULT
|
6
|
+
|
7
|
+
ISO-8859-1
|
8
|
+
ISO-8859-2
|
9
|
+
ISO-8859-3
|
10
|
+
ISO-8859-4
|
11
|
+
ISO-8859-5
|
12
|
+
ISO-8859-6
|
13
|
+
ISO-8859-7
|
14
|
+
ISO-8859-8
|
15
|
+
ISO-8859-9
|
16
|
+
ISO-8859-10
|
17
|
+
ISO-8859-11
|
18
|
+
ISO-8859-12
|
19
|
+
ISO-8859-13
|
20
|
+
ISO-8859-14
|
21
|
+
ISO-8859-15
|
22
|
+
ISO-8859-MAX
|
23
|
+
|
24
|
+
KOI8
|
25
|
+
KOI8-U
|
26
|
+
ALTERNATIVE
|
27
|
+
BULGARIAN
|
28
|
+
|
29
|
+
CP437
|
30
|
+
CP850
|
31
|
+
CP852
|
32
|
+
CP855
|
33
|
+
CP866
|
34
|
+
|
35
|
+
CP874
|
36
|
+
CP932
|
37
|
+
CP936
|
38
|
+
CP949
|
39
|
+
CP950
|
40
|
+
CP1250
|
41
|
+
CP1251
|
42
|
+
CP1252
|
43
|
+
CP1253
|
44
|
+
CP1254
|
45
|
+
CP1255
|
46
|
+
CP1256
|
47
|
+
CP1257
|
48
|
+
CP12-MAX
|
49
|
+
|
50
|
+
UTF7
|
51
|
+
UTF8
|
52
|
+
EUC-JP
|
53
|
+
UTF16BE
|
54
|
+
UTF16LE
|
55
|
+
UTF32BE
|
56
|
+
UTF32LE
|
57
|
+
|
58
|
+
MACROMAN
|
59
|
+
MACJAPANESE
|
60
|
+
MACCHINESETRAD
|
61
|
+
MACKOREAN
|
62
|
+
MACARABIC
|
63
|
+
MACHEBREW
|
64
|
+
MACGREEK
|
65
|
+
MACCYRILLIC
|
66
|
+
MACDEVANAGARI
|
67
|
+
MACGURMUKHI
|
68
|
+
MACGUJARATI
|
69
|
+
MACORIYA
|
70
|
+
MACBENGALI
|
71
|
+
MACTAMIL
|
72
|
+
MACTELUGU
|
73
|
+
MACKANNADA
|
74
|
+
MACMALAJALAM
|
75
|
+
MACSINHALESE
|
76
|
+
MACBURMESE
|
77
|
+
MACKHMER
|
78
|
+
MACTHAI
|
79
|
+
MACLAOTIAN
|
80
|
+
MACGEORGIAN
|
81
|
+
MACARMENIAN
|
82
|
+
MACCHINESESIMP
|
83
|
+
MACTIBETAN
|
84
|
+
MACMONGOLIAN
|
85
|
+
MACETHIOPIC
|
86
|
+
MACCENTRALEUR
|
87
|
+
MACVIATNAMESE
|
88
|
+
MACARABICEXT
|
89
|
+
MACSYMBOL
|
90
|
+
MACDINGBATS
|
91
|
+
MACTURKISH
|
92
|
+
MACCROATIAN
|
93
|
+
MACICELANDIC
|
94
|
+
MACROMANIAN
|
95
|
+
MACCELTIC
|
96
|
+
MACGAELIC
|
97
|
+
MACKEYBOARD
|
98
|
+
MAX
|
99
|
+
]
|
100
|
+
|
101
|
+
class << self
|
102
|
+
# Returns the name of the platform's default font encoding
|
103
|
+
def get_default_encoding_name
|
104
|
+
ENCODING_NAMES[ get_default_encoding ]
|
105
|
+
end
|
106
|
+
|
107
|
+
# Sets the default encoding to be +enc+, which may be the string
|
108
|
+
# name of an encoding (eg 'UTF8') or an internal WxWidgets flag
|
109
|
+
# (eg Wx::FONTENCODING_UTF8).
|
110
|
+
def set_default_encoding_name(enc)
|
111
|
+
if flag_int = ENCODING_NAMES.index(enc.upcase)
|
112
|
+
set_default_encoding(flag_int)
|
113
|
+
else
|
114
|
+
raise ArgumentError, "Unknown font encoding name '#{enc}'"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Tweaks to the global module functions
|
2
|
+
|
3
|
+
module Wx
|
4
|
+
class << self
|
5
|
+
# Allow this to be called with keyword parameters, and avoid
|
6
|
+
# segfaults on OS X with bad params
|
7
|
+
wx_about_box = self.instance_method(:about_box)
|
8
|
+
define_method(:about_box) do | info |
|
9
|
+
# If AboutDialogInfo has no version, it segfaults on OS X 10.5
|
10
|
+
no_version = ArgumentError.new("Must supply a version for AboutDialog")
|
11
|
+
case info
|
12
|
+
when Wx::AboutDialogInfo
|
13
|
+
unless info.has_version
|
14
|
+
Kernel.raise no_version
|
15
|
+
end
|
16
|
+
|
17
|
+
ab_info = info
|
18
|
+
when Hash
|
19
|
+
ab_info = Wx::AboutDialogInfo.new
|
20
|
+
ab_info.name = info[:name] || 'wxRuby application'
|
21
|
+
ab_info.version = info[:version] || Kernel.raise(no_version)
|
22
|
+
|
23
|
+
ab_info.description = info[:description] || ''
|
24
|
+
ab_info.copyright = info[:copyright] || ''
|
25
|
+
ab_info.licence = info[:licence] || ''
|
26
|
+
ab_info.developers = info[:developers] || []
|
27
|
+
ab_info.doc_writers = info[:doc_writers] || []
|
28
|
+
ab_info.artists = info[:artists] || []
|
29
|
+
ab_info.translators = info[:translators] || []
|
30
|
+
if info.key?(:website)
|
31
|
+
ab_info.set_website(*info[:website])
|
32
|
+
end
|
33
|
+
if info.key?(:icon)
|
34
|
+
ab_info.icon = info[:icon]
|
35
|
+
end
|
36
|
+
|
37
|
+
else
|
38
|
+
Kernel.raise ArgumentError,
|
39
|
+
"Can't use #{info.inspect} for AboutDialogInfo"
|
40
|
+
end
|
41
|
+
wx_about_box.bind(self).call(ab_info)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Gauge : presents a progress bar
|
2
|
+
#
|
3
|
+
# On the C++ side, the actual class name of wxGauge under Windows is
|
4
|
+
# wxGauge95. So when a Gauge is loaded from XRC, and we try to wrap the
|
5
|
+
# object in a ruby class by calling obj->ClassInfo()->ClassName(), it
|
6
|
+
# seeks for a ruby class (Wx::Gauge95) that doesn't exist (see
|
7
|
+
# swig/shared/get_ruby_object.i).
|
8
|
+
#
|
9
|
+
# To fix this, make Wx::Gauge95 an alias.
|
10
|
+
if Wx::PLATFORM == 'WXMSW'
|
11
|
+
Wx::Gauge95 = Wx::Gauge
|
12
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Bottom-up implementation of a Directory lister
|
2
|
+
class Wx::GenericDirCtrl
|
3
|
+
module DirCtrlTree
|
4
|
+
# The TreeCtrl contained in a GenericDirCtrl already has C++ data
|
5
|
+
# associated with the items. If these are returned to Ruby crashes
|
6
|
+
# will result. So this module sets the TreeCtrl to return the path
|
7
|
+
# string.
|
8
|
+
def get_item_data(tree_id)
|
9
|
+
root_id = get_root_item
|
10
|
+
return "" if tree_id == root_id
|
11
|
+
|
12
|
+
path = item_text(tree_id)
|
13
|
+
while tree_id = item_parent(tree_id) and tree_id != root_id
|
14
|
+
path = item_text(tree_id) + "/#{path}"
|
15
|
+
end
|
16
|
+
unless Wx::PLATFORM == 'WXMSW'
|
17
|
+
path = "/" + path
|
18
|
+
end
|
19
|
+
path
|
20
|
+
end
|
21
|
+
|
22
|
+
alias :get_item_path :get_item_data
|
23
|
+
|
24
|
+
# Not allowed
|
25
|
+
def set_item_data(tree_id, data)
|
26
|
+
Kernel.raise "Item data cannot be set for a GenericDirCtrl's Tree"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
wx_get_tree_ctrl = instance_method(:get_tree_ctrl)
|
31
|
+
define_method(:get_tree_ctrl) do
|
32
|
+
tree = wx_get_tree_ctrl.bind(self).call
|
33
|
+
tree.extend(DirCtrlTree)
|
34
|
+
tree
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
# A data-oriented editable table control.
|
2
|
+
class Wx::Grid
|
3
|
+
# The following extensions are all to prevent crashes associated with
|
4
|
+
# garbage collection of Grid-related classes; they do not extend the
|
5
|
+
# public functionality of the class in any way.
|
6
|
+
#
|
7
|
+
# GridTableBase, and the GridCellRenderers and GridCellEditors pose a
|
8
|
+
# problem for ruby's GC, in that Wx makes them owned by the grid once
|
9
|
+
# they have been set for a cell or group of cells. However, because
|
10
|
+
# they are SWIG directors we cannot allow the ruby object they are
|
11
|
+
# originally associated with to be swept by GC, as C++ method calls
|
12
|
+
# are routed to ruby method calls.
|
13
|
+
#
|
14
|
+
# The code below stores Ruby redefines all methods that may
|
15
|
+
# potentially set a GridTableBase, Editor or Renderer, and stores a
|
16
|
+
# reference to them in an instance variable, so they are not disposed
|
17
|
+
# of up when GC sweeps.
|
18
|
+
|
19
|
+
# These all need to be set up as private methods which default to an
|
20
|
+
# array. This can't be done in initialize b/c that may not be called
|
21
|
+
# when a Grid is loaded from XRC
|
22
|
+
%w| __cell_editors __col_editors __row_editors
|
23
|
+
__cell_renderers __col_renderers __row_renderers |.each do | meth |
|
24
|
+
define_method(meth) do
|
25
|
+
instance_variable_get("@#{meth}") ||
|
26
|
+
instance_variable_set("@#{meth}", [])
|
27
|
+
end
|
28
|
+
private meth
|
29
|
+
end
|
30
|
+
|
31
|
+
# Set a grid table base to provide data
|
32
|
+
alias :__set_table :set_table
|
33
|
+
def set_table(table, sel_mode = Wx::Grid::GridSelectCells)
|
34
|
+
__set_table(table, sel_mode)
|
35
|
+
@__grid_table = table
|
36
|
+
end
|
37
|
+
|
38
|
+
# Store the renderers / editors associated with types, if used
|
39
|
+
alias :__register_data_type :register_data_type
|
40
|
+
def register_data_type(type_name, renderer, editor)
|
41
|
+
__register_data_type(type_name, renderer, editor)
|
42
|
+
@__named_type_info ||= {}
|
43
|
+
@__named_type_info[type_name] = [ renderer, editor ]
|
44
|
+
end
|
45
|
+
|
46
|
+
# store default editor
|
47
|
+
wx_set_default_editor = self.instance_method(:set_default_editor)
|
48
|
+
define_method(:set_default_editor) do | editr |
|
49
|
+
wx_set_default_editor.bind(self).call(editr)
|
50
|
+
@__default_editor = editr
|
51
|
+
end
|
52
|
+
|
53
|
+
# store default renderer
|
54
|
+
wx_set_default_renderer = self.instance_method(:set_default_renderer)
|
55
|
+
define_method(:set_default_renderer) do | rendr |
|
56
|
+
wx_set_default_renderer.bind(self).call(rendr)
|
57
|
+
@__default_renderer = rendr
|
58
|
+
end
|
59
|
+
|
60
|
+
# store cell editors
|
61
|
+
wx_set_cell_editor = self.instance_method(:set_cell_editor)
|
62
|
+
define_method(:set_cell_editor) do | row, col, editr |
|
63
|
+
wx_set_cell_editor.bind(self).call(row, col, editr)
|
64
|
+
__cell_editors[row] ||= []
|
65
|
+
__cell_editors[row][col] = editr
|
66
|
+
end
|
67
|
+
|
68
|
+
# store cell renderer
|
69
|
+
wx_set_cell_renderer = self.instance_method(:set_cell_renderer)
|
70
|
+
define_method(:set_cell_renderer) do | row, col, rendr |
|
71
|
+
wx_set_cell_renderer.bind(self).call(row, col, rendr)
|
72
|
+
__cell_renderers[row] ||= []
|
73
|
+
__cell_renderers[row][col] = rendr
|
74
|
+
end
|
75
|
+
|
76
|
+
# Store an editor and/or renderer for a whole column
|
77
|
+
wx_set_col_attr = self.instance_method(:set_col_attr)
|
78
|
+
define_method(:set_col_attr) do | col, attr |
|
79
|
+
wx_set_col_attr.bind(self).call(col, attr)
|
80
|
+
if attr.has_editor
|
81
|
+
__col_editors[col] = attr.get_editor(self, 0, col)
|
82
|
+
end
|
83
|
+
if attr.has_renderer
|
84
|
+
__col_renderers[col] = attr.get_renderer(self, 0, col)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# Store an editor and/or renderer for a whole row
|
89
|
+
wx_set_row_attr = self.instance_method(:set_row_attr)
|
90
|
+
define_method(:set_row_attr) do | row, attr |
|
91
|
+
wx_set_row_attr.bind(self).call(row, attr)
|
92
|
+
if attr.has_editor
|
93
|
+
__row_editors[row] = attr.get_editor(self, row, 0)
|
94
|
+
end
|
95
|
+
if attr.has_renderer
|
96
|
+
__row_renderers[row] = attr.get_renderer(self, row, 0)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
# This and the following methods do a bit of book-keeping - as rows
|
101
|
+
# and columns are deleted and inserted, the position of the columns
|
102
|
+
# and rows with stored editors and renderers may move.
|
103
|
+
alias :__insert_rows :insert_rows
|
104
|
+
def insert_rows(pos = 0, num = 1, update_labels = true)
|
105
|
+
__insert_rows(pos, num, update_labels)
|
106
|
+
num.times { __row_editors.insert(pos, nil) }
|
107
|
+
num.times { __row_renderers.insert(pos, nil) }
|
108
|
+
num.times { __cell_editors.insert(pos, []) }
|
109
|
+
num.times { __cell_renderers.insert(pos, []) }
|
110
|
+
end
|
111
|
+
|
112
|
+
alias :__insert_cols :insert_cols
|
113
|
+
def insert_cols(pos = 0, num = 1, update_labels = true)
|
114
|
+
__insert_cols(pos, num, update_labels)
|
115
|
+
num.times { __col_editors.insert(pos, nil) }
|
116
|
+
num.times { __col_renderers.insert(pos, nil) }
|
117
|
+
num.times do
|
118
|
+
__cell_editors.map { | col | col.insert(pos, []) if col }
|
119
|
+
end
|
120
|
+
num.times do
|
121
|
+
__cell_renderers.map { | col | col.insert(pos, []) if col }
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
alias :__delete_rows :delete_rows
|
126
|
+
def delete_rows(pos = 0, num = 1, update_labels = true)
|
127
|
+
__delete_rows(pos, num, update_labels)
|
128
|
+
__row_editors.slice!(pos, num)
|
129
|
+
__row_renderers.slice!(pos, num)
|
130
|
+
__cell_editors.slice!(pos, num)
|
131
|
+
__cell_renderers.slice!(pos, num)
|
132
|
+
end
|
133
|
+
|
134
|
+
alias :__delete_cols :delete_cols
|
135
|
+
def delete_cols(pos = 0, num = 1, update_labels = true)
|
136
|
+
__delete_cols(pos, num, update_labels)
|
137
|
+
__col_editors.slice!(pos, num)
|
138
|
+
__col_renderers.slice!(pos, num)
|
139
|
+
num.times do
|
140
|
+
__cell_editors.map { | col | col.slice!(pos, num) if col }
|
141
|
+
end
|
142
|
+
num.times do
|
143
|
+
__cell_renderers.map { | col | col.slice!(pos, num) if col }
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Pure-ruby implementation of the corresponding Wx class. Shows a
|
2
|
+
# relevant section of help, if available, or a native popup
|
3
|
+
require 'wx/classes/simplehelpprovider'
|
4
|
+
class Wx::HelpControllerHelpProvider < Wx::SimpleHelpProvider
|
5
|
+
def initialize(help_controller)
|
6
|
+
super()
|
7
|
+
@hc = help_controller
|
8
|
+
end
|
9
|
+
|
10
|
+
# Show help for +win+; if the help text for +win+ is a string with a
|
11
|
+
# single integer only, treats that as a section id for help and shows
|
12
|
+
# that, otherwise shows a popup (native-style on Windows) of the text.
|
13
|
+
def show_help(win)
|
14
|
+
help_text = get_help(win)
|
15
|
+
return false if help_text.empty?
|
16
|
+
if help_text =~ /\A\d+\z/
|
17
|
+
@hc.display_context_popup(help_text.to_i)
|
18
|
+
else
|
19
|
+
@hc.display_text_popup(help_text, Wx::get_mouse_position)
|
20
|
+
end
|
21
|
+
true
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Base class for providing context-sensitive help. The main definition
|
2
|
+
# is in SWIG/C++
|
3
|
+
class Wx::HelpProvider
|
4
|
+
class << self
|
5
|
+
# We need to protect the currently set HelpProvider from GC as it is a
|
6
|
+
# SWIG Director; it can't be reaped and re-wrapped later. The
|
7
|
+
# easiest way is to make the currently set one an instance variable
|
8
|
+
# of this class
|
9
|
+
alias :__wx_set :set
|
10
|
+
define_method(:set) do | help_provider |
|
11
|
+
__wx_set(help_provider)
|
12
|
+
@__hp__ = help_provider
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Wx::HtmlWindow
|
2
|
+
# imitate the in-built LoadFile method
|
3
|
+
def load_file(file)
|
4
|
+
set_page( File.read(file) )
|
5
|
+
end
|
6
|
+
|
7
|
+
# This is called from within wxWidgets whenever a URL is being
|
8
|
+
# opened. The method may return true, to signal that the opening
|
9
|
+
# should be permitted, false or nil to signal that it should be
|
10
|
+
# blocked, or a string URL to which it should be redirected
|
11
|
+
def on_opening_url(url)
|
12
|
+
true
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Specific type of platform-dependent image used for frames on Windows and
|
2
|
+
# Linux. Normally Bitmap is used
|
3
|
+
class Wx::Icon
|
4
|
+
# Load the type-guessing hash from Wx::Bitmap
|
5
|
+
require 'wx/classes/bitmap'
|
6
|
+
BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
|
7
|
+
|
8
|
+
# Analogous to Image.from_bitmap
|
9
|
+
def self.from_bitmap(bmp)
|
10
|
+
ico = new
|
11
|
+
ico.copy_from_bitmap(bmp)
|
12
|
+
ico
|
13
|
+
end
|
14
|
+
|
15
|
+
# Redefine the initialize method so it raises an exception if a
|
16
|
+
# non-existent file is given to the constructor; otherwise, wx Widgets
|
17
|
+
# just carries on with an empty icon, which may cause faults
|
18
|
+
# later. Also guess icon type from filename, if not specified.
|
19
|
+
wx_init = self.instance_method(:initialize)
|
20
|
+
define_method(:initialize) do | *args |
|
21
|
+
if args[0].kind_of? String
|
22
|
+
if not File.exist?( File.expand_path(args[0]) )
|
23
|
+
Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
|
24
|
+
end
|
25
|
+
# If type not specified, try to guess it from the file extension
|
26
|
+
if not args[1] and ( file_ext = args[0][/\w+$/] )
|
27
|
+
args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
wx_init.bind(self).call(*args)
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# A platform-independent image; can be manipulated more extensively than
|
2
|
+
# Bitmap, but must be converted to a Bitmap for drawing.
|
3
|
+
class Wx::Image
|
4
|
+
# Load the type-guessing hash from Wx::Bitmap
|
5
|
+
require 'wx/classes/bitmap'
|
6
|
+
BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
|
7
|
+
|
8
|
+
# Load a new image from an IO-like object that supports "read"
|
9
|
+
def self.read(an_io, type_or_mime, index = -1)
|
10
|
+
img = new
|
11
|
+
img.load_stream(an_io, type_or_mime, index)
|
12
|
+
img
|
13
|
+
end
|
14
|
+
|
15
|
+
# Create a new image from Wx::Bitmap, preserving mask information
|
16
|
+
def self.from_bitmap(bmp)
|
17
|
+
bmp.convert_to_image
|
18
|
+
end
|
19
|
+
|
20
|
+
# Redefine the initialize method so it raises an exception if a
|
21
|
+
# non-existent file is given to the constructor; otherwise, wx Widgets
|
22
|
+
# just carries on with an invalid image, which may cause faults
|
23
|
+
# later. Also, if loading from a file, and the type is not specified,
|
24
|
+
# try to guess it from the filename extension
|
25
|
+
wx_init = self.instance_method(:initialize)
|
26
|
+
define_method(:initialize) do | *args |
|
27
|
+
if args[0].kind_of? String
|
28
|
+
if not File.exist?( File.expand_path(args[0]) )
|
29
|
+
Kernel.raise(ArgumentError, "Image file does not exist: #{args[0]}")
|
30
|
+
end
|
31
|
+
# If type not specified, try to guess it from the file extension
|
32
|
+
if not args[1] and file_ext = args[0][/\w+$/]
|
33
|
+
args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
wx_init.bind(self).call(*args)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Convert to bitmap
|
40
|
+
def convert_to_bitmap
|
41
|
+
Wx::Bitmap.from_image(self)
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Multi-item control with numerous possible view styles
|
2
|
+
class Wx::ListCtrl
|
3
|
+
# Make these ruby enumerables so find, find_all, map are available
|
4
|
+
include Enumerable
|
5
|
+
# Passes each valid item index into the passed block
|
6
|
+
def each
|
7
|
+
0.upto(item_count - 1) { | i | yield i }
|
8
|
+
end
|
9
|
+
|
10
|
+
# Returns an Array containing the indexes of the currently selected
|
11
|
+
# items
|
12
|
+
def get_selections
|
13
|
+
selections = []
|
14
|
+
item = get_next_item(-1, Wx::LIST_NEXT_BELOW, Wx::LIST_STATE_SELECTED)
|
15
|
+
while item >= 0
|
16
|
+
selections << item
|
17
|
+
item = get_next_item(item, Wx::LIST_NEXT_BELOW, Wx::LIST_STATE_SELECTED)
|
18
|
+
end
|
19
|
+
selections
|
20
|
+
end
|
21
|
+
|
22
|
+
# Stub version for LC_VIRTUAL controls that does nothing; may be
|
23
|
+
# overridden in subclasses.
|
24
|
+
def on_get_item_attr(i)
|
25
|
+
nil
|
26
|
+
end
|
27
|
+
|
28
|
+
# Stub version for LC_VIRTUAL|LC_REPORT controls that does nothing;
|
29
|
+
# may be overridden in subclasses.
|
30
|
+
def on_get_item_column_image(i, col)
|
31
|
+
-1
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Wx::Locale
|
2
|
+
class << self
|
3
|
+
def get_system_language_name
|
4
|
+
get_language_name( get_system_language )
|
5
|
+
end
|
6
|
+
|
7
|
+
def get_system_encoding_name
|
8
|
+
Wx::Font::ENCODING_NAMES[ get_system_encoding ]
|
9
|
+
end
|
10
|
+
|
11
|
+
# Set the current locale by a name, canonical name, or Wx::LANGUAGE_
|
12
|
+
# constant; mainly here because it seems a bit strange in Ruby to
|
13
|
+
# have global side-effects in a constructor
|
14
|
+
def set_locale(locale)
|
15
|
+
if locale.kind_of?(Fixnum)
|
16
|
+
new(locale)
|
17
|
+
elsif locale.kind_of?(String) and lang_info = find_language_info(locale)
|
18
|
+
new(lang_info.language)
|
19
|
+
else
|
20
|
+
raise ArgumentError, "Unknown language #{locale}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_language_name
|
26
|
+
self.class.get_language_name(get_language)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Functionality here must be loaded first to add custom events
|
2
|
+
require 'wx/classes/evthandler'
|
3
|
+
|
4
|
+
# These event handlers should only be defined if MediaCtrl is actually
|
5
|
+
# available; some builds may not include it
|
6
|
+
if defined?(Wx::MediaCtrl)
|
7
|
+
evt_type = Wx::EvtHandler::EventType
|
8
|
+
mediactrl_event_types = [
|
9
|
+
evt_type['evt_media_finished', 1,
|
10
|
+
Wx::EVT_MEDIA_FINISHED,
|
11
|
+
Wx::MediaEvent],
|
12
|
+
evt_type['evt_media_loaded', 1,
|
13
|
+
Wx::EVT_MEDIA_LOADED,
|
14
|
+
Wx::MediaEvent],
|
15
|
+
evt_type['evt_media_pause', 1,
|
16
|
+
Wx::EVT_MEDIA_PAUSE,
|
17
|
+
Wx::MediaEvent],
|
18
|
+
evt_type['evt_media_play', 1,
|
19
|
+
Wx::EVT_MEDIA_PLAY,
|
20
|
+
Wx::MediaEvent],
|
21
|
+
evt_type['evt_media_statechanged', 1,
|
22
|
+
Wx::EVT_MEDIA_STATECHANGED,
|
23
|
+
Wx::MediaEvent],
|
24
|
+
evt_type['evt_media_stop', 1,
|
25
|
+
Wx::EVT_MEDIA_STOP,
|
26
|
+
Wx::MediaEvent]
|
27
|
+
]
|
28
|
+
mediactrl_event_types.each do | ev_type |
|
29
|
+
Wx::EvtHandler.register_event_type(ev_type)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Extend with a nicer interface to get_state
|
33
|
+
class Wx::MediaCtrl
|
34
|
+
# Returns true if the media is currently paused, else false
|
35
|
+
def is_paused
|
36
|
+
get_state == Wx::MEDIASTATE_PAUSED
|
37
|
+
end
|
38
|
+
# Returns true if the media is currently playing, else false
|
39
|
+
def is_playing
|
40
|
+
get_state == Wx::MEDIASTATE_PLAYING
|
41
|
+
end
|
42
|
+
# Returns true if the media is currently stopped, else false
|
43
|
+
def is_stopped
|
44
|
+
get_state == Wx::MEDIASTATE_STOPPED
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|