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,35 @@
1
+ ###############################
2
+ #
3
+ # contrib/vrhotkey.rb
4
+ #
5
+ # These modules/classes are contributed by Yuya-san.
6
+ # Modified by nyasu <nyasu@osk.3web.ne.jp>
7
+ # Distributed at http://vruby.sourceforge.net/index.html
8
+ #
9
+ ###############################
10
+
11
+
12
+ #====================================================================#
13
+ # WConst Module
14
+ module WConst
15
+ WM_HOTKEY = 786
16
+ end
17
+
18
+ #====================================================================#
19
+ # VRHotKey Module
20
+ module VRHotKey
21
+
22
+ #==================================================================#
23
+ # Instance Methods
24
+
25
+ def vrinit
26
+ super
27
+ self.addHandler(WConst::WM_HOTKEY, 'hotkey', MSGTYPE::ARGWINT, nil)
28
+ self.addEvent(WConst::WM_HOTKEY)
29
+ end
30
+
31
+ end
32
+
33
+ #====================================================================#
34
+ # End of source.
35
+ #====================================================================#
@@ -0,0 +1,71 @@
1
+ ###############################
2
+ #
3
+ # contrib/vrlistviewex.rb
4
+ #
5
+ # These modules/classes are contributed by Yuya-san.
6
+ # Modified by nyasu <nyasu@osk.3web.ne.jp>
7
+ # Distributed at http://vruby.sourceforge.net/index.html
8
+ #
9
+ ###############################
10
+
11
+ #====================================================================#
12
+ # VRListview Class
13
+ class VRListview
14
+
15
+ #==================================================================#
16
+ # Private Instance Methods
17
+
18
+ def exstyle_getter(style)
19
+ return (self.lvexstyle & style) == style
20
+ end
21
+ private :exstyle_getter
22
+
23
+ def exstyle_setter(style, bool)
24
+ if bool
25
+ self.lvexstyle |= style
26
+ else
27
+ self.lvexstyle &= 0xFFFFFFFF - style
28
+ end
29
+ end
30
+ private :exstyle_setter
31
+
32
+ #==================================================================#
33
+ # Instance Methods
34
+
35
+ def row_select
36
+ return exstyle_getter(WExStyle::LVS_EX_FULLROWSELECT)
37
+ end
38
+
39
+ def row_select=(bool)
40
+ exstyle_setter(WExStyle::LVS_EX_FULLROWSELECT, bool)
41
+ end
42
+
43
+ def grid_lines
44
+ return exstyle_getter(WExStyle::LVS_EX_GRIDLINES)
45
+ end
46
+
47
+ def grid_lines=(bool)
48
+ exstyle_setter(WExStyle::LVS_EX_GRIDLINES, bool)
49
+ end
50
+
51
+ def hide_selection
52
+ return !self.winstyle.getter(WStyle::LVS_SHOWSELALWAYS)
53
+ end
54
+
55
+ def hide_selection=(bool)
56
+ self.winstyle.setter(WStyle::LVS_SHOWSELALWAYS, !bool)
57
+ end
58
+
59
+ def extended_select
60
+ return !self.winstyle.getter(WStyle::LVS_SINGLESEL)
61
+ end
62
+
63
+ def extended_select=(bool)
64
+ self.winstyle.setter(WStyle::LVS_SINGLESEL, !bool)
65
+ end
66
+
67
+ end
68
+
69
+ #====================================================================#
70
+ # End of source.
71
+ #====================================================================#
@@ -0,0 +1,414 @@
1
+ ###############################
2
+ #
3
+ # contrib/vrctlcolor.rb
4
+ #
5
+ # These module is contributed by yas-san.
6
+ # Modified by nyasu <nyasu@osk.3web.ne.jp>
7
+ # Distributed at http://vruby.sourceforge.net/index.html
8
+ #
9
+ ###############################
10
+
11
+
12
+ =begin
13
+ == VRStdScrollbar
14
+ �E�C���h�E�͐����Ɛ����̃X�N���[���o�[�������Ă��܂��B
15
+ �X�N���[���o�[�̓E�C���h�E�X�^�C����WS_VSCROLL��WS_HSCROLL���w�肷�邱�Ƃŕ\������܂��B
16
+ ���̃��W���[���̓E�C���h�E�̃X�N���[���o�[���������܂��B
17
+
18
+ ���̃��W���[�����R���g���[���ɑg�ݍ��񂾂Ƃ��̌��ʂ����L�Ɏ����܂��B
19
+
20
+ * ���Ȃ�
21
+ * VRForm
22
+ * VRPanel
23
+ * VRCanvasPanel
24
+ * VRButton
25
+ * VRCheckbox
26
+ * VRRadiobutton
27
+ * SDK�Œ�`�ς݁B�g�ݍ��ޕK�v�͂Ȃ�
28
+ * VREdit
29
+ * VRText
30
+ * VRRichedit
31
+ * VRList
32
+ * ��肠��
33
+ * VRCombobox
34
+ * VREditCombobox
35
+ * VRGroupbox
36
+ * VRStatic
37
+
38
+ === Methods
39
+ --- getVScrollRange
40
+ �����X�N���[���o�[�͈̔͂�Ԃ��܂��B[((|min|)),((|max|))]�̃t�H�[�}�b�g�ŕԂ�܂��B
41
+ ((|min|))�͍ŏ��l�A((|max|))�͍ő�l�ł��B
42
+
43
+ --- setVScrollRange(min,max)
44
+ �����X�N���[���o�[�͈̔͂�ݒ肵�܂��B ((|min|)) �͍ŏ��l�A ((|max|)) �͍ő�l�ł��B
45
+
46
+ --- getHScrollRange
47
+ --- setHScrollRange
48
+ �����X�N���[���o�[�͈̔͂��擾�܂��͐ݒ肵�܂��B ((<getVScrollRange>)),
49
+ ((<setVScrollRange>)) ���Q�Ƃ��Ă��������B
50
+
51
+ --- vscroll_position
52
+ --- vscroll_position=(val)
53
+ �����X�N���[���o�[�̈ʒu���擾�܂��͐ݒ肵�܂��B
54
+
55
+ --- hscroll_position
56
+ --- hscroll_position=(val)
57
+ �����X�N���[���o�[�̈ʒu���擾�܂��͐ݒ肵�܂��B
58
+
59
+ --- vscroll_pagesize
60
+ --- vscroll_pagesize=(val)
61
+ �����X�N���[���o�[�̃y�[�W�T�C�Y���擾�܂��͐ݒ肵�܂��B
62
+ �X�N���[���o�[�́A�S�̂̑傫���Ƃ��̒l�̔䂩��K�؂Ȃ‚܂݂̑傫�������߂܂��B
63
+
64
+ --- hscroll_pagesize
65
+ --- hscroll_pagesize=(val)
66
+ �����X�N���[���o�[�̃y�[�W�T�C�Y���擾�܂��͐ݒ肵�܂��B
67
+ ((<vscroll_pagesize>)),((<vscroll_pagesize=>))���Q�Ƃ��Ă��������B
68
+
69
+ --- vscroll_smallstep
70
+ --- vscroll_smallstep=(val)
71
+ �����X�N���[���o�[�̏������ړ��ʂ��擾�܂��͐ݒ肵�܂��B
72
+ �X�N���[���o�[�̖��{�^�����N���b�N���ꂽ�ꍇ�A���̒l�̓X�N���[���o�[��
73
+ �ʒu�։������܂��B
74
+
75
+ --- hscroll_smallstep
76
+ --- hscroll_smallstep=(val)
77
+ �����X�N���[���o�[�̏������ړ��ʂ��擾�܂��͐ݒ肵�܂��B
78
+ ((<hscroll_smallstep>)),((<hscroll_smallstep=>))���Q�Ƃ��Ă��������B
79
+
80
+ --- vscroll_longstep
81
+ --- vscroll_longstep=(val)
82
+ �����X�N���[���o�[�̑傫���ړ��ʂ��擾�܂��͐ݒ肵�܂��B
83
+ �X�N���[���o�[�̔w�i���N���b�N���ꂽ�ꍇ�A���̒l�̓X�N���[���o�[��
84
+ �ʒu�։������܂��B
85
+
86
+ --- hscroll_longstep
87
+ --- hscroll_longstep=(val)
88
+ �����X�N���[���o�[�̑傫���ړ��ʂ��擾�܂��͐ݒ肵�܂��B
89
+ ((<hscroll_longstep>)),((<hscroll_longstep=>))���Q�Ƃ��Ă��������B
90
+
91
+ === Events
92
+ --- vscroll(code)
93
+ --- hscroll(code)
94
+ �����܂��͐����X�N���[���o�[���������ꂽ�B((|code|))�̓��[�U�[���v������
95
+ �X�N���[������̈Ӗ��������܂��B�ڂ�����MSDN��WM_VSCROLL�̍����Q�Ƃ��Ă��������B
96
+
97
+ == VRStdScrollbar
98
+ The windows have vertical and the horizontal scroll bar.
99
+ The scroll bar is displayed by specifying WS_VSCROLL or WS_HSCROLL of the window style.
100
+ This module processes the scroll bars on the window.
101
+
102
+ Result of using this module
103
+
104
+ * no problem
105
+ * VRForm
106
+ * VRPanel
107
+ * VRCanvasPanel
108
+ * VRButton
109
+ * VRCheckbox
110
+ * VRRadiobutton
111
+ * defined by SDK. no necessity to include.
112
+ * VREdit
113
+ * VRText
114
+ * VRRichedit
115
+ * VRList
116
+ * not effective.
117
+ * VRCombobox
118
+ * VREditCombobox
119
+ * VRGroupbox
120
+ * VRStatic
121
+
122
+ === Methods
123
+ --- getVScrollRange
124
+ returns the range of the vertical scroll bars. It returns by the format of
125
+ [((|min|)), ((|max|))] .((|min|)) is the minimum value and ((|max|)) is maximum.
126
+
127
+ --- setVScrollRange(min,max)
128
+ Specifies the range of the vertical scroll bar.
129
+ ((|min|)) is the minimum value and ((|max|)) is maximum.
130
+
131
+ --- getHScrollRange
132
+ --- setHScrollRange
133
+ Retrieves or specifies range of the horizontal scroll bar.
134
+ Refer to ((<getVScrollRange>)) , ((<setVScrollRange>))
135
+
136
+ --- vscroll_position
137
+ --- vscroll_position=(val)
138
+ Retrieves or Specifies position of the vertical scroll bar.
139
+
140
+ --- hscroll_position
141
+ --- hscroll_position=(val)
142
+ Retrieves or Specifies position of the horizontal scroll bar.
143
+
144
+ --- vscroll_pagesize
145
+ --- vscroll_pagesize=(val)
146
+ Retrieves or Specifies the page size of vertical scroll bar.
147
+ A scroll bar uses this value to determine the appropriate size of
148
+ the proportional scroll box.
149
+
150
+ --- hscroll_pagesize
151
+ --- hscroll_pagesize=(val)
152
+ Retrieves or Specifies the page size of horizontal scroll bar.
153
+ Refer to ((<vscroll_pagesize>)),((<vscroll_pagesize=>))
154
+
155
+ --- vscroll_smallstep
156
+ --- vscroll_smallstep=(val)
157
+ Retrieves or Specifies the small step of the vertical scroll bar.
158
+ If the arrow button of the scroll bar was clicked, this value is added to
159
+ the position of the scroll bar.
160
+
161
+ --- hscroll_smallstep
162
+ --- hscroll_smallstep=(val)
163
+ Retrieves or Specifies the small step of the horizontal scroll bar.
164
+ Refer to ((<hscroll_smallstep>)),((<hscroll_smallstep=>))
165
+
166
+ --- vscroll_longstep
167
+ --- vscroll_longstep=(val)
168
+ Retrieves or Specifies the long step of the vertical scroll bar.
169
+ If the background of the scroll bar was clicked, this value is added to
170
+ the position of the scroll bar.
171
+
172
+ --- hscroll_longstep
173
+ --- hscroll_longstep=(val)
174
+ Retrieves or Specifies the long step of the horizontal scroll bar.
175
+ Refer to ((<hscroll_longstep>)),((<hscroll_longstep=>))
176
+
177
+ === Events
178
+ --- vscroll(code)
179
+ --- hscroll(code)
180
+ the vertical or horizontal scroll bar was moved.((|code|)) that indicates
181
+ the user's scrolling request. Refer to the paragraph of WM_VSCROLL in MSDN
182
+
183
+ =end
184
+
185
+ module VRStdScrollbar
186
+ include VRMessageHandler
187
+
188
+ SB_HORZ=0
189
+ SB_VERT=1
190
+ SB_CTL=2
191
+
192
+ private
193
+
194
+ #mask of scroll info
195
+ SIF_RANGE=0x0001
196
+ SIF_PAGE=0x0002
197
+ SIF_POS=0x0004
198
+ SIF_DISABLENOSCROLL=0x0008
199
+ SIF_TRACKPOS=0x0010
200
+ SIF_ALL=(SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
201
+
202
+ SetScrollInfo=Win32API.new('user32','SetScrollInfo',%w(l l p l),'l')
203
+ GetScrollInfo=Win32API.new('user32','GetScrollInfo',%w(l l p),'l')
204
+
205
+ def stdscrollbarinit
206
+ addHandler WMsg::WM_HSCROLL,"hstdscroll",MSGTYPE::ARGINTINT,nil
207
+ addHandler WMsg::WM_VSCROLL,"vstdscroll",MSGTYPE::ARGINTINT,nil
208
+ acceptEvents [ WMsg::WM_HSCROLL,WMsg::WM_VSCROLL]
209
+ @scroll_smallstep_vert=1 ; @scroll_smallstep_horz=1
210
+ @scroll_longstep_vert=10 ; @scroll_longstep_horz=10
211
+ end
212
+
213
+ def setScrollInfo(btyp,mask=SIF_ALL,min=0,max=100,page=100,pos=0)
214
+ si=[4*7,mask,min,max,page,pos,0].pack(WStruct::SCROLLINFO)
215
+ SetScrollInfo.call(self.hWnd,btyp,si,1)
216
+ end
217
+
218
+ def getScrollInfo(btyp)
219
+ si=[4*7,SIF_ALL,0,0,0,0,0].pack(WStruct::SCROLLINFO)
220
+ GetScrollInfo.call(self.hWnd,btyp,si)
221
+ return si.unpack(WStruct::SCROLLINFO)
222
+ end
223
+
224
+ public
225
+
226
+ def vrinit
227
+ super
228
+ stdscrollbarinit
229
+ end
230
+
231
+ def getScrollRange(bar_type)
232
+ return getScrollInfo(bar_type)[2,3]
233
+ end
234
+
235
+ def getVScrollRange
236
+ return getScrollRange(SB_VERT)
237
+ end
238
+
239
+ def getHScrollRange
240
+ return getScrollRange(SB_HORZ)
241
+ end
242
+
243
+ def setScrollRange(min,max,bar_type)
244
+ setScrollInfo(bar_type,SIF_RANGE,min.to_i,max.to_i)
245
+ end
246
+
247
+ def setVScrollRange(min,max)
248
+ setScrollRange(min,max,SB_VERT)
249
+ end
250
+
251
+ def setHScrollRange(min,max)
252
+ setScrollRange(min,max,SB_HORZ)
253
+ end
254
+
255
+ def scroll_position(bar_type)
256
+ return getScrollInfo(bar_type)[5]
257
+ end
258
+
259
+ def vscroll_position
260
+ return scroll_position(SB_VERT)
261
+ end
262
+
263
+ def hscroll_position
264
+ return scroll_position(SB_HORZ)
265
+ end
266
+
267
+ def setScrollPosition(val,bar_type)
268
+ setScrollInfo(bar_type,SIF_POS,0,0,0,val.to_i)
269
+ end
270
+
271
+ def vscroll_position=(val)
272
+ setScrollPosition(val,SB_VERT)
273
+ end
274
+
275
+ def hscroll_position=(val)
276
+ setScrollPosition(val,SB_HORZ)
277
+ end
278
+
279
+ def scroll_pagesize(bar_type)
280
+ return getScrollInfo(bar_type)[4]
281
+ end
282
+
283
+ def vscroll_pagesize
284
+ return scroll_pagesize(SB_VERT)
285
+ end
286
+
287
+ def hscroll_pagesize
288
+ return scroll_pagesize(SB_HORZ)
289
+ end
290
+
291
+ def setScrollPagesize(p,bar_type)
292
+ setScrollInfo(bar_type,SIF_PAGE,0,0,p.to_i,0)
293
+ end
294
+
295
+ def vscroll_pagesize=(p)
296
+ setScrollPagesize(p,SB_VERT)
297
+ end
298
+
299
+ def hscroll_pagesize=(p)
300
+ setScrollPagesize(p,SB_HORZ)
301
+ end
302
+
303
+ def scroll_smallstep(bar_type)
304
+ res=case bar_type
305
+ when SB_HORZ
306
+ @scroll_smallstep_horz
307
+ when SB_VERT
308
+ @scroll_smallstep_vert
309
+ else
310
+ 1
311
+ end
312
+ return res
313
+ end
314
+
315
+ def vscroll_smallstep
316
+ return scroll_smallstep(SB_VERT)
317
+ end
318
+
319
+ def hscroll_smallstep
320
+ return scroll_smallstep(SB_HORZ)
321
+ end
322
+
323
+ def setScrollSmallstep(stp,bar_type)
324
+ case bar_type
325
+ when SB_HORZ
326
+ @scroll_smallstep_horz=stp
327
+ when SB_VERT
328
+ @scroll_smallstep_vert=stp
329
+ end
330
+ end
331
+
332
+ def vscroll_smallstep=(stp)
333
+ setScrollSmallstep(stp,SB_VERT)
334
+ end
335
+
336
+ def hscroll_smallstep=(stp)
337
+ setScrollSmallstep(stp,SB_HORZ)
338
+ end
339
+
340
+ def scroll_longstep(bar_type)
341
+ res=case bar_type
342
+ when SB_HORZ
343
+ @scroll_longstep_horz
344
+ when SB_VERT
345
+ @scroll_longstep_vert
346
+ else
347
+ 10
348
+ end
349
+ return res
350
+ end
351
+
352
+ def vscroll_longstep
353
+ return scroll_longstep(SB_VERT)
354
+ end
355
+
356
+ def hscroll_longstep
357
+ return scroll_longstep(SB_HORZ)
358
+ end
359
+
360
+ def setScrollLongstep(stp,bar_type)
361
+ case bar_type
362
+ when SB_HORZ
363
+ @scroll_longstep_horz=stp
364
+ when SB_VERT
365
+ @scroll_longstep_vert=stp
366
+ end
367
+ end
368
+
369
+ def vscroll_longstep=(stp)
370
+ setScrollLongstep(stp,SB_VERT)
371
+ end
372
+
373
+ def hscroll_longstep=(stp)
374
+ setScrollLongstep(stp,SB_HORZ)
375
+ end
376
+
377
+ def self_vrstdscroll(wparam,hwnd,bar_type)
378
+ srl=self
379
+ code=LOWORD(wparam)
380
+ if code==4 then
381
+ pos=HIWORD(wparam)
382
+ else
383
+ pos=srl.scroll_position(bar_type)
384
+ end
385
+ new_pos=case code
386
+ when 0
387
+ pos-srl.scroll_smallstep(bar_type)
388
+ when 1
389
+ pos+srl.scroll_smallstep(bar_type)
390
+ when 2
391
+ pos-srl.scroll_longstep(bar_type)
392
+ when 3
393
+ pos+srl.scroll_longstep(bar_type)
394
+ when 4
395
+ pos
396
+ else
397
+ nil
398
+ end
399
+ if new_pos
400
+ srl.setScrollPosition(new_pos,bar_type)
401
+ end
402
+ return code
403
+ end
404
+
405
+ def self_hstdscroll(wparam,hwnd)
406
+ code=self_vrstdscroll(wparam,hwnd,SB_HORZ)
407
+ selfmsg_dispatching(:hscroll,code)
408
+ end
409
+
410
+ def self_vstdscroll(wparam,hwnd)
411
+ code=self_vrstdscroll(wparam,hwnd,SB_VERT)
412
+ selfmsg_dispatching(:vscroll,code)
413
+ end
414
+ end