wxruby-ruby19 1.9.10-x86-darwin-9 → 2.0.0-x86-darwin-9

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/README CHANGED
@@ -1,297 +1,198 @@
1
- README for wxruby2
1
+ = README for wxRuby version 2.0
2
2
 
3
- Version 1.9.x
3
+ == Introduction
4
4
 
5
- This is wxruby2, the second generation of wxRuby, a library
6
- that allows Ruby programs to use the wxWidgets GUI toolkit.
7
- It is released under a permissive MIT-style license
8
- (see the LICENSE file for details).
5
+ wxRuby is a cross-platform GUI library for Ruby, based on the wxWidgets
6
+ GUI toolkit for C++. It uses native widgets wherever possible, providing
7
+ the correct look, feel and behaviour to GUI applications on Windows, OS
8
+ X and Linux/GTK. wxRuby aims to provide a comprehensive solution to
9
+ developing professional-standard desktop applications in Ruby.
9
10
 
10
- This version is a beta release, in preparation for a stable release of
11
- wxruby version 2.0.
11
+ == Installing wxRuby
12
12
 
13
- ------------------------FAQ---------------------------
13
+ wxRuby is distributed as pre-compiled binaries and source from the
14
+ project's site on Rubyforge: http://wxruby.rubyforge.org/
14
15
 
15
- - What platforms and operating systems are supported in wxRuby2?
16
+ For the majority of users, installation simply requires running 'gem
17
+ install wxruby' on the command line. See INSTALL for further
18
+ information.
16
19
 
17
- Currently the following are fully supported:
20
+ == wxRuby licence
18
21
 
19
- Windows NT/2000/XP/Vista (i686)
20
- OS X 10.4+ (i686 and PowerPc)
21
- Linux (i686 + AMD-64)
22
+ wxRuby is free and open-source. It is distributed under a liberal
23
+ licence which is compatible with both free and commercial development.
24
+ See LICENSE for more details.
22
25
 
23
- It is unlikely that support for old Windows OS's (3.1, 95, 98, ME)
24
- will be added to wxRuby2 in the near future, as these operating
25
- systems have very limited support for Unicode.
26
+ == FAQ
26
27
 
27
- - Why would I choose wxruby over FXRuby, Ruby/GTK, or one of the other
28
- GUI toolkits? Isn't wxruby arriving "too late"?
29
-
30
- There are several great GUI toolkits available for Ruby, but we
31
- like wxruby better because it has a combination of features that no
32
- other toolkit has:
33
-
34
- - Cross-platform (MSWindows, Mac OS X, Linux)
35
- - Native widgets when possible
36
- - Provides a wide selection of widgets
37
- - Simple license that is compatible with proprietary and Free Software
38
- - Mature foundation (wxWidgets has been around for over 10 years)
39
-
40
- The really big feature is native widgets. The only other cross-platform
41
- toolkits that use native widgets are either limited (Tk) or expensive if
42
- you want to develop proprietary software (Qt). We are not saying that
43
- those toolkits are bad! Just that wxruby offers a unique set of
44
- features.
45
-
46
- - Why are native widgets important or helpful?
47
-
48
- For one thing, it means that end-users do not have to adjust to a
49
- "foreign" interface. It also ensures maximum compatibility with
50
- "assistive technology" such as screen readers for blind users.
51
- It also allows apps to respect any themes the user may have chosen
52
- through their operating system. No matter how hard a toolkit may try
53
- to emulate a particular UI, there will always be differences in the
54
- look or behavior.
55
-
56
- - How does wxruby2 relate to wxruby (and the wxruby 0.6.0 release)?
28
+ === What platforms and operating systems are supported in wxRuby2?
57
29
 
58
- wxruby2 is the "next generation" of wxruby. It is being developed
59
- by the same wxruby team, and is intended to replace the older
60
- code base. wxruby2 is built using SWIG, a powerful tool that makes
61
- it much easier to create and maintain wrappers around C/C++ libraries.
62
-
63
- - Why should I use wxruby2 instead of wxruby?
30
+ Currently the following are fully supported:
64
31
 
