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,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