wx_sugar 0.1.0 → 0.1.1
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/accessors.rb
CHANGED
@@ -39,6 +39,28 @@ module NiceRubyMethodNames
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
module MethMissingNiceRubyNames
|
43
|
+
def method_missing(sym, *args)
|
44
|
+
case sym.to_s
|
45
|
+
when /^(.*)\=$/
|
46
|
+
meth = "set_#{$1}"
|
47
|
+
when /^(.*)\?$/
|
48
|
+
meth = "is_#{$1}"
|
49
|
+
else
|
50
|
+
meth = "get_#{sym}"
|
51
|
+
end
|
52
|
+
if respond_to?(meth)
|
53
|
+
send(meth, *args)
|
54
|
+
else
|
55
|
+
e = NoMethodError.new("undefined method '#{sym}' for #{self.inspect}")
|
56
|
+
e.set_backtrace(caller)
|
57
|
+
Kernel.raise e
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
42
63
|
WxSugar::ALL_CLASSES.each do | klass |
|
43
|
-
klass.class_eval { include NiceRubyMethodNames }
|
64
|
+
# klass.class_eval { include NiceRubyMethodNames }
|
65
|
+
klass.class_eval { include MethMissingNiceRubyNames }
|
44
66
|
end
|
data/lib/wx_sugar/all.rb
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
# [menu.rb]
|
51
51
|
# Create and update menus without a mess of system ids
|
52
52
|
|
53
|
-
%w[ accessors delayed_constructors event_connector
|
54
|
-
|
53
|
+
%w[ accessors delayed_constructors event_connector itemdata
|
54
|
+
keyword_constructors layout menu wx_classes ].each do | ext_feature |
|
55
55
|
require 'wx_sugar/' + ext_feature
|
56
56
|
end
|
@@ -89,7 +89,8 @@ module EventConnector
|
|
89
89
|
# end
|
90
90
|
# end
|
91
91
|
#
|
92
|
-
def listen(evt, source =
|
92
|
+
def listen(evt, source = self, handler = nil, &block)
|
93
|
+
|
93
94
|
# get the WxWidget evt_xxx method that will be called for binding
|
94
95
|
event = "evt_#{evt}"
|
95
96
|
if self.respond_to?(event)
|
@@ -125,7 +126,12 @@ module EventConnector
|
|
125
126
|
end
|
126
127
|
|
127
128
|
|
128
|
-
|
129
|
+
if source
|
130
|
+
source_id = source.get_id
|
131
|
+
else
|
132
|
+
source_id = -1
|
133
|
+
end
|
134
|
+
|
129
135
|
begin
|
130
136
|
# Some WxWidgest event connector methods expect the ID of the
|
131
137
|
# triggering widget, others don't. So we try both ways to hide
|
@@ -6,7 +6,11 @@
|
|
6
6
|
# to add a missing class.
|
7
7
|
|
8
8
|
# This is a dummy, this variable is not loaded until Wx init
|
9
|
+
# hush warnings if it has already been loaded when we get here
|
10
|
+
v = $VERBOSE
|
11
|
+
$VERBOSE = nil
|
9
12
|
Wx::NULL_BITMAP = nil
|
13
|
+
$VERBOSE = v
|
10
14
|
|
11
15
|
module WxSugar
|
12
16
|
# accepts a string unadorned name of a WxWidgets class, and block, which
|
@@ -35,13 +39,6 @@ end
|
|
35
39
|
|
36
40
|
# wxTopLevelWindow ABSTRACT: Any top level window, dialog or frame
|
37
41
|
|
38
|
-
# Dialog box
|
39
|
-
WxSugar.define_keyword_ctors('Dialog') do
|
40
|
-
wx_ctor_params :title => ''
|
41
|
-
wx_ctor_params :pos, :size, :style => Wx::DEFAULT_DIALOG_STYLE
|
42
|
-
wx_ctor_params :name => 'dialogBox'
|
43
|
-
end
|
44
|
-
|
45
42
|
# Normal frame
|
46
43
|
WxSugar.define_keyword_ctors('Frame') do
|
47
44
|
wx_ctor_params :title => ''
|
@@ -255,7 +255,6 @@ module KeywordConstructor
|
|
255
255
|
# Any class inheriting from a class including this module must have
|
256
256
|
# its own copy of the param_spec
|
257
257
|
def klass.inherited(sub_klass)
|
258
|
-
# sub_klass.module_eval { include KeywordConstructor }
|
259
258
|
sub_klass.instance_variable_set(:@param_spec,
|
260
259
|
self.instance_variable_get(:@param_spec) )
|
261
260
|
sub_klass.instance_variable_set(:@param_flags,
|
data/lib/wx_sugar/layout.rb
CHANGED
@@ -87,14 +87,25 @@ module Arranger
|
|
87
87
|
def arrange(a_sizer, layout = {})
|
88
88
|
# run as a subordinate block
|
89
89
|
if block_given? and @current_sizer
|
90
|
+
if layout[:padding]
|
91
|
+
old_padding = @padding
|
92
|
+
@padding = layout[:padding]
|
93
|
+
end
|
94
|
+
|
90
95
|
superior_sizer, @current_sizer = @current_sizer, a_sizer
|
91
96
|
yield(self)
|
92
97
|
@current_sizer = superior_sizer
|
93
98
|
proportion = layout[:proportion] || 0
|
94
99
|
superior_sizer.add( a_sizer, proportion,
|
95
|
-
Wx::EXPAND|Wx::ALL|Wx::ADJUST_MINSIZE,
|
100
|
+
Wx::EXPAND|Wx::ALL|Wx::ADJUST_MINSIZE,
|
101
|
+
padding)
|
102
|
+
|
103
|
+
if layout[:padding]
|
104
|
+
@padding = old_padding
|
105
|
+
end
|
96
106
|
# set as main sizer
|
97
107
|
else
|
108
|
+
@padding = layout[:padding] if layout[:padding]
|
98
109
|
@current_sizer = a_sizer
|
99
110
|
yield(self) if block_given?
|
100
111
|
self.set_sizer(a_sizer)
|
@@ -130,7 +141,6 @@ module Arranger
|
|
130
141
|
end
|
131
142
|
|
132
143
|
def arrange_linear( layout = { }, &block)
|
133
|
-
@padding = layout[:padding] if layout[:padding]
|
134
144
|
if layout[:direction].to_s.downcase == 'horizontal'
|
135
145
|
direction = Wx::HORIZONTAL
|
136
146
|
elsif layout[:direction].to_s.downcase == 'vertical'
|
@@ -202,7 +212,7 @@ module Arranger
|
|
202
212
|
if layout_hints[:minsize]
|
203
213
|
layout = layout | Wx::ADJUST_MINSIZE|Wx::EXPAND
|
204
214
|
end
|
205
|
-
if layout_hints[:
|
215
|
+
if layout_hints[:proportion]
|
206
216
|
layout = layout | Wx::EXPAND
|
207
217
|
end
|
208
218
|
|
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-09-
|
6
|
+
version: 0.1.1
|
7
|
+
date: 2006-09-15
|
8
8
|
summary: Syntax extensions for WxRuby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- lib/wx_sugar/keyword_constructors.rb
|
38
38
|
- lib/wx_sugar/layout.rb
|
39
39
|
- lib/wx_sugar/menu.rb
|
40
|
+
- lib/wx_sugar/wx_classes.rb
|
40
41
|
test_files: []
|
41
42
|
rdoc_options: []
|
42
43
|
extra_rdoc_files: []
|