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
|
Binary file
|
data/example/ext/swin.so
ADDED
|
Binary file
|
data/example/msgbox.rb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
#==============================================================================#
|
|
3
|
+
# $Id: msgbox.rb,v 1.2 2003/12/09 16:36:38 yuya Exp $
|
|
4
|
+
#==============================================================================#
|
|
5
|
+
|
|
6
|
+
require 'Win32API'
|
|
7
|
+
|
|
8
|
+
#==============================================================================#
|
|
9
|
+
|
|
10
|
+
message_box = Win32API.new('user32', 'MessageBoxA', 'LPPI', 'I')
|
|
11
|
+
message_box.call(0, 'Message Box', 'Example', 0)
|
|
12
|
+
|
|
13
|
+
#==============================================================================#
|
|
14
|
+
#==============================================================================#
|
data/example/rubytk.rb
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
#==============================================================================#
|
|
3
|
+
# $Id: rubytk.rb,v 1.3 2006/07/06 04:26:40 yuya Exp $
|
|
4
|
+
#==============================================================================#
|
|
5
|
+
require "tk"
|
|
6
|
+
|
|
7
|
+
#==============================================================================#
|
|
8
|
+
|
|
9
|
+
TkButton.new(nil,
|
|
10
|
+
:text => 'hello',
|
|
11
|
+
:command => proc{print "hello\n"}).pack(:fill=>'x')
|
|
12
|
+
|
|
13
|
+
TkButton.new(nil,
|
|
14
|
+
:text => 'quit',
|
|
15
|
+
:command => proc{exit}).pack(:fill=>'x')
|
|
16
|
+
|
|
17
|
+
#==============================================================================#
|
|
18
|
+
|
|
19
|
+
Tk.mainloop
|
|
20
|
+
|
|
21
|
+
#==============================================================================#
|
|
22
|
+
#==============================================================================#
|
data/example/runtime.ico
ADDED
|
Binary file
|
data/example/runtime.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
#==============================================================================#
|
|
3
|
+
# $Id: runtime.rb,v 1.3 2005/05/05 07:31:57 yuya Exp $
|
|
4
|
+
#==============================================================================#
|
|
5
|
+
|
|
6
|
+
printf("RUBY_VERSION = %s\n", RUBY_VERSION)
|
|
7
|
+
printf("RUBY_RELEASE_DATE = %s\n", RUBY_RELEASE_DATE)
|
|
8
|
+
printf("ExerbRuntime.filepath = %s\n", ExerbRuntime.filepath) if $Exerb
|
|
9
|
+
printf("ExerbRuntime.filename = %s\n", ExerbRuntime.filename) if $Exerb
|
|
10
|
+
|
|
11
|
+
printf("Dir.pwd = %s\n", Dir.pwd)
|
|
12
|
+
printf("__FILE__ = %s\n", __FILE__)
|
|
13
|
+
printf("File.expand_path(__FILE__) = %s\n", File.expand_path(__FILE__))
|
|
14
|
+
printf("File.absolute_path(__FILE__) = %s\n", File.absolute_path(__FILE__))
|
|
15
|
+
|
|
16
|
+
printf("ARGV = %s\n", ARGV)
|
|
17
|
+
|
|
18
|
+
#==============================================================================#
|
|
19
|
+
#==============================================================================#
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
###################################
|
|
2
|
+
#
|
|
3
|
+
# clipboard.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
|
+
VR_DIR="vr/" unless defined?(::VR_DIR)
|
|
12
|
+
require VR_DIR+'sysmod'
|
|
13
|
+
require 'Win32API'
|
|
14
|
+
|
|
15
|
+
class Clipboard
|
|
16
|
+
=begin
|
|
17
|
+
== Clipboard
|
|
18
|
+
A class for handling clipboard.
|
|
19
|
+
|
|
20
|
+
=== Class Method
|
|
21
|
+
--- open(hwnd)
|
|
22
|
+
opens the clipboard and returns the instance.
|
|
23
|
+
When it is used in iterator style, clipboard is automatically closed
|
|
24
|
+
and returns whether it succeed to close clipboard or not.
|
|
25
|
+
|
|
26
|
+
=== Methods
|
|
27
|
+
--- close
|
|
28
|
+
Closes clipboard.
|
|
29
|
+
--- enum_formats
|
|
30
|
+
Enums the clipboard formats to get from clipboard.
|
|
31
|
+
--- getData(format)
|
|
32
|
+
Gets data in the ((|format|)) from clipboard.
|
|
33
|
+
--- setData(format,data)
|
|
34
|
+
Sets data into the clipboard. (clipboard is cleared before set)
|
|
35
|
+
--- getText
|
|
36
|
+
same as getData(VR_CF_TEXT)
|
|
37
|
+
--- setText(string)
|
|
38
|
+
same as setData(VR_CF_TEXT, ((|string|)) )
|
|
39
|
+
=end
|
|
40
|
+
|
|
41
|
+
include ClipboardFormat
|
|
42
|
+
GetClipboardData = Win32API.new('user32','GetClipboardData','I','L')
|
|
43
|
+
SetClipboardData = Win32API.new('user32','SetClipboardData','IL','L')
|
|
44
|
+
EnumClipboardFormats = Win32API.new('user32','EnumClipboardFormats','I','I')
|
|
45
|
+
OpenClipboard = Win32API.new('user32','OpenClipboard','L','I')
|
|
46
|
+
CloseClipboard = Win32API.new('user32','CloseClipboard','V','I')
|
|
47
|
+
EmptyClipboard = Win32API.new('user32','EmptyClipboard','V','I')
|
|
48
|
+
|
|
49
|
+
#
|
|
50
|
+
VR_CF_TEXT = CF_OEMTEXT # modify if you like to use CF_TEXT than CF_OEMTEXT
|
|
51
|
+
|
|
52
|
+
def self.open(*args)
|
|
53
|
+
r = self.new(*args)
|
|
54
|
+
if iterator?
|
|
55
|
+
yield r
|
|
56
|
+
r.close
|
|
57
|
+
else
|
|
58
|
+
return r
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def initialize(hwnd)
|
|
63
|
+
@hwnd = hwnd
|
|
64
|
+
@opened = (OpenClipboard.call(hwnd)!=0)
|
|
65
|
+
raise "fail to open clipboard" unless defined?(@opened)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def close
|
|
69
|
+
@opened = (CloseClipboard.call() == 0)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def getData(uformat)
|
|
73
|
+
raise "Clipboard not opened" unless defined?(@opened)
|
|
74
|
+
gmem = GetClipboardData.call(uformat.to_i)
|
|
75
|
+
raise "GetData failed" if gmem==0
|
|
76
|
+
GMEM::Get(gmem) if gmem!=0
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def setData(uformat,data)
|
|
80
|
+
raise "Clipboard not opened" unless defined? @opened
|
|
81
|
+
EmptyClipboard.call
|
|
82
|
+
gmem = GMEM::AllocStr(66,data)
|
|
83
|
+
SetClipboardData.call(uformat,gmem)
|
|
84
|
+
# GMEM::Free(gmem)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def getText
|
|
88
|
+
r=getData(VR_CF_TEXT)
|
|
89
|
+
r.split(/\0/,0)[0]
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def setText(str)
|
|
93
|
+
setData VR_CF_TEXT,str.to_s
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def enum_formats
|
|
97
|
+
r=0
|
|
98
|
+
while true do
|
|
99
|
+
r=EnumClipboardFormats.call(r)
|
|
100
|
+
break if r==0
|
|
101
|
+
yield r
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'Win32API'
|
|
2
|
+
|
|
3
|
+
if RUBY_VERSION < "1.6" # for 1.5 or 1.4
|
|
4
|
+
def Win32API.new(dll,func,args,retval)
|
|
5
|
+
args = args.split(//) if args.is_a?(String)
|
|
6
|
+
super dll,func,args,retval
|
|
7
|
+
end
|
|
8
|
+
class Object
|
|
9
|
+
alias class :type
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
elsif RUBY_VERSION < "1.7" # for 1.6
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
#elsif RUBY_VERSION < "1.8" # for 1.7
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class VRUpdown < VRNotifyControl
|
|
2
|
+
alias vrinitnew vrinit
|
|
3
|
+
undef vrinitnew
|
|
4
|
+
def vrinit
|
|
5
|
+
super
|
|
6
|
+
addNotifyHandler(WMsg::UDN_DELTAPOS,"deltapos",
|
|
7
|
+
MSGTYPE::ARGSTRUCT,WStruct::NM_UPDOWN)
|
|
8
|
+
addNotifyHandler(WMsg::UDN_DELTAPOS,"changed",
|
|
9
|
+
MSGTYPE::ARGSTRUCT,WStruct::NM_UPDOWN)
|
|
10
|
+
addFilterArg WMsg::UDN_DELTAPOS,"TF"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
unless defined?(VREdit) then
|
|
2
|
+
raise "compatibility file must be loaded after its original one."
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
class VREdit
|
|
6
|
+
alias vrinitnew vrinit
|
|
7
|
+
undef vrinitnew
|
|
8
|
+
def vrinit
|
|
9
|
+
super
|
|
10
|
+
addCommandHandler(0x300,"change",MSGTYPE::ARGNONE,nil)
|
|
11
|
+
addCommandHandler(0x300,"changed",MSGTYPE::ARGNONE,nil)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class VRListbox
|
|
16
|
+
alias vrinitnew vrinit
|
|
17
|
+
undef vrinitnew
|
|
18
|
+
def vrinit
|
|
19
|
+
super
|
|
20
|
+
addCommandHandler(WMsg::LBN_SELCHANGE, "selchange",MSGTYPE::ARGNONE,nil)
|
|
21
|
+
addCommandHandler(WMsg::LBN_SELCHANGE, "selchanged",MSGTYPE::ARGNONE,nil)
|
|
22
|
+
set_liststrings
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
alias getCount :countStrings
|
|
26
|
+
alias selectedIndex :selectedString
|
|
27
|
+
alias getString :getTextOf
|
|
28
|
+
alias itemString :getTextOf
|
|
29
|
+
alias setItemData :setDataOf
|
|
30
|
+
alias getItemData :getDataOf
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class VRCombobox
|
|
34
|
+
alias vrinitnew vrinit
|
|
35
|
+
undef vrinitnew
|
|
36
|
+
def vrinit
|
|
37
|
+
super
|
|
38
|
+
set_liststrings
|
|
39
|
+
addCommandHandler(WMsg::CBN_SELCHANGE, "selchange",MSGTYPE::ARGNONE,nil)
|
|
40
|
+
addCommandHandler(WMsg::CBN_SELCHANGE, "selchanged",MSGTYPE::ARGNONE,nil)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
alias getCount :countStrings
|
|
44
|
+
alias selectedIndex :selectedString
|
|
45
|
+
alias getString :getTextOf
|
|
46
|
+
alias itemString :getTextOf
|
|
47
|
+
alias setItemData :setDataOf
|
|
48
|
+
alias getItemData :getDataOf
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
unless defined?(VREdit) then
|
|
2
|
+
raise "compatibility file must be loaded after its original one."
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class VRMediaView
|
|
7
|
+
def vr_e_compatibility
|
|
8
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYMODE,"modechange",MSGTYPE::ARGINT,nil)
|
|
9
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYSIZE, "sizechange",MSGTYPE::ARGNONE,nil)
|
|
10
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYMEDIA,"mediachange",MSGTYPE::ARGSTRING,nil)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
alias vrinitnew vrinit
|
|
14
|
+
undef vrinitnew
|
|
15
|
+
def vrinit
|
|
16
|
+
super
|
|
17
|
+
vr_e_compatibility
|
|
18
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYERROR,"onerror",MSGTYPE::ARGINT,nil)
|
|
19
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYMODE,"modechanged",MSGTYPE::ARGINT,nil)
|
|
20
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYSIZE, "sizechanged",MSGTYPE::ARGNONE,nil)
|
|
21
|
+
addMMHandler(VRMediaView::MCIWNDM_NOTIFYMEDIA,"mediachanged",MSGTYPE::ARGSTRING,nil)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
#
|
|
3
|
+
# contrib/inifile.rb
|
|
4
|
+
#
|
|
5
|
+
# These modules/classes are contributed by Yukimi_Sake-san.
|
|
6
|
+
# Distributed at http://vruby.sourceforge.net/index.html
|
|
7
|
+
#
|
|
8
|
+
###############################
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Inifile < Hash
|
|
12
|
+
=begin
|
|
13
|
+
===Inifile
|
|
14
|
+
It makes inifile like Window's in working directory or absolute path.
|
|
15
|
+
|
|
16
|
+
[section]
|
|
17
|
+
key=value
|
|
18
|
+
...
|
|
19
|
+
|
|
20
|
+
===Methods
|
|
21
|
+
---deletekey(section,key)
|
|
22
|
+
Delete ((|key|)) and associated value in ((|section|)).
|
|
23
|
+
---erasesection(section)
|
|
24
|
+
Erase ((|section|)) and associated keys and values.
|
|
25
|
+
---read( section, key, [default=""])
|
|
26
|
+
Read value associated ((|key|)) in ((|section|)).
|
|
27
|
+
If ((|section|)) or ((|key|)) not exists ,value uses ((|default|)).
|
|
28
|
+
---write( section, key, value)
|
|
29
|
+
Write ((|value|)) in assiciated ((|key|)) and ((|section|)).
|
|
30
|
+
If ((|section|)) or ((|key|)) not exists , make them.
|
|
31
|
+
---frash
|
|
32
|
+
Write into ((|inifilename|)) of instance.
|
|
33
|
+
=end
|
|
34
|
+
def initialize(iniFilename) #privatemethod. Use "new(inFilename)" instead.
|
|
35
|
+
sec={}
|
|
36
|
+
section=""
|
|
37
|
+
if File.dirname(iniFilename) == "."
|
|
38
|
+
@fn = Dir.getwd + "/" + iniFilename
|
|
39
|
+
else
|
|
40
|
+
@fn = iniFilename
|
|
41
|
+
end
|
|
42
|
+
if File.exist?(@fn) then
|
|
43
|
+
f=open @fn
|
|
44
|
+
f.each do |t|
|
|
45
|
+
if t =~ /\[.+\]/ then
|
|
46
|
+
section= t.sub(/\[(.+)\]/,'\1').strip
|
|
47
|
+
sec={section=>{}}
|
|
48
|
+
self.update sec
|
|
49
|
+
elsif t =~/.+=/ then
|
|
50
|
+
a=t.split(/=/)
|
|
51
|
+
val={a[0].strip=>a[1].strip}
|
|
52
|
+
self[section].update(val)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
f.close
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def deletekey(section,key)
|
|
60
|
+
self[section.strip].delete(key)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def erasesection(section)
|
|
64
|
+
self.delete(section)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def read( section, key, default="")
|
|
68
|
+
if self[section] && r=self[section][key] then r else default end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def write( section, key, value)
|
|
72
|
+
self.update({section.strip=>{}}) if self[section.strip] == nil
|
|
73
|
+
self[section.strip].update({key.strip => (value.to_s).strip})
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def flash
|
|
77
|
+
f=open @fn,"w"
|
|
78
|
+
self.each do |k,v|
|
|
79
|
+
f.write'['+k+']' +"\n"
|
|
80
|
+
v.each do |k1,v1|
|
|
81
|
+
f.write k1+"="+v1.to_s+"\n"
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
f.close
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
=begin sample
|
|
90
|
+
require 'inifile'
|
|
91
|
+
|
|
92
|
+
ini = Inifile.new ("test.ini") # generate instance and read if
|
|
93
|
+
# targetfile exists
|
|
94
|
+
|
|
95
|
+
p "writing as method"
|
|
96
|
+
ini.write "section1","key11",11
|
|
97
|
+
ini.write "section1","key12",12
|
|
98
|
+
ini.write "section2","key21",21
|
|
99
|
+
ini.write "section2","key22",22
|
|
100
|
+
ini.write "section3","key31",31
|
|
101
|
+
ini.write "section3","key32",32
|
|
102
|
+
p ini.read "section1","key11",101
|
|
103
|
+
p ini.read("section1","key13",103)
|
|
104
|
+
p ini.read("section2","key22",202)
|
|
105
|
+
p ini.read("section2","key23",203)
|
|
106
|
+
p ini.read("section3","key32",302)
|
|
107
|
+
p ini.read("section3","key33",303)
|
|
108
|
+
p "writing as Hash"
|
|
109
|
+
p ini["section1"]["key11"]
|
|
110
|
+
p ini["section2"]
|
|
111
|
+
#ini.deletekey("section1","key12")
|
|
112
|
+
#ini.erasesection("section1")
|
|
113
|
+
|
|
114
|
+
ini.flash # now update inifile
|
|
115
|
+
|
|
116
|
+
=end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
#
|
|
3
|
+
# contrib/msgboxconst.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
|
+
# WConst Module
|
|
13
|
+
module WConst
|
|
14
|
+
|
|
15
|
+
MB_USERICON = 128
|
|
16
|
+
MB_ICONASTERISK = 64
|
|
17
|
+
MB_ICONEXCLAMATION = 0x30
|
|
18
|
+
MB_ICONWARNING = 0x30
|
|
19
|
+
MB_ICONERROR = 16
|
|
20
|
+
MB_ICONHAND = 16
|
|
21
|
+
MB_ICONQUESTION = 32
|
|
22
|
+
MB_OK = 0
|
|
23
|
+
MB_ABORTRETRYIGNORE = 2
|
|
24
|
+
MB_APPLMODAL = 0
|
|
25
|
+
MB_DEFAULT_DESKTOP_ONLY = 0x20000
|
|
26
|
+
MB_HELP = 0x4000
|
|
27
|
+
MB_RIGHT = 0x80000
|
|
28
|
+
MB_RTLREADING = 0x100000
|
|
29
|
+
MB_TOPMOST = 0x40000
|
|
30
|
+
MB_DEFBUTTON1 = 0
|
|
31
|
+
MB_DEFBUTTON2 = 256
|
|
32
|
+
MB_DEFBUTTON3 = 512
|
|
33
|
+
MB_DEFBUTTON4 = 0x300
|
|
34
|
+
MB_ICONINFORMATION = 64
|
|
35
|
+
MB_ICONSTOP = 16
|
|
36
|
+
MB_OKCANCEL = 1
|
|
37
|
+
MB_RETRYCANCEL = 5
|
|
38
|
+
MB_SERVICE_NOTIFICATION = 0x40000
|
|
39
|
+
MB_SETFOREGROUND = 0x10000
|
|
40
|
+
MB_SYSTEMMODAL = 4096
|
|
41
|
+
MB_TASKMODAL = 0x2000
|
|
42
|
+
MB_YESNO = 4
|
|
43
|
+
MB_YESNOCANCEL = 3
|
|
44
|
+
MB_ICONMASK = 240
|
|
45
|
+
MB_DEFMASK = 3840
|
|
46
|
+
MB_MODEMASK = 0x00003000
|
|
47
|
+
MB_MISCMASK = 0x0000c000
|
|
48
|
+
MB_NOFOCUS = 0x00008000
|
|
49
|
+
MB_TYPEMASK = 15
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
#====================================================================#
|
|
54
|
+
# End of source.
|
|
55
|
+
#====================================================================#
|