exerb 6.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
#====================================================================#
|