exerb 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
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