exerb 6.0.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.
Files changed (179) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/ChangeLog.ja.rd +305 -0
  4. data/README.en.txt +12 -0
  5. data/README.ja.html +143 -0
  6. data/README.ja.txt +6 -0
  7. data/README.md +50 -0
  8. data/Rakefile +205 -0
  9. data/bin/exerb +185 -0
  10. data/bin/mkexy +47 -0
  11. data/doc/LGPL +513 -0
  12. data/doc/class.ja.html +92 -0
  13. data/doc/command.ja.html +109 -0
  14. data/doc/core.ja.html +72 -0
  15. data/doc/example.ja.html +89 -0
  16. data/doc/faq.ja.html +59 -0
  17. data/doc/inside.ja.rd +404 -0
  18. data/doc/license.ja.html +62 -0
  19. data/doc/logo.gif +0 -0
  20. data/doc/misc.ja.html +72 -0
  21. data/doc/navi.gif +0 -0
  22. data/doc/recipe.ja.html +317 -0
  23. data/doc/style.css +187 -0
  24. data/doc/tutorial.ja.html +182 -0
  25. data/example/Makefile +54 -0
  26. data/example/cat_n.rb +14 -0
  27. data/example/exception.rb +9 -0
  28. data/example/ext/Win32API.so +0 -0
  29. data/example/ext/swin.so +0 -0
  30. data/example/msgbox.rb +14 -0
  31. data/example/rubytk.rb +22 -0
  32. data/example/runtime.ico +0 -0
  33. data/example/runtime.rb +19 -0
  34. data/example/vr/clipboard.rb +106 -0
  35. data/example/vr/compat/rubycompat.rb +18 -0
  36. data/example/vr/compat/vrcomctl.rb +12 -0
  37. data/example/vr/compat/vrcontrol.rb +50 -0
  38. data/example/vr/compat/vrmmedia.rb +24 -0
  39. data/example/vr/contrib/inifile.rb +116 -0
  40. data/example/vr/contrib/msgboxconst.rb +55 -0
  41. data/example/vr/contrib/toolbar.rb +371 -0
  42. data/example/vr/contrib/vrctlcolor.rb +110 -0
  43. data/example/vr/contrib/vrhotkey.rb +35 -0
  44. data/example/vr/contrib/vrlistviewex.rb +71 -0
  45. data/example/vr/contrib/vrstdscrollbar.rb +414 -0
  46. data/example/vr/contrib/vrwincomponent.rb +54 -0
  47. data/example/vr/dragdropformat.rb +209 -0
  48. data/example/vr/rscutil.rb +168 -0
  49. data/example/vr/sysmod.rb +249 -0
  50. data/example/vr/vractivex.rb +56 -0
  51. data/example/vr/vrclipboard.rb +53 -0
  52. data/example/vr/vrcomctl.rb +1819 -0
  53. data/example/vr/vrcontrol.rb +1374 -0
  54. data/example/vr/vrdde.rb +623 -0
  55. data/example/vr/vrddrop.rb +190 -0
  56. data/example/vr/vrdialog.rb +406 -0
  57. data/example/vr/vrhandler.rb +195 -0
  58. data/example/vr/vrlayout.old.rb +209 -0
  59. data/example/vr/vrlayout.rb +173 -0
  60. data/example/vr/vrlayout2.rb +340 -0
  61. data/example/vr/vrmargin.rb +141 -0
  62. data/example/vr/vrmgdlayout.rb +381 -0
  63. data/example/vr/vrmmedia.rb +287 -0
  64. data/example/vr/vrolednd.rb +192 -0
  65. data/example/vr/vrowndraw.rb +108 -0
  66. data/example/vr/vrrichedit.rb +366 -0
  67. data/example/vr/vrtimer.rb +148 -0
  68. data/example/vr/vrtooltip.rb +273 -0
  69. data/example/vr/vrtray.rb +143 -0
  70. data/example/vr/vrtvitem.rb +118 -0
  71. data/example/vr/vrtwopane.rb +223 -0
  72. data/example/vr/vruby.rb +1051 -0
  73. data/example/vr/winconst.rb +158 -0
  74. data/example/vruby.rb +38 -0
  75. data/exerb.gemspec +26 -0
  76. data/extconf.rb +7 -0
  77. data/lib/exerb/archive.rb +143 -0
  78. data/lib/exerb/config.rb +51 -0
  79. data/lib/exerb/error.rb +15 -0
  80. data/lib/exerb/executable.rb +68 -0
  81. data/lib/exerb/file_table.rb +189 -0
  82. data/lib/exerb/mkexy.rb +81 -0
  83. data/lib/exerb/name_table.rb +120 -0
  84. data/lib/exerb/recipe.rb +465 -0
  85. data/lib/exerb/resource.rb +190 -0
  86. data/lib/exerb/resource/base.rb +29 -0
  87. data/lib/exerb/resource/binary.rb +31 -0
  88. data/lib/exerb/resource/dialog.rb +30 -0
  89. data/lib/exerb/resource/group_icon.rb +85 -0
  90. data/lib/exerb/resource/icon.rb +52 -0
  91. data/lib/exerb/resource/version_info.rb +155 -0
  92. data/lib/exerb/resource_library.rb +120 -0
  93. data/lib/exerb/utility.rb +95 -0
  94. data/lib/exerb/utility2.rb +122 -0
  95. data/lib/exerb/version.rb +13 -0
  96. data/lib/exerb/win32/const/resource.rb +51 -0
  97. data/lib/exerb/win32/icon_file.rb +78 -0
  98. data/lib/exerb/win32/pe_file.rb +59 -0
  99. data/lib/exerb/win32/resource_directory.rb +105 -0
  100. data/lib/exerb/win32/resource_directory_root.rb +67 -0
  101. data/lib/exerb/win32/resource_entry.rb +98 -0
  102. data/lib/exerb/win32/struct/base.rb +43 -0
  103. data/lib/exerb/win32/struct/icon_dir_entry.rb +83 -0
  104. data/lib/exerb/win32/struct/icon_header.rb +43 -0
  105. data/lib/exerb/win32/struct/icon_res_entry.rb +48 -0
  106. data/lib/exerb/win32/struct/image_dos_header.rb +73 -0
  107. data/lib/exerb/win32/struct/image_file_header.rb +47 -0
  108. data/lib/exerb/win32/struct/image_nt_headers32.rb +53 -0
  109. data/lib/exerb/win32/struct/image_optional_header32.rb +107 -0
  110. data/lib/exerb/win32/struct/image_resource_data_entry.rb +45 -0
  111. data/lib/exerb/win32/struct/image_resource_directory.rb +47 -0
  112. data/lib/exerb/win32/struct/image_resource_directory_entry.rb +72 -0
  113. data/lib/exerb/win32/struct/image_section_header.rb +53 -0
  114. data/lib/exerb/win32/struct/version_info_block.rb +75 -0
  115. data/lib/exerb/win32/struct/vs_fixed_file_info.rb +62 -0
  116. data/src/exerb/cui.c +48 -0
  117. data/src/exerb/default.rb +1 -0
  118. data/src/exerb/exerb.c +877 -0
  119. data/src/exerb/exerb.h +92 -0
  120. data/src/exerb/gui.c +176 -0
  121. data/src/exerb/module.c +138 -0
  122. data/src/exerb/module.h +7 -0
  123. data/src/exerb/patch.c +27 -0
  124. data/src/exerb/resource.h +22 -0
  125. data/src/exerb/resource.rc +121 -0
  126. data/src/exerb/ruby.ico +0 -0
  127. data/src/exerb/utility.c +263 -0
  128. data/src/exerb/utility.h +33 -0
  129. data/test/alltests.rb +16 -0
  130. data/test/test-argv.rb +26 -0
  131. data/test/test-argv/test-argv.rb +9 -0
  132. data/test/test-argv/test-argv.ret +1 -0
  133. data/test/test-dollarzero.rb +26 -0
  134. data/test/test-dollarzero/test-dollarzero.rb +10 -0
  135. data/test/test-dollarzero/test-dollarzero.ret +2 -0
  136. data/test/test-dot.rb +26 -0
  137. data/test/test-dot/dot.dot.dot.rb +9 -0
  138. data/test/test-dot/dot.dot.rb +9 -0
  139. data/test/test-dot/test-dot.rb +13 -0
  140. data/test/test-dot/test-dot.ret +5 -0
  141. data/test/test-exitcode.rb +28 -0
  142. data/test/test-exitcode/test-exitcode.rb +9 -0
  143. data/test/test-kcode.rb +43 -0
  144. data/test/test-kcode/euc.rb +10 -0
  145. data/test/test-kcode/euc.ret +2 -0
  146. data/test/test-kcode/none.rb +10 -0
  147. data/test/test-kcode/none.ret +2 -0
  148. data/test/test-kcode/sjis.rb +10 -0
  149. data/test/test-kcode/sjis.ret +2 -0
  150. data/test/test-kcode/utf8.rb +10 -0
  151. data/test/test-kcode/utf8.ret +2 -0
  152. data/test/test-loadpath.rb +24 -0
  153. data/test/test-loadpath/test-loadpath.rb +9 -0
  154. data/test/test-nest.rb +18 -0
  155. data/test/test-nest/foo.rb +1 -0
  156. data/test/test-nest/foo/bar.rb +2 -0
  157. data/test/test-nest/foo/foo.rb +1 -0
  158. data/test/test-nest/test-nest.rb +1 -0
  159. data/test/test-nest/test-nest.ret +1 -0
  160. data/test/test-preload.rb +24 -0
  161. data/test/test-preload/test-preload.rb +9 -0
  162. data/test/test-regexp.rb +26 -0
  163. data/test/test-regexp/test-regexp.rb +23 -0
  164. data/test/test-regexp/test-regexp.ret +13 -0
  165. data/test/test-require1.rb +26 -0
  166. data/test/test-require1/require1.rb +9 -0
  167. data/test/test-require1/require2.rb +9 -0
  168. data/test/test-require1/require3.rb +9 -0
  169. data/test/test-require1/require4.rb +9 -0
  170. data/test/test-require1/require5.rb +9 -0
  171. data/test/test-require1/require6.rb +9 -0
  172. data/test/test-require1/test-require1.rb +41 -0
  173. data/test/test-require1/test-require1.ret +27 -0
  174. data/test/test-socket.rb +26 -0
  175. data/test/test-socket/test-socket.rb +7 -0
  176. data/test/test-socket/test-socket.ret +1 -0
  177. data/test/testcase.rb +66 -0
  178. data/vendor/mkexports.rb +167 -0
  179. metadata +352 -0