65
- First, because development on the original wxruby codebase has stopped.
66
- Everyone is working on wxruby2, so it will continue to improve. Beyond
67
- that, wxruby2 has these advantages over wxruby 0.6.0:
68
-
69
- - Available as binary gems for MSWindows, OS X, and Linux (GTK)
70
- - Support for more classes, and more methods within classes
71
- - Unicode support
72
- - Vastly improved support for OS X
73
- - Looks much better under Linux because it uses GTK+2
74
- - Simpler and more permissive license
75
- - Wraps wxWidgets 2.8.7 instead of the older 2.4 series
76
-
77
- - Is wxruby2 ready for "production" use?
78
-
79
- Yes, pretty much. This is a beta release, and there may be some bugs
80
- in some methods, or memory leaks. This release includes all the
81
- classes and features that are proposed for inclusion in wxruby 2.0.
82
-
83
- It is considerably more stable and fully-featured than the old 0.6.0
84
- release, which was never really stable enough for heavy-duty
85
- production use.
86
-
87
- - Does wxruby2 support the Xxx class?
32
+ * Windows NT/2000/XP/Vista (i686, MSVC and MingW)
33
+ * OS X 10.4+ (i686 and PowerPc)
34
+ * Linux (i686 + AMD-64)
88
35
 
89
- See the "Documentation" section of the README file, or check the
90
- wxruby web site: http://wxruby.org
36
+ Support for other platforms is not being actively developed at present,
37
+ but patches are welcome. It is likely to be much simpler to get wxRuby
38
+ working on similar modern systems (eg FreeBSD or Solaris with GTK) than
39
+ on legacy systems (eg Windows 98, Mac OS 9).
40
+
41
+ === Why would I choose wxruby over FXRuby, Ruby/GTK, Shoes etc?
91
42
 
92
- - How are the wxruby 0.6.0 and wxruby2 licenses different?
93
-
94
- wxruby 0.6.0 was released under the wxWindows license, which is a
95
- modified LGPL. It is a good, fair license, allowing use in both Free
96
- Software and proprietary applications. However, it is long and complex,
97
- and is more appropriate for compiled code. wxruby2 is available under a
98
- *very* simple MIT-style license, which allows just about any use with
99
- very few restrictions.
43
+ There are several fine GUI toolkits available for Ruby, but we consider
44
+ that wxRuby offers a combination of features that no other toolkit can match:
100
45
 
