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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/ChangeLog.ja.rd +305 -0
- data/README.en.txt +12 -0
- data/README.ja.html +143 -0
- data/README.ja.txt +6 -0
- data/README.md +50 -0
- data/Rakefile +205 -0
- data/bin/exerb +185 -0
- data/bin/mkexy +47 -0
- data/doc/LGPL +513 -0
- data/doc/class.ja.html +92 -0
- data/doc/command.ja.html +109 -0
- data/doc/core.ja.html +72 -0
- data/doc/example.ja.html +89 -0
- data/doc/faq.ja.html +59 -0
- data/doc/inside.ja.rd +404 -0
- data/doc/license.ja.html +62 -0
- data/doc/logo.gif +0 -0
- data/doc/misc.ja.html +72 -0
- data/doc/navi.gif +0 -0
- data/doc/recipe.ja.html +317 -0
- data/doc/style.css +187 -0
- data/doc/tutorial.ja.html +182 -0
- data/example/Makefile +54 -0
- data/example/cat_n.rb +14 -0
- data/example/exception.rb +9 -0
- data/example/ext/Win32API.so +0 -0
- data/example/ext/swin.so +0 -0
- data/example/msgbox.rb +14 -0
- data/example/rubytk.rb +22 -0
- data/example/runtime.ico +0 -0
- data/example/runtime.rb +19 -0
- data/example/vr/clipboard.rb +106 -0
- data/example/vr/compat/rubycompat.rb +18 -0
- data/example/vr/compat/vrcomctl.rb +12 -0
- data/example/vr/compat/vrcontrol.rb +50 -0
- data/example/vr/compat/vrmmedia.rb +24 -0
- data/example/vr/contrib/inifile.rb +116 -0
- data/example/vr/contrib/msgboxconst.rb +55 -0
- data/example/vr/contrib/toolbar.rb +371 -0
- data/example/vr/contrib/vrctlcolor.rb +110 -0
- data/example/vr/contrib/vrhotkey.rb +35 -0
- data/example/vr/contrib/vrlistviewex.rb +71 -0
- data/example/vr/contrib/vrstdscrollbar.rb +414 -0
- data/example/vr/contrib/vrwincomponent.rb +54 -0
- data/example/vr/dragdropformat.rb +209 -0
- data/example/vr/rscutil.rb +168 -0
- data/example/vr/sysmod.rb +249 -0
- data/example/vr/vractivex.rb +56 -0
- data/example/vr/vrclipboard.rb +53 -0
- data/example/vr/vrcomctl.rb +1819 -0
- data/example/vr/vrcontrol.rb +1374 -0
- data/example/vr/vrdde.rb +623 -0
- data/example/vr/vrddrop.rb +190 -0
- data/example/vr/vrdialog.rb +406 -0
- data/example/vr/vrhandler.rb +195 -0
- data/example/vr/vrlayout.old.rb +209 -0
- data/example/vr/vrlayout.rb +173 -0
- data/example/vr/vrlayout2.rb +340 -0
- data/example/vr/vrmargin.rb +141 -0
- data/example/vr/vrmgdlayout.rb +381 -0
- data/example/vr/vrmmedia.rb +287 -0
- data/example/vr/vrolednd.rb +192 -0
- data/example/vr/vrowndraw.rb +108 -0
- data/example/vr/vrrichedit.rb +366 -0
- data/example/vr/vrtimer.rb +148 -0
- data/example/vr/vrtooltip.rb +273 -0
- data/example/vr/vrtray.rb +143 -0
- data/example/vr/vrtvitem.rb +118 -0
- data/example/vr/vrtwopane.rb +223 -0
- data/example/vr/vruby.rb +1051 -0
- data/example/vr/winconst.rb +158 -0
- data/example/vruby.rb +38 -0
- data/exerb.gemspec +26 -0
- data/extconf.rb +7 -0
- data/lib/exerb/archive.rb +143 -0
- data/lib/exerb/config.rb +51 -0
- data/lib/exerb/error.rb +15 -0
- data/lib/exerb/executable.rb +68 -0
- data/lib/exerb/file_table.rb +189 -0
- data/lib/exerb/mkexy.rb +81 -0
- data/lib/exerb/name_table.rb +120 -0
- data/lib/exerb/recipe.rb +465 -0
- data/lib/exerb/resource.rb +190 -0
- data/lib/exerb/resource/base.rb +29 -0
- data/lib/exerb/resource/binary.rb +31 -0
- data/lib/exerb/resource/dialog.rb +30 -0
- data/lib/exerb/resource/group_icon.rb +85 -0
- data/lib/exerb/resource/icon.rb +52 -0
- data/lib/exerb/resource/version_info.rb +155 -0
- data/lib/exerb/resource_library.rb +120 -0
- data/lib/exerb/utility.rb +95 -0
- data/lib/exerb/utility2.rb +122 -0
- data/lib/exerb/version.rb +13 -0
- data/lib/exerb/win32/const/resource.rb +51 -0
- data/lib/exerb/win32/icon_file.rb +78 -0
- data/lib/exerb/win32/pe_file.rb +59 -0
- data/lib/exerb/win32/resource_directory.rb +105 -0
- data/lib/exerb/win32/resource_directory_root.rb +67 -0
- data/lib/exerb/win32/resource_entry.rb +98 -0
- data/lib/exerb/win32/struct/base.rb +43 -0
- data/lib/exerb/win32/struct/icon_dir_entry.rb +83 -0
- data/lib/exerb/win32/struct/icon_header.rb +43 -0
- data/lib/exerb/win32/struct/icon_res_entry.rb +48 -0
- data/lib/exerb/win32/struct/image_dos_header.rb +73 -0
- data/lib/exerb/win32/struct/image_file_header.rb +47 -0
- data/lib/exerb/win32/struct/image_nt_headers32.rb +53 -0
- data/lib/exerb/win32/struct/image_optional_header32.rb +107 -0
- data/lib/exerb/win32/struct/image_resource_data_entry.rb +45 -0
- data/lib/exerb/win32/struct/image_resource_directory.rb +47 -0
- data/lib/exerb/win32/struct/image_resource_directory_entry.rb +72 -0
- data/lib/exerb/win32/struct/image_section_header.rb +53 -0
- data/lib/exerb/win32/struct/version_info_block.rb +75 -0
- data/lib/exerb/win32/struct/vs_fixed_file_info.rb +62 -0
- data/src/exerb/cui.c +48 -0
- data/src/exerb/default.rb +1 -0
- data/src/exerb/exerb.c +877 -0
- data/src/exerb/exerb.h +92 -0
- data/src/exerb/gui.c +176 -0
- data/src/exerb/module.c +138 -0
- data/src/exerb/module.h +7 -0
- data/src/exerb/patch.c +27 -0
- data/src/exerb/resource.h +22 -0
- data/src/exerb/resource.rc +121 -0
- data/src/exerb/ruby.ico +0 -0
- data/src/exerb/utility.c +263 -0
- data/src/exerb/utility.h +33 -0
- data/test/alltests.rb +16 -0
- data/test/test-argv.rb +26 -0
- data/test/test-argv/test-argv.rb +9 -0
- data/test/test-argv/test-argv.ret +1 -0
- data/test/test-dollarzero.rb +26 -0
- data/test/test-dollarzero/test-dollarzero.rb +10 -0
- data/test/test-dollarzero/test-dollarzero.ret +2 -0
- data/test/test-dot.rb +26 -0
- data/test/test-dot/dot.dot.dot.rb +9 -0
- data/test/test-dot/dot.dot.rb +9 -0
- data/test/test-dot/test-dot.rb +13 -0
- data/test/test-dot/test-dot.ret +5 -0
- data/test/test-exitcode.rb +28 -0
- data/test/test-exitcode/test-exitcode.rb +9 -0
- data/test/test-kcode.rb +43 -0
- data/test/test-kcode/euc.rb +10 -0
- data/test/test-kcode/euc.ret +2 -0
- data/test/test-kcode/none.rb +10 -0
- data/test/test-kcode/none.ret +2 -0
- data/test/test-kcode/sjis.rb +10 -0
- data/test/test-kcode/sjis.ret +2 -0
- data/test/test-kcode/utf8.rb +10 -0
- data/test/test-kcode/utf8.ret +2 -0
- data/test/test-loadpath.rb +24 -0
- data/test/test-loadpath/test-loadpath.rb +9 -0
- data/test/test-nest.rb +18 -0
- data/test/test-nest/foo.rb +1 -0
- data/test/test-nest/foo/bar.rb +2 -0
- data/test/test-nest/foo/foo.rb +1 -0
- data/test/test-nest/test-nest.rb +1 -0
- data/test/test-nest/test-nest.ret +1 -0
- data/test/test-preload.rb +24 -0
- data/test/test-preload/test-preload.rb +9 -0
- data/test/test-regexp.rb +26 -0
- data/test/test-regexp/test-regexp.rb +23 -0
- data/test/test-regexp/test-regexp.ret +13 -0
- data/test/test-require1.rb +26 -0
- data/test/test-require1/require1.rb +9 -0
- data/test/test-require1/require2.rb +9 -0
- data/test/test-require1/require3.rb +9 -0
- data/test/test-require1/require4.rb +9 -0
- data/test/test-require1/require5.rb +9 -0
- data/test/test-require1/require6.rb +9 -0
- data/test/test-require1/test-require1.rb +41 -0
- data/test/test-require1/test-require1.ret +27 -0
- data/test/test-socket.rb +26 -0
- data/test/test-socket/test-socket.rb +7 -0
- data/test/test-socket/test-socket.ret +1 -0
- data/test/testcase.rb +66 -0
- data/vendor/mkexports.rb +167 -0
- metadata +352 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
###################################
|
|
2
|
+
#
|
|
3
|
+
# vrlayout2.rb
|
|
4
|
+
# Programmed by nyasu <nyasu@osk.3web.ne.jp>
|
|
5
|
+
# Copyright 2000-2005 Nishikawa,Yasuhiro
|
|
6
|
+
#
|
|
7
|
+
# More information at http://vruby.sourceforge.net/index.html
|
|
8
|
+
#
|
|
9
|
+
###################################
|
|
10
|
+
|
|
11
|
+
require 'Win32API'
|
|
12
|
+
|
|
13
|
+
class VRLayoutFrame
|
|
14
|
+
=begin
|
|
15
|
+
== VRLayoutFrame
|
|
16
|
+
This is a base class for layout frames.
|
|
17
|
+
|
|
18
|
+
=== Methods
|
|
19
|
+
--- register(*controls)
|
|
20
|
+
Registers controls for LayoutFrame
|
|
21
|
+
--- move(x,y,w,h)
|
|
22
|
+
Resizes the layout frame size.
|
|
23
|
+
This re-calculate the registered controls coordinates.
|
|
24
|
+
=end
|
|
25
|
+
|
|
26
|
+
def initialize()
|
|
27
|
+
@_vr_layoutclients=[]
|
|
28
|
+
@_vr_lx,@_vr_ly,@_vr_lw,@_vr_lh = 0,0,10,10
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def register(*cntl)
|
|
32
|
+
@_vr_layoutclients.concat cntl
|
|
33
|
+
_vr_relayout
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def move(x,y,w,h)
|
|
37
|
+
@_vr_lx,@_vr_ly,@_vr_lw,@_vr_lh = x,y,w,h
|
|
38
|
+
_vr_relayout
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def _vr_relayout
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class VRVertLayoutFrame < VRLayoutFrame
|
|
47
|
+
=begin
|
|
48
|
+
== VRVertLayoutFrame
|
|
49
|
+
This is a frame that lays out its controls vertically.
|
|
50
|
+
Use ((|register|)) and ((|move|)) method of VRLayoutFrame
|
|
51
|
+
=end
|
|
52
|
+
|
|
53
|
+
def _vr_relayout
|
|
54
|
+
return if @_vr_layoutclients.size==0
|
|
55
|
+
height = @_vr_lh.to_f / @_vr_layoutclients.size
|
|
56
|
+
@_vr_layoutclients.each_index do |i|
|
|
57
|
+
@_vr_layoutclients[i].move @_vr_lx, @_vr_ly+height*i,@_vr_lw,height
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class VRHorizLayoutFrame < VRLayoutFrame
|
|
63
|
+
=begin
|
|
64
|
+
== VRHorizLayoutFrame
|
|
65
|
+
This is a frame that lays out its controls horizontally.
|
|
66
|
+
Use ((|register|)) and ((|move|)) method of VRLayoutFrame
|
|
67
|
+
=end
|
|
68
|
+
def _vr_relayout
|
|
69
|
+
return if @_vr_layoutclients.size==0
|
|
70
|
+
width = @_vr_lw.to_f / @_vr_layoutclients.size
|
|
71
|
+
@_vr_layoutclients.each_index do |i|
|
|
72
|
+
@_vr_layoutclients[i].move @_vr_lx+width*i, @_vr_ly,width,@_vr_lh
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class VRFullsizeLayoutFrame < VRVertLayoutFrame
|
|
78
|
+
=begin
|
|
79
|
+
== VRFullsizeLayoutFrame
|
|
80
|
+
This is a frame that lays out its one control full-sized.
|
|
81
|
+
Use ((|register|)) and ((|move|)) method of VRLayoutFrame
|
|
82
|
+
((|register|)) method can be called once and accept only one control.
|
|
83
|
+
=end
|
|
84
|
+
|
|
85
|
+
def register(re)
|
|
86
|
+
super
|
|
87
|
+
def self.register
|
|
88
|
+
raise "register twice"
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class VRGridLayoutFrame <VRLayoutFrame
|
|
94
|
+
def initialize(xs,ys)
|
|
95
|
+
super()
|
|
96
|
+
@_vr_xsize=xs
|
|
97
|
+
@_vr_ysize=ys
|
|
98
|
+
@_vr_layoutclients = Array.new
|
|
99
|
+
end
|
|
100
|
+
def setDimention(xs,ys)
|
|
101
|
+
@_vr_xsize=xs
|
|
102
|
+
@_vr_ysize=ys
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def register(cntl,x,y,w,h)
|
|
106
|
+
@_vr_layoutclients.push [cntl,x,y,w,h]
|
|
107
|
+
_vr_relayout
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def _vr_relayout
|
|
111
|
+
@_vr_layoutclients.each do |c|
|
|
112
|
+
c[0].move( @_vr_lw * c[1] / @_vr_xsize,
|
|
113
|
+
@_vr_lh * c[2] / @_vr_ysize,
|
|
114
|
+
@_vr_lw * c[3] / @_vr_xsize,
|
|
115
|
+
@_vr_lh * c[4] / @_vr_ysize)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
class VRTwoPaneFrame
|
|
121
|
+
=begin
|
|
122
|
+
== VRTwoPaneFrame
|
|
123
|
+
This is a base class for twopane frames.
|
|
124
|
+
|
|
125
|
+
=== Methods
|
|
126
|
+
--- register(*controls)
|
|
127
|
+
--- move(x,y,w,h)
|
|
128
|
+
same as ((<VRLayoutFrame>))
|
|
129
|
+
--- setup(parent)
|
|
130
|
+
Call this method to combine the frame to the window.
|
|
131
|
+
--- window_parent
|
|
132
|
+
Find the first actual window object from its parent or ancestors.
|
|
133
|
+
=end
|
|
134
|
+
SPLITTER_MOVEWINDOW=0
|
|
135
|
+
SPLITTER_DRAWLINE=1
|
|
136
|
+
@@_vr_paned_splitter_movingmethod = SPLITTER_DRAWLINE
|
|
137
|
+
|
|
138
|
+
def splitter_operation_type
|
|
139
|
+
@@_vr_paned_splitter_movingmethod
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def splitter_operation_type=(tp)
|
|
143
|
+
@@_vr_paned_splitter_movingmethod=tp
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
attr :ratio,1
|
|
147
|
+
attr :separatorheight,1
|
|
148
|
+
|
|
149
|
+
Cursor="Size"
|
|
150
|
+
|
|
151
|
+
PatBlt = Win32API.new("gdi32","PatBlt","IIIIII","I")
|
|
152
|
+
|
|
153
|
+
module VRTwoPaneFrameUsable
|
|
154
|
+
attr :_vr_twopaneframes,1
|
|
155
|
+
|
|
156
|
+
def _vr_twopaneframesinit
|
|
157
|
+
return if defined?(@_vr_twopaneframes) # no init twice
|
|
158
|
+
@_vr_twopaneframes = Array.new
|
|
159
|
+
@_vr_current_tpframe=nil
|
|
160
|
+
addHandler(
|
|
161
|
+
WMsg::WM_LBUTTONUP, "vrsepl2buttonup", MSGTYPE::ARGINTSINTSINT,nil)
|
|
162
|
+
addHandler(
|
|
163
|
+
WMsg::WM_LBUTTONDOWN,"vrsepl2buttondown",MSGTYPE::ARGINTSINTSINT,nil)
|
|
164
|
+
addHandler(
|
|
165
|
+
WMsg::WM_MOUSEMOVE, "vrsepl2mousemove", MSGTYPE::ARGINTSINTSINT,nil)
|
|
166
|
+
|
|
167
|
+
acceptEvents [
|
|
168
|
+
WMsg::WM_LBUTTONUP,WMsg::WM_LBUTTONDOWN,WMsg::WM_MOUSEMOVE
|
|
169
|
+
]
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def self_vrsepl2buttondown(s,x,y)
|
|
173
|
+
@_vr_twopaneframes.each do |f|
|
|
174
|
+
if f.hittest(x,y)
|
|
175
|
+
f.setDragCur
|
|
176
|
+
f.dragstart
|
|
177
|
+
@_vr_current_tpframe=f
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def self_vrsepl2buttonup(s,x,y)
|
|
183
|
+
@_vr_current_tpframe=nil
|
|
184
|
+
@_vr_twopaneframes.each do |f|
|
|
185
|
+
f.dragend
|
|
186
|
+
end
|
|
187
|
+
refresh
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def self_vrsepl2mousemove(s,x,y)
|
|
191
|
+
@_vr_twopaneframes.each do |f|
|
|
192
|
+
if f.hittest(x,y)
|
|
193
|
+
f.setDragCur
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
if @_vr_current_tpframe then
|
|
197
|
+
@_vr_current_tpframe.splitterDragging(x,y)
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def window_parent
|
|
203
|
+
a=self
|
|
204
|
+
while(! a.is_a?(SWin::Window) ) do
|
|
205
|
+
a = a.instance_eval("@parent")
|
|
206
|
+
end
|
|
207
|
+
return a
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def initialize(pane1,pane2)
|
|
211
|
+
@pane1,@pane2 = pane1,pane2
|
|
212
|
+
@_vr_dragging=false
|
|
213
|
+
@ratio=0.5
|
|
214
|
+
@separatorheight=4
|
|
215
|
+
@_vr_splitter_last=nil
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def hittest(x,y)
|
|
219
|
+
return unless @_vr_lxs
|
|
220
|
+
if (@_vr_lxs < x) and (x < @_vr_lxe) and
|
|
221
|
+
(@_vr_lys < y) and (y < @_vr_lye)
|
|
222
|
+
then
|
|
223
|
+
true
|
|
224
|
+
else
|
|
225
|
+
false
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
def setDragCur
|
|
230
|
+
@_vr_app.setCursor @_vr_dragcur if @_vr_app
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def dragstart
|
|
234
|
+
@parent.setCapture
|
|
235
|
+
@_vr_dragging=true
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
def dragend
|
|
239
|
+
return unless @_vr_dragging
|
|
240
|
+
@parent.releaseCapture
|
|
241
|
+
@_vr_dragging=false
|
|
242
|
+
splitterDragEnd
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def setup(parent)
|
|
246
|
+
raise "setup twice" if defined? @parent
|
|
247
|
+
@parent = parent
|
|
248
|
+
@_vr_app = parent.instance_eval("@screen.application") # parent.application
|
|
249
|
+
@_vr_dragcur = eval("@_vr_app::SysCursors::#{self.class::Cursor}()")
|
|
250
|
+
parent.extend VRTwoPaneFrameUsable
|
|
251
|
+
parent._vr_twopaneframesinit
|
|
252
|
+
parent._vr_twopaneframes.push self
|
|
253
|
+
self
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
def move(x,y,w,h)
|
|
257
|
+
@_vr_lx,@_vr_ly,@_vr_lw,@_vr_lh = x,y,w,h
|
|
258
|
+
self._vr_relayout
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
def splitterDragging(x,y) end
|
|
262
|
+
def splitterDragEnd(x,y) end
|
|
263
|
+
def _vr_relayout() raise "using base class #{self.class}" end
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
class VRVertTwoPaneFrame < VRTwoPaneFrame
|
|
267
|
+
Cursor = "SizeNS"
|
|
268
|
+
def splitterDragEnd
|
|
269
|
+
@_vr_splitter_last=nil
|
|
270
|
+
_vr_relayout
|
|
271
|
+
end
|
|
272
|
+
def splitterDragging(x,y)
|
|
273
|
+
return if y<@separatorheight+@_vr_ly or y>@_vr_ly+@_vr_lh-@separatorheight
|
|
274
|
+
@ratio=(y-@_vr_ly).to_f/@_vr_lh
|
|
275
|
+
|
|
276
|
+
case(splitter_operation_type)
|
|
277
|
+
when SPLITTER_MOVEWINDOW
|
|
278
|
+
_vr_relayout(y-@_vr_ly)
|
|
279
|
+
when SPLITTER_DRAWLINE
|
|
280
|
+
w = window_parent
|
|
281
|
+
w.dopaint do |hdc|
|
|
282
|
+
w.setBrush(RGB(0x255,0x255,0x255))
|
|
283
|
+
if @_vr_splitter_last then
|
|
284
|
+
VRTwoPaneFrame::PatBlt.call(hdc,*@_vr_splitter_last)
|
|
285
|
+
end
|
|
286
|
+
current=[@_vr_lx,y,@_vr_lw,@separatorheight,0x5a0049] # PATINVERT
|
|
287
|
+
VRTwoPaneFrame::PatBlt.call(hdc,*current)
|
|
288
|
+
@_vr_splitter_last = current
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
def _vr_relayout( ys = (@_vr_lh*@ratio).to_i)
|
|
294
|
+
sh=(@separatorheight/2).to_i
|
|
295
|
+
@_vr_lxs,@_vr_lxe = @_vr_lx,@_vr_lx+@_vr_lw
|
|
296
|
+
@_vr_lys,@_vr_lye = @_vr_ly+ys-sh,@_vr_ly+ys+sh
|
|
297
|
+
|
|
298
|
+
@pane1.move @_vr_lx,@_vr_ly, @_vr_lw,ys-sh
|
|
299
|
+
@pane2.move @_vr_lx,@_vr_lys+@separatorheight, @_vr_lw,@_vr_lh-ys-sh
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
class VRHorizTwoPaneFrame < VRTwoPaneFrame
|
|
304
|
+
Cursor = "SizeWE"
|
|
305
|
+
def splitterDragEnd
|
|
306
|
+
@_vr_splitter_last=nil
|
|
307
|
+
_vr_relayout
|
|
308
|
+
end
|
|
309
|
+
def splitterDragging(x,y)
|
|
310
|
+
return if x<@separatorheight+@_vr_lx or x>@_vr_lx+@_vr_lw-@separatorheight
|
|
311
|
+
@ratio=(x-@_vr_lx).to_f/@_vr_lw
|
|
312
|
+
|
|
313
|
+
case(splitter_operation_type)
|
|
314
|
+
when SPLITTER_MOVEWINDOW
|
|
315
|
+
_vr_relayout(x-@_vr_lx)
|
|
316
|
+
when SPLITTER_DRAWLINE
|
|
317
|
+
w = window_parent
|
|
318
|
+
w.dopaint do |hdc|
|
|
319
|
+
w.setBrush(RGB(0x255,0x255,0x255))
|
|
320
|
+
if @_vr_splitter_last then
|
|
321
|
+
VRTwoPaneFrame::PatBlt.call(hdc,*@_vr_splitter_last)
|
|
322
|
+
end
|
|
323
|
+
current=[x,@_vr_ly,@separatorheight,@_vr_lh,0x5a0049] # PATINVERT
|
|
324
|
+
VRTwoPaneFrame::PatBlt.call(hdc,*current)
|
|
325
|
+
@_vr_splitter_last = current
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
def _vr_relayout( xs = (@_vr_lw*@ratio).to_i)
|
|
333
|
+
sh=(@separatorheight/2).to_i
|
|
334
|
+
@_vr_lxs,@_vr_lxe = @_vr_lx+xs-sh,@_vr_lx+xs+sh
|
|
335
|
+
@_vr_lys,@_vr_lye = @_vr_ly,@_vr_ly+@_vr_lh
|
|
336
|
+
|
|
337
|
+
@pane1.move @_vr_lx,@_vr_ly, xs-sh,@_vr_lh
|
|
338
|
+
@pane2.move @_vr_lxs+@separatorheight,@_vr_ly, @_vr_lw-xs-sh,@_vr_lh
|
|
339
|
+
end
|
|
340
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
###################################
|
|
2
|
+
#
|
|
3
|
+
# vrmargin.rb
|
|
4
|
+
#
|
|
5
|
+
# Programmed by yukimi_sake <yukimi_sake@mbi.nifty.com>
|
|
6
|
+
# Copyright 2003-2004 Yukio Sakaue
|
|
7
|
+
#
|
|
8
|
+
###################################
|
|
9
|
+
|
|
10
|
+
require 'vr/vruby'
|
|
11
|
+
require 'vr/vrhandler'
|
|
12
|
+
|
|
13
|
+
module VRMargin
|
|
14
|
+
=begin
|
|
15
|
+
== VRMargin
|
|
16
|
+
This is a module to space itself from parent window on resized.
|
|
17
|
+
Also useable for layout flames and two panes.
|
|
18
|
+
=== Methods
|
|
19
|
+
--- initMargin(left=nil,top=nil,right=nil,bottom=nil)
|
|
20
|
+
Call this method first to use margin and set each margins.
|
|
21
|
+
If the margins are set to nil,the control becomes original size.
|
|
22
|
+
--- setMargin(left=nil,top=nil,right=nil,bottom=nil)
|
|
23
|
+
Set all margins
|
|
24
|
+
--- mgLeft
|
|
25
|
+
--- mgLeft=
|
|
26
|
+
Get/Set left margin.
|
|
27
|
+
--- mgTop
|
|
28
|
+
--- mgTop=
|
|
29
|
+
Get/Set top margin.
|
|
30
|
+
---mgRight
|
|
31
|
+
---mgRight=
|
|
32
|
+
Get/Set right margin.
|
|
33
|
+
--- mgBottom
|
|
34
|
+
--- mgBottom=
|
|
35
|
+
Get/Set bottom margin.
|
|
36
|
+
=end
|
|
37
|
+
|
|
38
|
+
def initMargin(left=nil,top=nil,right=nil,bottom=nil)
|
|
39
|
+
if respond_to?(:vrinit)
|
|
40
|
+
extend MarginForWindow
|
|
41
|
+
vrinit
|
|
42
|
+
@__org_x,@__org_y,@__org_w,@__org_h=x,y,w,h
|
|
43
|
+
@_mg_x,@_mg_y,@_mg_w,@_mg_h = x,y,w,h
|
|
44
|
+
else
|
|
45
|
+
extend MarginForClass
|
|
46
|
+
mgLeft = 0 unless left
|
|
47
|
+
mgTop = 0 unless top
|
|
48
|
+
mgRight = 0 unless right
|
|
49
|
+
mgBottom = 0 unless bottom
|
|
50
|
+
end
|
|
51
|
+
@_mg_top=top
|
|
52
|
+
@_mg_bottom=bottom
|
|
53
|
+
@_mg_left=left
|
|
54
|
+
@_mg_right=right
|
|
55
|
+
self
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def mgTop(); @_mg_top; end
|
|
59
|
+
def mgBottom(); @_mg_bottom; end
|
|
60
|
+
def mgLeft(); @_mg_left; end
|
|
61
|
+
def mgRight(); @_mg_right;end
|
|
62
|
+
|
|
63
|
+
def setMargin(left=nil,top=nil,right=nil,bottom=nil)
|
|
64
|
+
@_mg_top=top
|
|
65
|
+
@_mg_bottom=bottom
|
|
66
|
+
@_mg_left=left
|
|
67
|
+
@_mg_right=right
|
|
68
|
+
self.move(@_mg_x,@_mg_y,@_mg_w,@_mg_h)if @_mg_x&&@_mg_y&&@_mg_w&&@_mg_h
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def mgTop=(t)
|
|
72
|
+
@_mg_top=t
|
|
73
|
+
self.move(@_mg_x,@_mg_y,@_mg_w,@_mg_h)
|
|
74
|
+
end
|
|
75
|
+
def mgBottom=(b)
|
|
76
|
+
@_mg_bottom=b
|
|
77
|
+
self.move(@_mg_x,@_mg_y,@_mg_w,@_mg_h)
|
|
78
|
+
end
|
|
79
|
+
def mgLeft=(l)
|
|
80
|
+
@_mg_left=l
|
|
81
|
+
self.move(@_mg_x,@_mg_y,@_mg_w,@_mg_h)
|
|
82
|
+
end
|
|
83
|
+
def mgRight=(r)
|
|
84
|
+
@_mg_right=r
|
|
85
|
+
self.move(@_mg_x,@_mg_y,@_mg_w,@_mg_h)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
module MarginForClass
|
|
89
|
+
def move(x,y,w,h)
|
|
90
|
+
return unless x || y || w || h
|
|
91
|
+
@_mg_x,@_mg_y,@_mg_w,@_mg_h = x,y,w,h
|
|
92
|
+
_x = x + @_mg_left
|
|
93
|
+
_w = w - @_mg_right - @_mg_left
|
|
94
|
+
_y = y + @_mg_top
|
|
95
|
+
_h = h - @_mg_bottom - @_mg_top
|
|
96
|
+
super(_x,_y,_w,_h)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
module MarginForWindow
|
|
101
|
+
def move(x,y,w,h)
|
|
102
|
+
@_mg_x,@_mg_y,@_mg_w,@_mg_h = x,y,w,h
|
|
103
|
+
if @_mg_left then
|
|
104
|
+
if @_mg_right then
|
|
105
|
+
_x = x + @_mg_left
|
|
106
|
+
_w = w - @_mg_right - @_mg_left
|
|
107
|
+
else
|
|
108
|
+
_x = x + @_mg_left
|
|
109
|
+
_w = @__org_w
|
|
110
|
+
end
|
|
111
|
+
else
|
|
112
|
+
if @_mg_right then
|
|
113
|
+
_x = w - @_mg_right + x - @__org_w
|
|
114
|
+
_w = @__org_w
|
|
115
|
+
else
|
|
116
|
+
_x = @__org_x
|
|
117
|
+
_w = @__org_w
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
if @_mg_top then
|
|
122
|
+
if @_mg_bottom then
|
|
123
|
+
_y = y + @_mg_top
|
|
124
|
+
_h = h - @_mg_bottom - @_mg_top
|
|
125
|
+
else
|
|
126
|
+
_y = y + @_mg_top
|
|
127
|
+
_h = @__org_h
|
|
128
|
+
end
|
|
129
|
+
else
|
|
130
|
+
if @_mg_bottom then
|
|
131
|
+
_y = y+h-@__org_h-@_mg_bottom
|
|
132
|
+
_h = @__org_h
|
|
133
|
+
else
|
|
134
|
+
_y = @__org_y
|
|
135
|
+
_h = @__org_h
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
super(_x,_y,_w,_h)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|