wx_sugar 0.1.2 → 0.1.13
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_sugar/all.rb +31 -16
- data/lib/wx_sugar/class_definitions.rb +2 -1
- data/lib/wx_sugar/keyword_classes.rb +54 -14
- data/lib/wx_sugar/keyword_constructors.rb +1 -1
- data/lib/wx_sugar/version.rb +1 -1
- data/lib/wx_sugar.rb +1 -0
- metadata +3 -2
data/lib/wx_sugar/all.rb
CHANGED
@@ -16,10 +16,13 @@
|
|
16
16
|
#
|
17
17
|
# == Using WxSugar
|
18
18
|
#
|
19
|
-
# The extensions can currently be used with
|
20
|
-
#
|
19
|
+
# The extensions can currently be used with WxRuby2 or the old WxRuby
|
20
|
+
# (0.6.0). WxRuby2 is strongly recommended, and support for the old
|
21
|
+
# series may be dropped in the future.
|
22
|
+
#
|
23
|
+
# The simplest way to use WxSugar is to load all the behaviours. You
|
24
|
+
# should load the wx library first:
|
21
25
|
#
|
22
|
-
# # EITHER ... New development
|
23
26
|
# require 'wx'
|
24
27
|
# # OR ... old non-SWIG beta veresion
|
25
28
|
# require 'wxruby'
|
@@ -27,31 +30,43 @@
|
|
27
30
|
# require 'wx_sugar/all'
|
28
31
|
# ...
|
29
32
|
#
|
30
|
-
# If you only want to load specific behaviours, just +require+
|
31
|
-
# desired extensions only
|
33
|
+
# If you only want to load specific WxSugar behaviours, just +require+
|
34
|
+
# the desired extensions only
|
32
35
|
#
|
33
36
|
# require 'wx_sugar/keyword_constructors'
|
34
37
|
# require 'wx_sugar/acccessors'
|
35
38
|
#
|
36
39
|
# == Overview of extensions
|
40
|
+
#
|
41
|
+
# The following are the WxSugar behaviours that are available. In
|
42
|
+
# general you require one of these extensions, it modifies the behaviour
|
43
|
+
# of all relevant Wx classes, and affects all new instances.
|
37
44
|
#
|
38
|
-
# [accessors
|
45
|
+
# [accessors]
|
39
46
|
# Provide ruby-style getters, setters and question-mark methods
|
40
|
-
# [delayed_constructors
|
41
|
-
#
|
42
|
-
# [event_connector
|
47
|
+
# [delayed_constructors]
|
48
|
+
# Required by +layout+, of limited independent interest
|
49
|
+
# [event_connector]
|
43
50
|
# Neater syntax for connecting event listeners
|
44
|
-
# [
|
45
|
-
# Associate ruby objects with items in controls *NEEDS UPDATE*
|
46
|
-
# [keyword_constructors.rb]
|
51
|
+
# [keyword_constructors]
|
47
52
|
# Use keyword-style hash arguments to construct widgets
|
48
|
-
# [layout
|
49
|
-
# Easy interface to using WxWidgets Sizers
|
50
|
-
# [menu
|
53
|
+
# [layout]
|
54
|
+
# Easy interface to using WxWidgets Sizers to arrange controls
|
55
|
+
# [menu]
|
51
56
|
# Create and update menus without a mess of system ids
|
57
|
+
# [wx_classes]
|
58
|
+
# Useful ruby methods added to individual Wx classes.
|
59
|
+
#
|
60
|
+
# === Deprecated extensions
|
61
|
+
#
|
62
|
+
# This module is deprecated and will soon be removed.
|
63
|
+
#
|
64
|
+
# [itemdata.rb]
|
65
|
+
# Linking ruby objects with wx controls; use the
|
66
|
+
# get/set_item_data methods in core wxruby2 instead.
|
52
67
|
|
53
68
|
|
54
|
-
%w[ accessors delayed_constructors event_connector
|
69
|
+
%w[ accessors delayed_constructors event_connector
|
55
70
|
keyword_constructors layout menu wx_classes ].each do | ext_feature |
|
56
71
|
require 'wx_sugar/' + ext_feature
|
57
72
|
end
|
@@ -13,12 +13,21 @@ Wx::NULL_BITMAP = nil
|
|
13
13
|
$VERBOSE = v
|
14
14
|
|
15
15
|
module WxSugar
|
16
|
+
@defined_classes = {}
|
17
|
+
|
16
18
|
# accepts a string unadorned name of a WxWidgets class, and block, which
|
17
19
|
# defines the constructor parameters and style flags for that class.
|
18
20
|
# If the named class exists in the available WxRuby, the block is run and
|
19
21
|
# the class may use keyword constructors. If the class is not available, the
|
20
22
|
# block is ignored.
|
21
23
|
def self.define_keyword_ctors(klass_name, &block)
|
24
|
+
# check this class hasn't already been defined
|
25
|
+
if @defined_classes[klass_name]
|
26
|
+
raise ArgumentError, "Keyword ctor for #{klass_name} already defined"
|
27
|
+
else
|
28
|
+
@defined_classes[klass_name] = true
|
29
|
+
end
|
30
|
+
|
22
31
|
begin
|
23
32
|
klass = Wx::const_get(klass_name)
|
24
33
|
rescue NameError
|
@@ -34,8 +43,14 @@ module WxSugar
|
|
34
43
|
end
|
35
44
|
end
|
36
45
|
|
46
|
+
# Window : base class for all widgets and frames
|
47
|
+
WxSugar.define_keyword_ctors('Window') do
|
48
|
+
wx_ctor_params :pos, :size, :style
|
49
|
+
wx_ctor_params :name => 'window'
|
50
|
+
end
|
51
|
+
|
52
|
+
|
37
53
|
### FRAMES
|
38
|
-
# Normal frame
|
39
54
|
|
40
55
|
# wxTopLevelWindow ABSTRACT: Any top level window, dialog or frame
|
41
56
|
|
@@ -146,7 +161,7 @@ end
|
|
146
161
|
|
147
162
|
# wxSashLayoutWindow: Window that can be involved in an IDE-like layout
|
148
163
|
# arrangement
|
149
|
-
WxSugar.define_keyword_ctors('
|
164
|
+
WxSugar.define_keyword_ctors('SashLayoutWindow') do
|
150
165
|
wx_ctor_params :pos, :size
|
151
166
|
wx_ctor_params :style => Wx::CLIP_CHILDREN|Wx::SW_3D
|
152
167
|
wx_ctor_params :name => 'layoutWindow'
|
@@ -223,7 +238,15 @@ end
|
|
223
238
|
|
224
239
|
# wxFontDialog Font chooser dialog
|
225
240
|
# wxPageSetupDialog Standard page setup dialog
|
241
|
+
WxSugar.define_keyword_ctors('PageSetupDialog') do
|
242
|
+
wx_ctor_params :data
|
243
|
+
end
|
244
|
+
|
226
245
|
# wxPrintDialog Standard print dialog
|
246
|
+
WxSugar.define_keyword_ctors('PrintDialog') do
|
247
|
+
wx_ctor_params :data
|
248
|
+
end
|
249
|
+
|
227
250
|
|
228
251
|
# Simple message box dialog
|
229
252
|
WxSugar.define_keyword_ctors('MessageDialog') do
|
@@ -297,6 +320,17 @@ WxSugar.define_keyword_ctors('Gauge') do
|
|
297
320
|
end
|
298
321
|
|
299
322
|
# wxGenericDirCtrl A control for displaying a directory tree
|
323
|
+
WxSugar.define_keyword_ctors('GenericDirCtrl') do
|
324
|
+
# TODO :dir => Wx::DIR_DIALOG_DEFAULT_FOLDER_STR
|
325
|
+
wx_ctor_params :dir => ''
|
326
|
+
wx_ctor_params :pos, :size,
|
327
|
+
:style => Wx::DIRCTRL_3D_INTERNAL|Wx::SUNKEN_BORDER
|
328
|
+
wx_ctor_params :filter => ''
|
329
|
+
wx_ctor_params :default_filter => 0
|
330
|
+
wx_ctor_params :name => 'genericDirCtrl'
|
331
|
+
end
|
332
|
+
|
333
|
+
|
300
334
|
# wxHtmlListBox A listbox showing HTML content
|
301
335
|
# wxListBox A list of strings for single or multiple selection
|
302
336
|
WxSugar.define_keyword_ctors('ListBox') do
|
@@ -318,20 +352,14 @@ WxSugar.define_keyword_ctors('TreeCtrl') do
|
|
318
352
|
# wx_ctor_params :validator, :name => 'treeCtrl'
|
319
353
|
end
|
320
354
|
|
321
|
-
# wxScrollBar Scrollbar control
|
322
|
-
# wxSpinButton A spin or 'up-down' control
|
323
|
-
WxSugar.define_keyword_ctors('SpinCtrl') do
|
324
|
-
wx_ctor_params :pos, :size, :style => Wx::SP_HORIZONTAL
|
325
|
-
# wx_ctor_params :validator, :name => 'treeCtrl'
|
326
|
-
end
|
327
|
-
|
328
355
|
# wxSpinCtrl A spin control - i.e. spin button and text control
|
329
356
|
WxSugar.define_keyword_ctors('SpinCtrl') do
|
357
|
+
wx_ctor_params :value => ''
|
330
358
|
wx_ctor_params :pos, :size, :style => Wx::SP_ARROW_KEYS
|
331
359
|
wx_ctor_params :min => 0
|
332
360
|
wx_ctor_params :max => 100
|
333
361
|
wx_ctor_params :initial => 0
|
334
|
-
|
362
|
+
wx_ctor_params :name => 'spinCtrl'
|
335
363
|
end
|
336
364
|
|
337
365
|
# One or more lines of non-editable text
|
@@ -360,13 +388,11 @@ WxSugar.define_keyword_ctors('RadioBox') do
|
|
360
388
|
wx_ctor_params :pos, :size, :choices => []
|
361
389
|
wx_ctor_params :major_dimension => 0
|
362
390
|
wx_ctor_params :style => Wx::RA_SPECIFY_COLS
|
363
|
-
|
364
|
-
# wx_ctor_params :validator, :name => 'radioBox'
|
391
|
+
# wx_ctor_params :validator, :name => 'radioBox'
|
365
392
|
end
|
366
393
|
|
367
|
-
|
368
394
|
# wxRadioButton A round button to be used with others in a mutually exclusive way
|
369
|
-
WxSugar.define_keyword_ctors('
|
395
|
+
WxSugar.define_keyword_ctors('RadioButton') do
|
370
396
|
wx_ctor_params :label => ''
|
371
397
|
wx_ctor_params :pos, :size, :style => 0
|
372
398
|
# wx_ctor_params :validator, :name => 'radioButton'
|
@@ -374,16 +400,30 @@ end
|
|
374
400
|
|
375
401
|
# wxSlider A slider that can be dragged by the user
|
376
402
|
WxSugar.define_keyword_ctors('Slider') do
|
403
|
+
wx_ctor_params :value => 0
|
377
404
|
wx_ctor_params :min_value, :max_value
|
378
405
|
wx_ctor_params :pos, :size, :style => Wx::SL_HORIZONTAL
|
379
406
|
# wx_ctor_params :validator, :name => 'radioButton'
|
380
407
|
end
|
381
408
|
|
409
|
+
|
410
|
+
# wxSpinButton - Has two small up and down (or left and right) arrow buttons
|
411
|
+
WxSugar.define_keyword_ctors('SpinButton') do
|
412
|
+
wx_ctor_params :pos, :size, :style => Wx::SP_HORIZONTAL
|
413
|
+
wx_ctor_params :name => 'spinButton'
|
414
|
+
end
|
415
|
+
|
382
416
|
# wxVListBox A listbox supporting variable height rows
|
383
417
|
|
384
418
|
# wxTextCtrl Single or multiline text editing control
|
385
419
|
WxSugar.define_keyword_ctors('TextCtrl') do
|
386
420
|
wx_ctor_params :value => ''
|
387
421
|
wx_ctor_params :pos, :size, :style
|
422
|
+
# wx_ctor_params validator, :name => 'textCtrl'
|
388
423
|
end
|
389
424
|
|
425
|
+
# wxHtmlWindow - Control for displaying HTML
|
426
|
+
WxSugar.define_keyword_ctors('HtmlWindow') do
|
427
|
+
wx_ctor_params :pos, :size, :style => Wx::HW_DEFAULT_STYLE
|
428
|
+
wx_ctor_params :name => 'htmlWindow'
|
429
|
+
end
|
@@ -244,7 +244,7 @@ module KeywordConstructor
|
|
244
244
|
pre_wx_kwctor_init(*real_args)
|
245
245
|
rescue
|
246
246
|
Kernel.raise ArgumentError, "Error initializing #{self.inspect} \n" +
|
247
|
-
"Sent
|
247
|
+
"Sent parameters: #{real_args.inspect}\n" +
|
248
248
|
"correct parameters are:\n" +
|
249
249
|
self.class.describe_constructor()
|
250
250
|
end
|
data/lib/wx_sugar/version.rb
CHANGED
data/lib/wx_sugar.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'wx_sugar/all'
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: wx_sugar
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2006-
|
6
|
+
version: 0.1.13
|
7
|
+
date: 2006-12-03
|
8
8
|
summary: Syntax extensions for WxRuby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -28,6 +28,7 @@ authors:
|
|
28
28
|
- Alex Fenton
|
29
29
|
files:
|
30
30
|
- lib/wx_sugar
|
31
|
+
- lib/wx_sugar.rb
|
31
32
|
- lib/wx_sugar/accessors.rb
|
32
33
|
- lib/wx_sugar/all.rb
|
33
34
|
- lib/wx_sugar/class_definitions.rb
|