101
- - I am getting an error trying to compile wxruby2
102
-
103
- Please double-check the requirements. You may be using the wrong
104
- version of SWIG, wxWidgets, or some other tool. Double-check the
105
- instructions on the wxRuby wiki (http://wxruby.rubyforge.org/)
106
-
107
- If you need help, please ask your question on the wxruby mailing list
108
- (see the link at http://wxruby.org).
109
-
110
- - I am getting an error trying to run any wxruby2 application, such as
111
- the samples that are included in the gem.
112
-
113
- If you are using Linux, be sure you have configured your system to
114
- have RUBYOPT=-rubygems. This can be done in .bashrc or /etc/environment,
115
- depending on your distribution and preferences. [More details to follow].
116
-
117
- - Why aren't the wx network, file, date, database and other non-GUI
118
- classes supported?
119
-
120
- Because Ruby has its own versions of each of them, providing
121
- cross-platform abstractions of these functions with familiar syntax
122
- and methods. We assume you are writing your application in Ruby, so it
123
- makes sense to keep as much code as possible in Ruby. We have only
124
- wrapped the wx classes that are necessary to write GUI code.
125
-
126
- There may be some advantages to porting the Wx network classes into
127
- ruby, if they work better with multi-(native)-threaded code. This is
128
- currently under evaluation.
129
-
130
- - Why has it taken so long for wxruby2 to be released?
131
-
132
- Nobody is getting paid to develop wxruby, so each of the wxruby developers
133
- are limited in the amount of time they can dedicate to the project. We are
134
- always looking for more volunteers to help code, test, document, manage
135
- the bug list, handle publicity, or do other necessary chores.
136
-
137
- Wrapping wx is a big project that requires a wide variety of skills. As of
138
- February 2008, the wxRuby project has over 100,000 lines of code, including
139
- ruby, C++, and SWIG scripts. If we weren't using SWIG it would be far bigger.
140
-
141
-
142
- For more details, see the project home page:
143
- http://wxruby.org/
144
-
145
-
146
- ------------------------USING WXRUBY---------------------------
147
- INSTALLING:
148
-
149
- wxRuby is available as binary gems for MS Windows, Mac OS X, and Linux
150
- with GTK+ 2. Unless you wish to work on wxRuby itself, we strongly
151
- recommend installing the gem rather than building from source.
152
-
153
- REQUIREMENTS TO CREATE AND RUN WXRUBY APPS:
154
-
155
- - Ruby 1.8
156
- - MS Windows NT/2000/XP/Vista, Mac OS X 10.4+, or Linux with GTK+ 2,
157
-
158
- - On Windows, gdiplus.pll and msvcp71.dll. These are available on most
159
- systems, but can be downloaded and installed for free from the
160
- internet
161
- - On Linux, libgstreamer. This can be installed from most package sources
162
-
163
- SAMPLES:
164
-
165
- There is a samples/ directory containing many small sample wxRuby apps
166
- that demonstrate how to use various classes. A few samples do not work
167
- across all platforms at this time.
168
-
169
- The bigdemo sample is fairly comprehensive, but not all of the
170
- sections work on all platforms.
171
-
172
-
173
- WRITING YOUR OWN WXRUBY APP:
174
-
175
- To use wxruby-swig in your app, use:
176
- require 'wx'
177
-
178
- samples/minimal.rb can be used as a template for creating your
179
- own wxruby application.
180
-
181
-
182
- DOCUMENTATION:
183
-
184
- - wxRuby-specific API documentation can be found here:
185
-
186
- http://wxruby.org/doc/
187
-
188
- (Note: This documentation is auto-generated from the C++ wxWidgets API
189
- docs. There are some broken links, some sample code in C++, and some
190
- sections which do not apply to ruby. The documentation is continually
191
- being improved.)
192
-
193
- - The latest version of the documentation can be downloaded from the
194
- wxRuby 'Files' section on Rubyforge.
195
-
196
- http://www.rubyforge.org/frs/?group_id=35
197
-
198
- - Tables summarizing which wx classes are and are not supported can
199
- be found here:
200
-
201
- http://wxruby.org/wiki/wiki.pl?ClassesSupportedByCategory
202
-
203
- - Most wxWidgets and wxPython tutorials and references can also be used, if
204
- you remember that wxRuby uses ruby_style_naming for methods and variables
205
- instead of MixedCase as used by wxWidgets.
206
-
207
-
208
-
209
- API DIFFERENCES FROM WXWIDGETS:
210
- - In many cases, wxRuby follows the lead of wxPython (or in some cases,
211
- wxPerl), adjusting certain method calls when the C++ style doesn't fit
212
- dynamic languages.
213
- - Since initialize is reserved in ruby, use SplitterWindow#init instead.
214
- - Many wx classes have not been wrapped because native ruby classes work
215
- as well or better. These include wxDateTime, wxString, networking
216
- classes, database classes.
217
- - log_message and log_status take a single string parameter,
218
- rather than a format string followed by additional values
219
- to be inserted. Use Ruby's sprintf if required.
220
-
221
- ----------------------COMPILING WXRUBY--------------------------
222
- REQUIREMENTS TO COMPILE/BUILD WXRUBY ITSELF
223
-
224
- - rake
225
- - SWIG, version 1.3.32 or later. Earlier versions will not work correctly.
226
- - wxWidgets 2.8.x SDK. See further information on the wxruby website for
227
- recommended compile-time options for wxWidgets.
228
-
229
-
230
- OBTAINING THE SOURCE:
231
-
232
- Source code is hosted in Subversion at rubyforge.org. See the links on
233
- the wxruby web site (http://wxruby.org). Check out the wxruby2
234
- Subversion module (not the old wxruby module).
235
-
236
-
237
- BUILDING:
238
-
239
- From the top-level directory (typically wxruby2/),
240
- just start the rake build with the command:
241
-
242
- rake
243
-
244
- There is no ./configure step, nor do you need to run ruby extconf.rb.
245
-
246
-
247
- INSTALLING THE LIBRARY:
248
-
249
- You can install the library using:
250
- rake install
251
-
252
- Note that on some systems you may need to be "root" to do this.
253
- To manually install, copy all the files in the lib/ subdirectory
254
- to somewhere on your ruby library path, such as a ruby extensions
255
- directory.
256
-
257
-
258
- PORTING TO OTHER PLATFORMS
259
-
260
- Platform-dependent rakefiles are used to set up compiler-specific
261
- settings. The following platforms are currently fully supported:
262
-
263
- Mac OSX (gcc): rakemacosx.rb
264
- MS Windows (VC++): rakemswin.rb
265
- Linux (GTK2 + gcc): rakelinux.rb
266
-
267
- For other platforms, you may need to edit the appropriate
268
- platform-dependent rake file if your system is not yet supported, or if
269
- it is unusual. These files are found in the rake subdirectory:
270
-
271
- MS Windows BC++: rakebccwin.rb
272
- MS Windows MingGW: rakemingw.rb
273
- MS Windows Cygwin: rakecygwin.rb
274
- NetBSD: rakenetbsd.rb
275
-
276
- When editing a platform-dependent rakefile, you might
277
- merely need to set one or more of the following variables:
278
-
279
- $extra_cppflags
280
- $extra_ldflags
281
- $extra_objs
282
- $extra_libs
283
-
284
-
285
- CREDITS
286
-
287
- Kevin Smith set up the wxruby2 project using SWIG and did much of the
288
- work that still forms the core of the library in its present form. Over
289
- the years dozens of volunteers have contributed invaluable patches and
290
- new functionality. The list is too long to give here, but their
291
- contributions are recorded in the wxruby mailing list archives.
292
-
293
- -----------------------------------------------------------
294
-
295
- LEAD MAINTAINER:
296
- Alex Fenton
297
- alex at pressure dot to
46
+ * Cross-platform (MS Windows, Mac OS X, Linux)
47
+ * Real native widgets wherever possible
48
+ * Provides a comprehensive selection of widgets and other GUI features
49
+ * Useful non-GUI support classes, eg for Images and internationalisation
50
+ * Simple licence that is compatible with proprietary and Free Software
51
+ * Mature and actively developed foundation in wxWidgets
52
+ * Easy to install and redistribute
53
+
54
+ === Why are native widgets important or helpful?
55
+
56
+ The really important feature among the above is, for many people, native
57
+ widgets. Several toolkits are to some degree able to simulate the native
58
+ appearance of widgets, but wxRuby widgets are actually native widgets -
59
+ so they behave and interact exactly according to the desktop's GUI
60
+ conventions.
61
+
62
+ For one thing, this means that end-users do not have to adjust to a
63
+ "foreign" interface. It ensures maximum compatibility with "assistive
64
+ technology" such as screen readers for blind users. It also allows apps
65
+ to respect any themes the user may have chosen through their operating
66
+ system.
67
+
68
+ Desktop conventions go beyond widget appearance, to the labelling and
69
+ positioning of items in standard dialogs and menus. wxRuby offers
70
+ features to help with these too.
71
+
72
+ == Where can I ask a question, or report a bug?
73
+
74
+ The main mailing list for those using wxRuby for GUI development is
75
+ wxruby-users. General questions and queries of all sorts are appropriate
76
+ for this list, and new users are welcome.
77
+
78
+ When asking a question, if something is not working as you expect,
79
+ please provide a *minimal*, *runnable* sample of code that demonstrates
80
+ the problem, and say what you expected to happen, and what actually
81
+ happened. Please also provide basic details of your platform, ruby and
82
+ wxruby version, and make a reasonable effort to find answers in the
83
+ archive and documentation before posting. People on the list are happy
84
+ to help, but it's too much to expect them to guess what you're trying to
85
+ do, or try and debug 1,000 lines of your application.
86
+
87
+ There is a bug-tracker and feature-request system on the rubyforge
88
+ project pages for wxRuby. Using these helps ensure that a bug is
89
+ followed through and resolved. You're strongly encouraged to post to
90
+ these logged-in to rubyforge and not anonymously. You won't receive any
91
+ requests for follow-up information on anonymous items, and so these can
92
+ end up being closed without being resolved if needed information isn't
93
+ supplied.
94
+
95
+ wxruby-development is a secondary mailing list for all those interested
96
+ in the current and future development of wxRuby. The discussion on this
97
+ list tends to deal more with the internals of the library.
98
+
99
+ == How can I learn to use wxRuby?
100
+
101
+ wxRuby is a large API and takes some time to learn. The wxRuby
102
+ distribution comes with numerous samples which illustrate how to use
103
+ many specific parts of the API. A good one to start with is the
104
+ 'minimal' sample, which provides an application skeleton. All the
105
+ bundled samples are expected to work with current wxRuby 2.0, although
106
+ some use a more modern coding style than others.
107
+
108
+ Complete wxRuby API documentation can downloaded separately; this tends
109
+ to focus on how to use specific classes and methods, rather than on how
110
+ to construct an application overall.
111
+
112
+ There are also tutorials on the wiki, as well as on third-party
113
+ websites. These typically provide in-depth view of a particular topic,
114
+ but some may be out-of-date.
115
+
116
+ One of the advantages of wxRuby is the much larger ecosystem of
117
+ wxWidgets and wxPython resources out there. There is a book for
118
+ wxWidgets,"Cross-Platform Programming in wxWidgets", whcih can be freely
119
+ downloaded as a PDF. This provides very comprehensive coverage of the
120
+ wxWidgets API in C++. The code may not be directly useful, but the
121
+ descriptions of how widgets and events and so forth work are almost
122
+ always relevant to wxRuby.
123
+
124
+ When using a search engine to find answers about a wxRuby class, it can
125
+ be worth searching for the same term but with 'wx' prepended. For
126
+ example, if you wanted answers about the "Grid" class, try searching for
127
+ "wxGrid" as this will turn up results relating to wxWidgets and wxPython
128
+ which may be relevant.
129
+
130
+ == What wxWidgets features are supported by wxRuby?
131
+
132
+ wxRuby supports almost all of the wxWidgets 2.8.9 GUI API, around 300
133
+ classes in total. wxWidgets classes that provide general programming
134
+ support features, such as strings, networking, threading and database
135
+ access are not and will never be ported, as it's assumed that in all
136
+ these cases it's preferable to use a Ruby library.
137
+
138
+ If you know of a feature in wxWidgets that you would like to see
139
+ supported in wxRuby
140
+
141
+ == How does wxRuby 2.0 relate to the wxruby 0.6.0 release?
142
+
143
+ wxRuby 0.6.0 was the last in a series of releases developed using a
144
+ different approach in the early days of wxRuby. Work on this series
145
+ stopped in early 2005, in favour of what is now wxRuby 2.0. Several
146
+ years of development have gone into wxRuby since, making it vastly more
147
+ capable and correct than the 0.6.0 release, which is only offered for
148
+ legacy applications.
149
+
150
+ == I am getting an error trying to install or compile wxRuby
151
+
152
+ Please double-check the INSTALL documents, and search the mailing list
153
+ archives. If this doesn't help, please post your question on the wxruby
154
+ mailing list (http://wxruby.rubyforge.org/wiki/wiki.pl?MailingLists)
155
+
156
+ = Credits
157
+
158
+ Kevin Smith established the wxRuby 2.0 project using SWIG in 2005. Since
159
+ then it has benefitted from the input of dozens of volunteers, who have
160
+ contributed code, documentation, testing, bug reports and feature
161
+ requests.
162
+
163
+ The alphabetic list shows (some of) those who've contributed code to
164
+ wxRuby 2.0.
165
+
166
+ Albin Holmgren
167
+ Alex Fenton
168
+ Artur Kuptel
169
+ Cezar Espinola
170
+ Chauk-Mean Proum
171
+ Christophe Bludau
172
+ Curt Hibbs
173
+ Dale Edmons
174
+ Daniel Savarese
175
+ David Whetstone
176
+ Dirk Traulsen
177
+ Hawley Waldman
178
+ Jani Monoses
179
+ Joe Seeley
180
+ Jonathan Maasland
181
+ Kevin Smith
182
+ Mario Steele
183
+ Nic
184
+ Pascal Hurni
185
+ Robert Carlin
186
+ Roy Sutton
187
+ Ryuichi Sakamoto
188
+ Sean Lindsay
189
+ Sean Long
190
+ Tobias Gruetzmacher
191
+ Zach Dennis
192
+
193
+ If your name is missing and should be here, please get in touch
194
+ with the current development team.
195
+
196
+ == Lead Maintainer
197
+
198
+ Alex Fenton: alex at pressure dot to
data/lib/wx/accessors.rb CHANGED
@@ -5,16 +5,21 @@
5
5
  # * get_position()
6
6
  # * set_size(a_size)
7
7
  # * is_checked()
8
+ # * can_undo()
9
+ # * has_style(a_style)
8
10
  #
9
11
  # and so on. Methods that retrieve set, or query attributes of an object
10
- # are more normally in Ruby called simply by the attribute name:
12
+ # are more normally in Ruby called simply by the attribute name, or, in
13
+ # other cases, with a predicate method:
11
14
  #
12
- # * position()
13
- # * size = a_size
14
- # * checked?
15
+ # * pos = my_widget.position
16
+ # * my_widget.size = a_size
17
+ # * my_widget.checked?
18
+ # * my_widget.can_undo?
19
+ # * my_widget.has_style?
15
20
  #
16
21
  # This extension creates an alias for every WxRuby instance method that
17
- # begins with +get_+, +set_+ or +is_+. Note that if you are calling a
22
+ # begins with +get_+, +set_+, +is_+, +can_+ and +has_+. Note that if you are calling a
18
23
  # 'setter' method on self, you must explicitly send the message to self:
19
24
  #
20
25
  # # set's self size to be 100px by 100px
@@ -23,11 +28,18 @@
23
28
  # size = Wx::Size.new
24
29
 
25
30
  module WxRubyStyleAccessors
31
+ # Ruby-style method named are implemented by method-missing; if an
32
+ # unknown method is called, see if it is a rubyish name for a real
33
+ # method. In principle it would be possible to set up real aliases for
34
+ # them at start-up, but in practice this is far too slow for all the
35
+ # classes that need to be started up.
26
36
  def method_missing(sym, *args)
27
37
  case sym.to_s
28
- when /^(.*)\=$/
38
+ when /^(\w+)\=$/
29
39
  meth = "set_#{$1}"
30
- when /^(.*)\?$/
40
+ when /^((?:has|can)\w+)\?$/
41
+ meth = $1
42
+ when /^(\w+)\?$/
31
43
  meth = "is_#{$1}"
32
44
  else
33
45
  meth = "get_#{sym}"
@@ -25,6 +25,9 @@ class Wx::Bitmap
25
25
  new(img, depth)
26
26
  end
27
27
 
28
+ # Ruby methods that switch class are conventionally named to_foo
29
+ alias :to_image :convert_to_image
30
+
28
31
  # Redefine the initialize method so it raises an exception if a
29
32
  # non-existent file is given to the constructor; otherwise, wx Widgets
30
33
  # just carries on with an empty bitmap, which may cause faults
@@ -1,8 +1,4 @@
1
1
  class Wx::Clipboard
2
- # See if we like these better
3
- alias :place :set_data
4
- alias :fetch :get_data
5
-
6
2
  class << self
7
3
  # This is provided internally by the SWIG interface file, but all
8
4
  # public access should be via Clipboard.open; see below
@@ -29,4 +25,32 @@ class Wx::Clipboard
29
25
  clip.close if clip
30
26
  end
31
27
  end
28
+
29
+ # Need to do some internal record-keeping to protect data objects on
30
+ # the clipboard from garbage collection
31
+ @@__clip_data = []
32
+
33
+ # These methods affect the clipboard contents; each time, update the
34
+ # record with the changed data contents
35
+ wx_add_data = instance_method(:add_data)
36
+ define_method(:add_data) do | the_data |
37
+ @@__clip_data << the_data
38
+ wx_add_data.bind(self).call(the_data)
39
+ end
40
+
41
+ wx_clear = instance_method(:clear)
42
+ define_method(:clear) do
43
+ @@__clip_data.clear
44
+ wx_clear.bind(self).call
45
+ end
46
+
47
+ wx_set_data = instance_method(:set_data)
48
+ define_method(:set_data) do | the_data |
49
+ @@__clip_data = [ the_data ]
50
+ wx_set_data.bind(self).call(the_data)
51
+ end
52
+
53
+ # Aliases, more clearly expressive?
54
+ alias :place :set_data
55
+ alias :fetch :get_data
32
56
  end
@@ -17,6 +17,11 @@ class Wx::Image
17
17
  bmp.convert_to_image
18
18
  end
19
19
 
20
+ # Ruby methods that switch class are conventionally named to_foo
21
+ def to_bitmap
22
+ Wx::Bitmap.from_image(self)
23
+ end
24
+
20
25
  # Redefine the initialize method so it raises an exception if a
21
26
  # non-existent file is given to the constructor; otherwise, wx Widgets
22
27
  # just carries on with an invalid image, which may cause faults
@@ -2,20 +2,23 @@
2
2
  class Wx::ToolBar
3
3
  # Generic method to add items, supporting positional and named
4
4
  # arguments
5
- ADD_ITEM_PARAMS = [ Wx::Parameter[ :position, -1 ],
5
+ ADD_ITEM_PARAMS = [
6
+ Wx::Parameter[ :bitmap2, Wx::NULL_BITMAP ],
7
+ Wx::Parameter[ :position, -1 ],
6
8
  Wx::Parameter[ :id, -1 ],
7
9
  Wx::Parameter[ :label, "" ],
8
- Wx::Parameter[ :bitmap2, Wx::NULL_BITMAP ],
9
10
  Wx::Parameter[ :kind, Wx::ITEM_NORMAL ],
10
11
  Wx::Parameter[ :short_help, "" ],
11
12
  Wx::Parameter[ :long_help, "" ],
12
13
  Wx::Parameter[ :client_data, nil ] ]
13
14
 
14
- def add_item(bitmap, *mixed_args)
15
+ def add_item(bitmap1, *mixed_args)
15
16
  args = Wx::args_as_list(ADD_ITEM_PARAMS, *mixed_args)
16
17
 
18
+ bitmap2 = args.shift
17
19
  pos = args.shift
18
- args.insert(2, bitmap)
20
+ args.insert(2, bitmap1)
21
+ args.insert(3, bitmap2)
19
22
 
20
23
  # Call add_tool to append if default position
21
24
  if pos == -1
@@ -0,0 +1,7 @@
1
+ class Wx::Validator
2
+ # Default implementation of clone, may need to be over-ridden in
3
+ # custom subclasses should state variables need to be copied
4
+ def clone
5
+ self.class.new
6
+ end
7
+ end