@@ -0,0 +1,195 @@
1
+ ###################################
2
+ #
3
+ # vrhandler.rb
4
+ # Programmed by nyasu <nyasu@osk.3web.ne.jp>
5
+ # Copyright 1999-2005 Nishikawa,Yasuhiro
6
+ #
7
+ # More information at http://vruby.sourceforge.net/index.html
8
+ #
9
+ ###################################
10
+
11
+ VR_DIR="vr/" unless defined?(::VR_DIR)
12
+ require VR_DIR+'vruby'
13
+
14
+ =begin
15
+ = VisualuRuby(tmp) Additional Modules
16
+ =end
17
+
18
+
19
+ module VRMouseFeasible
20
+ include VRMessageHandler
21
+
22
+ SHIFT_LBUTTON=1
23
+ SHIFT_RBUTTON=2
24
+ SHIFT_SHIFT =4
25
+ SHIFT_CONTROL=8
26
+ SHIFT_MBUTTON=16
27
+
28
+ =begin
29
+ == VRMouseFeasible
30
+ This is a module to receive mouse messages.
31
+
32
+ === Event Handlers
33
+ --- self_lbuttonup(shift,x,y)
34
+ This method is fired when mouse left button is released at coord(x,y).
35
+ Press SHIFT key to set 0x4 bit of argument "shift".
36
+ Its 0x8 bit is for CONTROL key
37
+ --- self_lbuttondown(shift,x,y)
38
+ This method is fired when mouse left button is pressed.
39
+ --- self_rbuttonup(shift,x,y)
40
+ This method is fired when mouse right button is released.
41
+ --- self_rbuttondown(shift,x,y)
42
+ This method is fired when mouse right button is pressed.
43
+ --- self_mousemove(shift,x,y)
44
+ This method is fired when mouse cursor is moving on the window at coord(x,y).
45
+ =end
46
+
47
+ def mousefeasibleinit
48
+ addHandler WMsg::WM_LBUTTONUP, "lbuttonup", MSGTYPE::ARGINTSINTSINT,nil
49
+ addHandler WMsg::WM_LBUTTONDOWN,"lbuttondown",MSGTYPE::ARGINTSINTSINT,nil
50
+ addHandler WMsg::WM_RBUTTONUP, "rbuttonup", MSGTYPE::ARGINTSINTSINT,nil
51
+ addHandler WMsg::WM_RBUTTONDOWN,"rbuttondown",MSGTYPE::ARGINTSINTSINT,nil
52
+ addHandler WMsg::WM_MOUSEMOVE, "mousemove", MSGTYPE::ARGINTSINTSINT,nil
53
+ acceptEvents [WMsg::WM_LBUTTONUP,WMsg::WM_RBUTTONUP,
54
+ WMsg::WM_LBUTTONDOWN,WMsg::WM_RBUTTONDOWN,
55
+ WMsg::WM_MOUSEMOVE]
56
+ end
57
+
58
+ def vrinit
59
+ super
60
+ mousefeasibleinit
61
+ end
62
+
63
+ =begin handlers
64
+ def self_lbuttonup(*arg) end
65
+ def self_lbuttondown(*arg) end
66
+ def self_rbuttonup(*arg) end
67
+ def self_rbuttondown(*arg) end
68
+ def self_mousemove(*arg) end
69
+ =end
70
+ end
71
+
72
+ module VRFocusSensitive
73
+ include VRMessageHandler
74
+
75
+ =begin
76
+ == VRFocusSensitive
77
+ This is a module to sense getting/losing focus.
78
+ === Event Handlers
79
+ --- self_gotfocus()
80
+ This method is fired when the window get focus.
81
+ --- self_lostfocus()
82
+ This method is fired when the window lose the focus.
83
+ =end
84
+
85
+ def focussensitiveinit
86
+ addHandler WMsg::WM_SETFOCUS, "gotfocus", MSGTYPE::ARGNONE,nil
87
+ addHandler WMsg::WM_KILLFOCUS, "lostfocus", MSGTYPE::ARGNONE,nil
88
+ acceptEvents [WMsg::WM_SETFOCUS,WMsg::WM_KILLFOCUS]
89
+ end
90
+
91
+ def vrinit
92
+ super
93
+ focussensitiveinit
94
+ end
95
+ =begin handlers
96
+ def gotfocus() end
97
+ def lostfocus() end
98
+ =end
99
+ end
100
+
101
+ module VRKeyFeasible
102
+ include VRMessageHandler
103
+
104
+ =begin
105
+ == VRKeyFeasible
106
+ This is a module to sense keyboard input.
107
+
108
+ === Event Handlers
109
+ --- self_char(keycode,keydata)
110
+ This method is fired when WM_KEYUP and WM_KEYDOWN are translated into
111
+ keyboard input messages.
112
+ --- self_deadchar(keycode,keydata)
113
+ --- self_syschar(keycode,keydata)
114
+ --- self_sysdeadchar(keycode,keydata)
115
+ =end
116
+
117
+ def keyfeasibleinit
118
+ addHandler(0x102,"char", MSGTYPE::ARGINTINT,nil) # WM_CHAR
119
+ addHandler(0x103,"deadchar", MSGTYPE::ARGINTINT,nil) # WM_DEADCHAR
120
+ addHandler(0x106,"syschar", MSGTYPE::ARGINTINT,nil) # WM_SYSCHAR
121
+ addHandler(0x107,"sysdeadchar", MSGTYPE::ARGINTINT,nil) # WM_SYSDEADCHAR
122
+ acceptEvents [0x102,0x103,0x106,0x107]
123
+ end
124
+ def vrinit
125
+ super
126
+ keyfeasibleinit
127
+ end
128
+
129
+ =begin handlers
130
+ def self_char(*arg) end
131
+ def self_deadchar(*arg) end
132
+ def self_syschar(*arg) end
133
+ def self_sysdeadchar(*arg) end
134
+ =end
135
+ end
136
+
137
+ module VRDestroySensitive
138
+ =begin
139
+ == VRDestroySensitive
140
+ This is a module to sense window destruction.
141
+
142
+ === Event Handlers
143
+ --- self_destroy
144
+ This is fired when the window is destroying.
145
+ =end
146
+
147
+ include VRMessageHandler
148
+
149
+ def destroysensitiveinit
150
+ addHandler WMsg::WM_DESTROY,"destroy",MSGTYPE::ARGNONE,nil
151
+ acceptEvents [WMsg::WM_DESTROY]
152
+ end
153
+
154
+ def vrinit
155
+ super
156
+ destroysensitiveinit
157
+ end
158
+ end
159
+
160
+ module VRClosingSensitive
161
+ =begin
162
+ == VRClosingSensitive
163
+ This is a module to sense window closing.
164
+ This module can be used for implement of CanClose method.
165
+
166
+ ex.
167
+ class MyForm < VRForm
168
+ include VRClosingSensitive
169
+ def self_close
170
+ r = messageBox("Can Close?","close query",4) #4=MB_YESNO
171
+
172
+ if r==7 # ID_NO then
173
+ SKIP_DEFAULTHANDLER
174
+ end
175
+ end
176
+ end
177
+
178
+ === Event Handlers
179
+ --- self_close
180
+ This is fired when the window is closing.
181
+ =end
182
+
183
+ include VRMessageHandler
184
+ def closingsensitiveinit
185
+ addHandler WMsg::WM_CLOSE,"close",MSGTYPE::ARGNONE,nil
186
+ acceptEvents [WMsg::WM_CLOSE]
187
+ end
188
+
189
+ def vrinit
190
+ super
191
+ closingsensitiveinit
192
+ end
193
+ end
194
+
195
+ require VR_DIR+'contrib/vrctlcolor'
@@ -0,0 +1,209 @@
1
+ ###################################
2
+ #
3
+ # vrlayout.rb (old version)
4
+ # Programmed by nyasu <nyasu@osk.3web.ne.jp>
5
+ # Copyright 1999-2001 Nishikawa,Yasuhiro
6
+ #
7
+ # More information at http://www.threeweb.ad.jp/~nyasu/software/vrproject.html
8
+ # (in Japanese)
9
+ #
10
+ ###################################
11
+
12
+ VR_DIR="vr/" unless defined?(::VR_DIR)
13
+ require VR_DIR+'vruby'
14
+
15
+ =begin
16
+ = VisualuRuby(tmp) Layout Managers
17
+ Layout Managers re-arrange child windows(controls)
18
+ when the parent window is resized.
19
+ =end
20
+
21
+
22
+ ##############################################
23
+ # base module for LayoutManagers
24
+ #
25
+ module VRLayoutManager
26
+ =begin
27
+ == VRLayoutManager
28
+ The base class for the layout managers.
29
+
30
+ === Methods
31
+ --- rearrange
32
+ Re-arranges child windows.
33
+ =end
34
+
35
+
36
+ include VRMessageHandler
37
+
38
+ def vrLayoutinit
39
+ addHandler(WMsg::WM_SIZE, "vrlayoutresize",MSGTYPE::ARGLINTINT,nil)
40
+ acceptEvents [WMsg::WM_SIZE]
41
+ end
42
+
43
+ def vrinit
44
+ super
45
+ vrLayoutinit
46
+ end
47
+
48
+ def rearrange
49
+ if self.visible? then
50
+ a=self.clientrect
51
+ sendMessage WMsg::WM_SIZE,0,MAKELPARAM(a[2]-a[0],a[3]-a[1])
52
+ end
53
+ end
54
+
55
+ def self_vrlayoutresize(*arg)
56
+ self_layout_arrange(*arg)
57
+ end
58
+ end
59
+
60
+ ##
61
+ ##########################################
62
+
63
+
64
+ module VRVertLayoutManager
65
+ =begin
66
+ == VRVertLayoutManager
67
+ On window resizing, each controls on the window is re-arranged
68
+ to vertical arrangement. each control's width is window width and
69
+ each height is one n-th of window's height.
70
+
71
+ === Methods
72
+ --- addControl(type,name,caption,astyle)
73
+ Create a new control and add on the window.
74
+ The arguments are same as VRParent#addControl
75
+ without args ((|x|)),((|y|)),((|w|)),((|h|))
76
+ =end
77
+
78
+ include VRLayoutManager
79
+
80
+ def self_layout_arrange(width,fheight)
81
+ return unless @_vr_c_order
82
+ height=(@_vr_c_order.size>0)? (fheight.to_f / @_vr_c_order.size) : fheight
83
+
84
+ @_vr_c_order.each_index do |i|
85
+ @_vr_c_order[i].move( 0,i*height, width,height )
86
+ end
87
+ end
88
+
89
+ VR_ADDCONTROL_FEWARGS=true
90
+
91
+ def addControl(type,name,caption,style=0)
92
+ @_vr_c_order=[] if !@_vr_c_order
93
+ r=vr_addControlOriginal(type,name,caption,0,@controls.size*10,10,10,style)
94
+ @_vr_c_order.push r
95
+ return r
96
+ end
97
+ end
98
+
99
+
100
+ module VRHorizLayoutManager
101
+ =begin
102
+ == VRHorizLayoutManager
103
+ On window resizing, each controls on the window is re-arranged
104
+ to horizontal arrangement. each control's height is window height and
105
+ each width is one n-th of window's width.
106
+
107
+ === Methods
108
+ --- addControl(type,name,caption,astyle)
109
+ Create a new control and add on the window.
110
+ The arguments are same as VRParent#addControl
111
+ without args ((|x|)),((|y|)),((|w|)),((|h|))
112
+ =end
113
+
114
+ include VRLayoutManager
115
+
116
+ def self_layout_arrange(fwidth,height)
117
+ return unless @_vr_c_order
118
+ width =(@_vr_c_order.size>0)? (fwidth.to_f / @_vr_c_order.size) : fwidth
119
+
120
+ @_vr_c_order.each_index do |i|
121
+ @_vr_c_order[i].move( i*width,0, width,height )
122
+ end
123
+ end
124
+
125
+ VR_ADDCONTROL_FEWARGS=true
126
+
127
+ def addControl(type,name,caption,style=0)
128
+ @_vr_c_order=[] if !@_vr_c_order
129
+ r=vr_addControlOriginal(type,name,caption,0,@controls.size*10,10,10,style)
130
+ @_vr_c_order.push r
131
+ return r
132
+ end
133
+
134
+ end
135
+
136
+ module VRGridLayoutManager
137
+ =begin
138
+ == VRGridLayoutManager
139
+ On window resizing, each controls on the window is re-arranged
140
+ with the grid which devides the window height and width by the number
141
+ specified by ((<setDimension>)) method.
142
+
143
+ === Methods
144
+ --- setDimension(x,y)
145
+ Devides windows width by ((|x|)) and height by ((|y|)).
146
+
147
+ --- addControl(type,name,caption,x,y,w,h,astyle)
148
+ Create a new control and add on the window.
149
+ The arguments are same as VRParent#addControl but
150
+ args ((|x|)),((|y|)),((|w|)),((|h|)) are under grid dimension.
151
+ =end
152
+
153
+ include VRLayoutManager
154
+
155
+ def setDimension(x,y)
156
+ @_vr_xsize=x
157
+ @_vr_ysize=y
158
+ @_vr_controldim={}
159
+ end
160
+
161
+ def self_layout_arrange(width,height)
162
+ return unless @controls
163
+
164
+ @controls.each do |id,cntl|
165
+ cntl.move(width.to_f / @_vr_xsize*@_vr_controldim[id][0],
166
+ height.to_f / @_vr_ysize*@_vr_controldim[id][1],
167
+ width.to_f / @_vr_xsize*@_vr_controldim[id][2],
168
+ height.to_f / @_vr_ysize*@_vr_controldim[id][3] )
169
+ end
170
+ end
171
+
172
+ def addControl(type,name,caption,x,y,w,h,style=0)
173
+ if !@_vr_controldim then raise("addControl before setDimension") end
174
+ if @controls.size != @_vr_controldim.size then
175
+ raise "VRGridLayoutManager misses some controls"+
176
+ "(mng#{@_vr_controldim.size} cntls#{@_vr_cid})."
177
+ end
178
+
179
+ gx=self.w/@_vr_xsize*x; gw=self.w/@_vr_xsize*w;
180
+ gy=self.h/@_vr_ysize*y; gh=self.h/@_vr_ysize*h;
181
+ r=vr_addControlOriginal(type,name,caption,gx,gy,gw,gh,style)
182
+ @_vr_controldim[r.etc]= [x,y,w,h]
183
+ return r
184
+ end
185
+ end
186
+
187
+ module VRFullsizeLayoutManager
188
+ =begin
189
+ == VRFullsizeLayoutManager
190
+ This is a LayoutManager for only one control, whose size is full size
191
+ on the window.
192
+
193
+ === Methods
194
+ --- addControl(type,name,caption,astyle)
195
+ You can call this method only once.
196
+ =end
197
+
198
+
199
+ include VRVertLayoutManager
200
+
201
+ VR_ADDCONTROL_FEWARGS=true
202
+
203
+ def addControl(*arg)
204
+ super
205
+ def self.addControl(*arg)
206
+ raise "addControl twice"
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,173 @@
1
+ ###################################
2
+ #
3
+ # vrlayout.rb (using vrlayout2 version)
4
+ # Programmed by nyasu <nyasu@osk.3web.ne.jp>
5
+ # Copyright 1999-2005 Nishikawa,Yasuhiro
6
+ #
7
+ # More information at http://vruby.sourceforge.net/index.html
8
+ #
9
+ ###################################
10
+
11
+ VR_DIR="vr/" unless defined?(::VR_DIR)
12
+ require VR_DIR+'vruby'
13
+ require VR_DIR+'vrlayout2'
14
+
15
+ =begin
16
+ = VisualuRuby(tmp) Layout Managers
17
+ Layout Managers re-arrange child windows(controls)
18
+ when the parent window is resized.
19
+ =end
20
+
21
+ ##############################################
22
+ # base module for LayoutManagers
23
+ #
24
+ module VRLayoutManager
25
+ =begin
26
+ == VRLayoutManager
27
+ The base class for the layout managers.
28
+
29
+ === Methods
30
+ --- rearrange
31
+ Re-arranges child windows.
32
+ =end
33
+
34
+
35
+ include VRMessageHandler
36
+
37
+ def vrLayoutinit
38
+ @_vr_layoutframe=nil
39
+ addHandler(WMsg::WM_SIZE, "vrlayoutresize",MSGTYPE::ARGLINTINT,nil)
40
+ acceptEvents [WMsg::WM_SIZE]
41
+ end
42
+
43
+ def vrinit
44
+ super
45
+ vrLayoutinit
46
+ end
47
+
48
+ def rearrange
49
+ a=self.clientrect
50
+ sendMessage WMsg::WM_SIZE,0,MAKELPARAM(a[2]-a[0],a[3]-a[1])
51
+ end
52
+
53
+ def self_vrlayoutresize(*arg)
54
+ self_layout_arrange(*arg)
55
+ end
56
+
57
+ def self_layout_arrange(xw,yh)
58
+ @_vr_layoutframe.move 0,0,xw,yh if @_vr_layoutframe
59
+ end
60
+ end
61
+
62
+ ##
63
+ ##########################################
64
+
65
+ module VRVertLayoutManager
66
+ =begin
67
+ == VRVertLayoutManager
68
+ On window resizing, each controls on the window is re-arranged
69
+ to vertical arrangement. each control's width is window width and
70
+ each height is one n-th of window's height.
71
+
72
+ === Methods
73
+ --- addControl(type,name,caption,astyle)
74
+ Create a new control and add on the window.
75
+ The arguments are same as VRParent#addControl
76
+ without args ((|x|)),((|y|)),((|w|)),((|h|))
77
+ =end
78
+
79
+ include VRLayoutManager
80
+
81
+ VR_ADDCONTROL_FEWARGS=true
82
+
83
+ def addControl(type,name,caption,style=0)
84
+ @_vr_layoutframe = VRVertLayoutFrame.new unless @_vr_layoutframe
85
+ r=vr_addControlOriginal(type,name,caption,0,@controls.size*10,10,10,style)
86
+ @_vr_layoutframe.register(r)
87
+ rearrange
88
+ return r
89
+ end
90
+ end
91
+
92
+ module VRHorizLayoutManager
93
+ =begin
94
+ == VRHorizLayoutManager
95
+ On window resizing, each controls on the window is re-arranged
96
+ to horizontal arrangement. each control's height is window height and
97
+ each width is one n-th of window's width.
98
+
99
+ === Methods
100
+ --- addControl(type,name,caption,astyle)
101
+ Create a new control and add on the window.
102
+ The arguments are same as VRParent#addControl
103
+ without args ((|x|)),((|y|)),((|w|)),((|h|))
104
+ =end
105
+
106
+ include VRLayoutManager
107
+
108
+ VR_ADDCONTROL_FEWARGS=true
109
+
110
+ def addControl(type,name,caption,style=0)
111
+ @_vr_layoutframe = VRHorizLayoutFrame.new unless @_vr_layoutframe
112
+ r=vr_addControlOriginal(type,name,caption,0,@controls.size*10,10,10,style)
113
+ @_vr_layoutframe.register(r)
114
+ rearrange
115
+ return r
116
+ end
117
+ end
118
+
119
+ module VRGridLayoutManager
120
+ =begin
121
+ == VRGridLayoutManager
122
+ On window resizing, each controls on the window is re-arranged
123
+ with the grid which devides the window height and width by the number
124
+ specified by ((<setDimension>)) method.
125
+
126
+ === Methods
127
+ --- setDimension(x,y)
128
+ Devides windows width by ((|x|)) and height by ((|y|)).
129
+
130
+ --- addControl(type,name,caption,x,y,w,h,astyle)
131
+ Create a new control and add on the window.
132
+ The arguments are same as VRParent#addControl but
133
+ args ((|x|)),((|y|)),((|w|)),((|h|)) are under grid dimension.
134
+ =end
135
+ include VRLayoutManager
136
+
137
+ def setDimension(x,y)
138
+ unless @_vr_layoutframe then
139
+ @_vr_layoutframe = VRGridLayoutFrame.new(x,y)
140
+ else
141
+ @_vr_layoutframe.setDimension(x,y)
142
+ end
143
+ end
144
+ def addControl(type,name,caption,x,y,w,h,style=0)
145
+ @_vr_layoutframe = VRGridLayoutFrame.new unless @_vr_layoutframe
146
+ r=vr_addControlOriginal(type,name,caption,0,@controls.size*10,10,10,style)
147
+ @_vr_layoutframe.register(r,x,y,w,h)
148
+ rearrange
149
+ return r
150
+ end
151
+ end
152
+
153
+ module VRFullsizeLayoutManager
154
+ =begin
155
+ == VRFullsizeLayoutManager
156
+ This is a LayoutManager for only one control, whose size is full size
157
+ on the window.
158
+ === Methods
159
+ --- addControl(type,name,caption,astyle)
160
+ You can call this method only once.
161
+ =end
162
+
163
+
164
+ include VRVertLayoutManager
165
+ VR_ADDCONTROL_FEWARGS=true
166
+
167
+ def addControl(*arg)
168
+ super
169
+ def self.addControl(*arg)
170
+ raise "addControl twice"
171
+ end
172
+ end
173
+ end