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