fzeet 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE_CEF +29 -0
- data/checks/Bstr.rb +14 -0
- data/checks/Decimal.rb +27 -0
- data/checks/OSVERSIONINFOEX.rb +14 -0
- data/checks/Point.rb +65 -0
- data/checks/Rect.rb +104 -0
- data/checks/RunAll.rb +2 -0
- data/checks/SafeArray.rb +27 -0
- data/checks/Size.rb +45 -0
- data/checks/SystemTime.rb +43 -0
- data/checks/Variant.rb +160 -0
- data/examples/Control/DateTimePicker.rbw +1 -1
- data/examples/Control/MonthCalendar.rbw +1 -1
- data/examples/Control/{WebBrowser.rbw → WebBrowser/WebBrowser.rbw} +2 -2
- data/examples/Control/{WebBrowser1.rbw → WebBrowser/WebBrowser1.rbw} +0 -0
- data/examples/Control/WebBrowser/WebBrowser2.rbw +24 -0
- data/examples/Control/{WebBrowser3.rbw → WebBrowser/WebBrowser3.rbw} +0 -0
- data/examples/Control/{WebBrowser4.rbw → WebBrowser/WebBrowser4.rbw} +8 -3
- data/examples/Control/{WebBrowser4Sinatra.rb → WebBrowser/WebBrowser4Sinatra.rb} +0 -0
- data/examples/Control/{WebBrowser5.rbw → WebBrowser/WebBrowser5.rbw} +4 -2
- data/examples/Control/WebBrowser/jQueryUI.html +53 -0
- data/examples/Control/WebBrowser/jQueryUI.rbw +26 -0
- data/examples/MDI.rbw +2 -2
- data/examples/Raw/UIRibbon/Command.rbw +3 -3
- data/examples/Raw/UIRibbon/Minimal.rbw +3 -3
- data/examples/Version.rbw +1 -1
- data/lib/fzeet.rb +22 -7
- data/lib/fzeet/windows.rb +82 -5
- data/lib/fzeet/windows/com.rb +1 -318
- data/lib/fzeet/windows/com/Common.rb +318 -0
- data/lib/fzeet/windows/comctl.rb +1 -1
- data/lib/fzeet/windows/comctl/ComboBoxEx.rb +32 -0
- data/lib/fzeet/windows/comctl/DateTimePicker.rb +35 -0
- data/lib/fzeet/windows/comctl/Header.rb +61 -1
- data/lib/fzeet/windows/comctl/ListView.rb +133 -3
- data/lib/fzeet/windows/comctl/MonthCalendar.rb +35 -0
- data/lib/fzeet/windows/comctl/ProgressBar.rb +37 -0
- data/lib/fzeet/windows/comctl/PropertySheet.rb +50 -2
- data/lib/fzeet/windows/comctl/SysLink.rb +37 -0
- data/lib/fzeet/windows/comctl/Tab.rb +56 -0
- data/lib/fzeet/windows/comctl/TreeView.rb +81 -2
- data/lib/fzeet/windows/comctl/UpDown.rb +33 -0
- data/lib/fzeet/windows/comdlg.rb +1 -0
- data/lib/fzeet/windows/comdlg/ColorDialog.rb +41 -0
- data/lib/fzeet/windows/comdlg/Common.rb +87 -0
- data/lib/fzeet/windows/comdlg/FileDialog.rb +133 -0
- data/lib/fzeet/windows/comdlg/FindReplaceDialog.rb +102 -0
- data/lib/fzeet/windows/comdlg/FontDialog.rb +36 -0
- data/lib/fzeet/windows/comdlg/PrintDialog.rb +72 -0
- data/lib/fzeet/{Dialog → windows/comdlg}/ShellFileDialog.rb +0 -0
- data/lib/fzeet/windows/core.rb +5 -0
- data/lib/fzeet/windows/core/Common.rb +324 -0
- data/lib/fzeet/windows/core/Point.rb +42 -0
- data/lib/fzeet/windows/core/Rect.rb +114 -0
- data/lib/fzeet/windows/core/Size.rb +34 -0
- data/lib/fzeet/windows/core/SystemTime.rb +46 -0
- data/lib/fzeet/windows/core/Version.rb +57 -0
- data/lib/fzeet/windows/gdi.rb +1 -62
- data/lib/fzeet/windows/gdi/Common.rb +40 -0
- data/lib/fzeet/windows/gdi/Font.rb +64 -0
- data/lib/fzeet/windows/kernel.rb +1 -92
- data/lib/fzeet/windows/kernel/Common.rb +92 -0
- data/lib/fzeet/windows/libc.rb +1 -1
- data/lib/fzeet/windows/libcef.rb +1 -0
- data/lib/fzeet/windows/mshtml.rb +1 -1135
- data/lib/fzeet/windows/mshtml/Common.rb +1135 -0
- data/lib/fzeet/windows/ole.rb +1 -561
- data/lib/fzeet/windows/ole/Common.rb +112 -0
- data/lib/fzeet/windows/ole/PropVariant.rb +141 -0
- data/lib/fzeet/windows/oleaut.rb +3 -0
- data/lib/fzeet/windows/oleaut/Bstr.rb +39 -0
- data/lib/fzeet/windows/oleaut/Common.rb +187 -0
- data/lib/fzeet/windows/oleaut/SafeArray.rb +104 -0
- data/lib/fzeet/windows/oleaut/Variant.rb +269 -0
- data/lib/fzeet/windows/scintilla.rb +115 -1
- data/lib/fzeet/windows/{SciLexer.dll → scintilla/SciLexer.dll} +0 -0
- data/lib/fzeet/windows/shdocvw.rb +150 -0
- data/lib/fzeet/windows/shell.rb +1 -1
- data/lib/fzeet/windows/shell/Common.rb +94 -2
- data/lib/fzeet/windows/shlwapi.rb +1 -1
- data/lib/fzeet/windows/uiribbon.rb +416 -0
- data/lib/fzeet/windows/urlmon.rb +2 -2
- data/lib/fzeet/windows/user.rb +20 -0
- data/lib/fzeet/windows/user/Accelerator.rb +45 -0
- data/lib/fzeet/windows/user/Common.rb +3 -2
- data/lib/fzeet/windows/user/Control/Button.rb +54 -0
- data/lib/fzeet/windows/user/Control/ComboBox.rb +44 -1
- data/lib/fzeet/windows/user/Control/Common.rb +88 -1
- data/lib/fzeet/windows/user/Control/Edit.rb +50 -0
- data/lib/fzeet/windows/user/Control/ListBox.rb +69 -0
- data/lib/fzeet/windows/user/Control/Static.rb +31 -0
- data/lib/fzeet/windows/user/Menu.rb +130 -0
- data/lib/fzeet/windows/user/Message.rb +9 -0
- data/lib/fzeet/windows/user/MessageBox.rb +47 -0
- data/lib/fzeet/windows/user/SystemParametersInfo.rb +1 -1
- data/lib/fzeet/windows/user/Window.rb +5 -463
- data/lib/fzeet/{Window → windows/user/Window}/Common.rb +460 -0
- data/lib/fzeet/{Window → windows/user/Window}/Container.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/Dialog.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/MDI.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/View.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/Window.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/WindowMethods.rb +1 -1
- metadata +55 -61
- data/examples/Control/WebBrowser2.rbw +0 -39
- data/lib/fzeet/Accelerator.rb +0 -48
- data/lib/fzeet/Application.rb +0 -71
- data/lib/fzeet/Common.rb +0 -350
- data/lib/fzeet/Control.rb +0 -19
- data/lib/fzeet/Control/Button.rb +0 -57
- data/lib/fzeet/Control/ComboBox.rb +0 -46
- data/lib/fzeet/Control/ComboBoxEx.rb +0 -35
- data/lib/fzeet/Control/Common.rb +0 -89
- data/lib/fzeet/Control/DateTimePicker.rb +0 -38
- data/lib/fzeet/Control/Edit.rb +0 -53
- data/lib/fzeet/Control/ExplorerBrowser.rb +0 -66
- data/lib/fzeet/Control/Header.rb +0 -63
- data/lib/fzeet/Control/ListBox.rb +0 -72
- data/lib/fzeet/Control/ListView.rb +0 -133
- data/lib/fzeet/Control/MonthCalendar.rb +0 -38
- data/lib/fzeet/Control/ProgressBar.rb +0 -40
- data/lib/fzeet/Control/PropertySheet.rb +0 -51
- data/lib/fzeet/Control/Scintilla.rb +0 -117
- data/lib/fzeet/Control/Static.rb +0 -34
- data/lib/fzeet/Control/SysLink.rb +0 -40
- data/lib/fzeet/Control/Tab.rb +0 -59
- data/lib/fzeet/Control/TreeView.rb +0 -82
- data/lib/fzeet/Control/UpDown.rb +0 -36
- data/lib/fzeet/Control/WebBrowser.rb +0 -153
- data/lib/fzeet/Dialog.rb +0 -6
- data/lib/fzeet/Dialog/ColorDialog.rb +0 -44
- data/lib/fzeet/Dialog/Common.rb +0 -89
- data/lib/fzeet/Dialog/FileDialog.rb +0 -136
- data/lib/fzeet/Dialog/FindReplaceDialog.rb +0 -105
- data/lib/fzeet/Dialog/FontDialog.rb +0 -39
- data/lib/fzeet/Dialog/PrintDialog.rb +0 -75
- data/lib/fzeet/Menu.rb +0 -133
- data/lib/fzeet/UIRibbon.rb +0 -417
- data/lib/fzeet/Window.rb +0 -5
- data/lib/fzeet/windows/common.rb +0 -244
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -144,7 +144,7 @@ module Fzeet
|
|
144
144
|
def location; position.lt end
|
145
145
|
def location=(a) Windows.DetonateLastError(0, :SetWindowPos, @handle, nil, a[0], a[1], 0, 0, Fzeet.flags([:nosize, :nozorder], :swp_)) end
|
146
146
|
|
147
|
-
def size; r = position; Size
|
147
|
+
def size; r = position; Size[r[:right] - r[:left], r[:bottom] - r[:top]] end
|
148
148
|
def size=(a) Windows.DetonateLastError(0, :SetWindowPos, @handle, nil, 0, 0, a[0], a[1], Fzeet.flags([:nomove, :nozorder], :swp_)) end
|
149
149
|
|
150
150
|
def reframe
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fzeet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 13
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
8
|
+
- 6
|
9
|
+
version: 0.6.6
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Radoslav Peev
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2011-01-24 00:00:00 +02:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,12 +25,11 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 1
|
30
28
|
segments:
|
29
|
+
- 1
|
31
30
|
- 0
|
32
|
-
-
|
33
|
-
|
34
|
-
version: 0.6.3
|
31
|
+
- 5
|
32
|
+
version: 1.0.5
|
35
33
|
type: :runtime
|
36
34
|
version_requirements: *id001
|
37
35
|
description:
|
@@ -46,12 +44,14 @@ files:
|
|
46
44
|
- lib/fzeet/windows/com.rb
|
47
45
|
- lib/fzeet/windows/comctl.rb
|
48
46
|
- lib/fzeet/windows/comdlg.rb
|
49
|
-
- lib/fzeet/windows/
|
47
|
+
- lib/fzeet/windows/core.rb
|
50
48
|
- lib/fzeet/windows/gdi.rb
|
51
49
|
- lib/fzeet/windows/kernel.rb
|
52
50
|
- lib/fzeet/windows/libc.rb
|
51
|
+
- lib/fzeet/windows/libcef.rb
|
53
52
|
- lib/fzeet/windows/mshtml.rb
|
54
53
|
- lib/fzeet/windows/ole.rb
|
54
|
+
- lib/fzeet/windows/oleaut.rb
|
55
55
|
- lib/fzeet/windows/propsys.rb
|
56
56
|
- lib/fzeet/windows/scintilla.rb
|
57
57
|
- lib/fzeet/windows/shdocvw.rb
|
@@ -60,7 +60,13 @@ files:
|
|
60
60
|
- lib/fzeet/windows/uiribbon.rb
|
61
61
|
- lib/fzeet/windows/urlmon.rb
|
62
62
|
- lib/fzeet/windows/user.rb
|
63
|
-
- lib/fzeet/windows/
|
63
|
+
- lib/fzeet/windows/core/Common.rb
|
64
|
+
- lib/fzeet/windows/core/Point.rb
|
65
|
+
- lib/fzeet/windows/core/Rect.rb
|
66
|
+
- lib/fzeet/windows/core/Size.rb
|
67
|
+
- lib/fzeet/windows/core/SystemTime.rb
|
68
|
+
- lib/fzeet/windows/core/Version.rb
|
69
|
+
- lib/fzeet/windows/kernel/Common.rb
|
64
70
|
- lib/fzeet/windows/user/Accelerator.rb
|
65
71
|
- lib/fzeet/windows/user/Common.rb
|
66
72
|
- lib/fzeet/windows/user/Control.rb
|
@@ -69,12 +75,21 @@ files:
|
|
69
75
|
- lib/fzeet/windows/user/MessageBox.rb
|
70
76
|
- lib/fzeet/windows/user/SystemParametersInfo.rb
|
71
77
|
- lib/fzeet/windows/user/Window.rb
|
78
|
+
- lib/fzeet/windows/user/Window/Common.rb
|
79
|
+
- lib/fzeet/windows/user/Window/Container.rb
|
80
|
+
- lib/fzeet/windows/user/Window/Dialog.rb
|
81
|
+
- lib/fzeet/windows/user/Window/MDI.rb
|
82
|
+
- lib/fzeet/windows/user/Window/View.rb
|
83
|
+
- lib/fzeet/windows/user/Window/Window.rb
|
84
|
+
- lib/fzeet/windows/user/Window/WindowMethods.rb
|
72
85
|
- lib/fzeet/windows/user/Control/Button.rb
|
73
86
|
- lib/fzeet/windows/user/Control/ComboBox.rb
|
74
87
|
- lib/fzeet/windows/user/Control/Common.rb
|
75
88
|
- lib/fzeet/windows/user/Control/Edit.rb
|
76
89
|
- lib/fzeet/windows/user/Control/ListBox.rb
|
77
90
|
- lib/fzeet/windows/user/Control/Static.rb
|
91
|
+
- lib/fzeet/windows/gdi/Common.rb
|
92
|
+
- lib/fzeet/windows/gdi/Font.rb
|
78
93
|
- lib/fzeet/windows/comctl/Button.rb
|
79
94
|
- lib/fzeet/windows/comctl/ComboBox.rb
|
80
95
|
- lib/fzeet/windows/comctl/ComboBoxEx.rb
|
@@ -90,59 +105,37 @@ files:
|
|
90
105
|
- lib/fzeet/windows/comctl/Tab.rb
|
91
106
|
- lib/fzeet/windows/comctl/TreeView.rb
|
92
107
|
- lib/fzeet/windows/comctl/UpDown.rb
|
108
|
+
- lib/fzeet/windows/scintilla/SciLexer.dll
|
93
109
|
- lib/fzeet/windows/comdlg/ColorDialog.rb
|
94
110
|
- lib/fzeet/windows/comdlg/Common.rb
|
95
111
|
- lib/fzeet/windows/comdlg/FileDialog.rb
|
96
112
|
- lib/fzeet/windows/comdlg/FindReplaceDialog.rb
|
97
113
|
- lib/fzeet/windows/comdlg/FontDialog.rb
|
98
114
|
- lib/fzeet/windows/comdlg/PrintDialog.rb
|
115
|
+
- lib/fzeet/windows/comdlg/ShellFileDialog.rb
|
116
|
+
- lib/fzeet/windows/com/Common.rb
|
117
|
+
- lib/fzeet/windows/ole/Common.rb
|
118
|
+
- lib/fzeet/windows/ole/PropVariant.rb
|
119
|
+
- lib/fzeet/windows/oleaut/Bstr.rb
|
120
|
+
- lib/fzeet/windows/oleaut/Common.rb
|
121
|
+
- lib/fzeet/windows/oleaut/SafeArray.rb
|
122
|
+
- lib/fzeet/windows/oleaut/Variant.rb
|
99
123
|
- lib/fzeet/windows/shell/BrowseForFolder.rb
|
100
124
|
- lib/fzeet/windows/shell/Common.rb
|
101
125
|
- lib/fzeet/windows/shell/FileDialog.rb
|
102
|
-
- lib/fzeet/
|
103
|
-
- lib/fzeet/Application.rb
|
104
|
-
- lib/fzeet/Common.rb
|
105
|
-
- lib/fzeet/Control.rb
|
106
|
-
- lib/fzeet/Dialog.rb
|
107
|
-
- lib/fzeet/Menu.rb
|
108
|
-
- lib/fzeet/UIRibbon.rb
|
109
|
-
- lib/fzeet/Window.rb
|
126
|
+
- lib/fzeet/windows/mshtml/Common.rb
|
110
127
|
- lib/fzeet/windows.rb
|
111
|
-
- lib/fzeet/Window/Common.rb
|
112
|
-
- lib/fzeet/Window/Container.rb
|
113
|
-
- lib/fzeet/Window/Dialog.rb
|
114
|
-
- lib/fzeet/Window/MDI.rb
|
115
|
-
- lib/fzeet/Window/View.rb
|
116
|
-
- lib/fzeet/Window/Window.rb
|
117
|
-
- lib/fzeet/Window/WindowMethods.rb
|
118
|
-
- lib/fzeet/Control/Button.rb
|
119
|
-
- lib/fzeet/Control/ComboBox.rb
|
120
|
-
- lib/fzeet/Control/ComboBoxEx.rb
|
121
|
-
- lib/fzeet/Control/Common.rb
|
122
|
-
- lib/fzeet/Control/DateTimePicker.rb
|
123
|
-
- lib/fzeet/Control/Edit.rb
|
124
|
-
- lib/fzeet/Control/ExplorerBrowser.rb
|
125
|
-
- lib/fzeet/Control/Header.rb
|
126
|
-
- lib/fzeet/Control/ListBox.rb
|
127
|
-
- lib/fzeet/Control/ListView.rb
|
128
|
-
- lib/fzeet/Control/MonthCalendar.rb
|
129
|
-
- lib/fzeet/Control/ProgressBar.rb
|
130
|
-
- lib/fzeet/Control/PropertySheet.rb
|
131
|
-
- lib/fzeet/Control/Scintilla.rb
|
132
|
-
- lib/fzeet/Control/Static.rb
|
133
|
-
- lib/fzeet/Control/SysLink.rb
|
134
|
-
- lib/fzeet/Control/Tab.rb
|
135
|
-
- lib/fzeet/Control/TreeView.rb
|
136
|
-
- lib/fzeet/Control/UpDown.rb
|
137
|
-
- lib/fzeet/Control/WebBrowser.rb
|
138
|
-
- lib/fzeet/Dialog/ColorDialog.rb
|
139
|
-
- lib/fzeet/Dialog/Common.rb
|
140
|
-
- lib/fzeet/Dialog/FileDialog.rb
|
141
|
-
- lib/fzeet/Dialog/FindReplaceDialog.rb
|
142
|
-
- lib/fzeet/Dialog/FontDialog.rb
|
143
|
-
- lib/fzeet/Dialog/PrintDialog.rb
|
144
|
-
- lib/fzeet/Dialog/ShellFileDialog.rb
|
145
128
|
- lib/fzeet.rb
|
129
|
+
- checks/Bstr.rb
|
130
|
+
- checks/Decimal.rb
|
131
|
+
- checks/OSVERSIONINFOEX.rb
|
132
|
+
- checks/Point.rb
|
133
|
+
- checks/Rect.rb
|
134
|
+
- checks/RunAll.rb
|
135
|
+
- checks/SafeArray.rb
|
136
|
+
- checks/Size.rb
|
137
|
+
- checks/SystemTime.rb
|
138
|
+
- checks/Variant.rb
|
146
139
|
- examples/res/applications-graphics-big.bmp
|
147
140
|
- examples/res/applications-graphics-small.bmp
|
148
141
|
- examples/res/applications-graphics.bmp
|
@@ -233,13 +226,15 @@ files:
|
|
233
226
|
- examples/Control/Tab.rbw
|
234
227
|
- examples/Control/TreeView.rbw
|
235
228
|
- examples/Control/UpDown.rbw
|
236
|
-
- examples/Control/WebBrowser.rbw
|
237
|
-
- examples/Control/
|
238
|
-
- examples/Control/
|
239
|
-
- examples/Control/
|
240
|
-
- examples/Control/
|
241
|
-
- examples/Control/
|
242
|
-
- examples/Control/
|
229
|
+
- examples/Control/WebBrowser/jQueryUI.rbw
|
230
|
+
- examples/Control/WebBrowser/WebBrowser.rbw
|
231
|
+
- examples/Control/WebBrowser/WebBrowser1.rbw
|
232
|
+
- examples/Control/WebBrowser/WebBrowser2.rbw
|
233
|
+
- examples/Control/WebBrowser/WebBrowser3.rbw
|
234
|
+
- examples/Control/WebBrowser/WebBrowser4.rbw
|
235
|
+
- examples/Control/WebBrowser/WebBrowser5.rbw
|
236
|
+
- examples/Control/WebBrowser/WebBrowser4Sinatra.rb
|
237
|
+
- examples/Control/WebBrowser/jQueryUI.html
|
243
238
|
- examples/Dialog/ColorDialog.rbw
|
244
239
|
- examples/Dialog/Dialog.rbw
|
245
240
|
- examples/Dialog/DialogApplication.rbw
|
@@ -297,6 +292,7 @@ files:
|
|
297
292
|
- examples/UIRibbon/Control/Spinner.dll
|
298
293
|
- LICENSE
|
299
294
|
- LICENSE_Scintilla
|
295
|
+
- LICENSE_CEF
|
300
296
|
has_rdoc: true
|
301
297
|
homepage: http://github.com/rpeev/Fzeet
|
302
298
|
licenses: []
|
@@ -311,7 +307,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
311
307
|
requirements:
|
312
308
|
- - ">="
|
313
309
|
- !ruby/object:Gem::Version
|
314
|
-
hash: 3
|
315
310
|
segments:
|
316
311
|
- 0
|
317
312
|
version: "0"
|
@@ -320,7 +315,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
315
|
requirements:
|
321
316
|
- - ">="
|
322
317
|
- !ruby/object:Gem::Version
|
323
|
-
hash: 3
|
324
318
|
segments:
|
325
319
|
- 0
|
326
320
|
version: "0"
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'fzeet'
|
2
|
-
|
3
|
-
include Fzeet
|
4
|
-
|
5
|
-
Application.run { |window|
|
6
|
-
(browser = WebBrowser.new(window)).
|
7
|
-
on(:NavigateComplete) {
|
8
|
-
html = <<-HTML
|
9
|
-
<!doctype html>
|
10
|
-
<html>
|
11
|
-
<head>
|
12
|
-
<title>Hello</title>
|
13
|
-
</head>
|
14
|
-
<body>
|
15
|
-
<h1>Hello, world!</h1>
|
16
|
-
</body>
|
17
|
-
</html>
|
18
|
-
HTML
|
19
|
-
|
20
|
-
psa = Windows.SafeArrayCreateVector(Windows::VT_VARIANT, 0, 1)
|
21
|
-
|
22
|
-
FFI::MemoryPointer.new(:pointer) { |pdata|
|
23
|
-
Windows.DetonateHresult(:SafeArrayAccessData, psa, pdata)
|
24
|
-
|
25
|
-
data = Windows::VARIANT.new(pdata.read_pointer)
|
26
|
-
|
27
|
-
data[:vt] = Windows::VT_BSTR
|
28
|
-
data[:bstrVal] = Windows.SysAllocString("#{html}\0".encode('utf-16le'))
|
29
|
-
|
30
|
-
Windows.DetonateHresult(:SafeArrayUnaccessData, psa)
|
31
|
-
|
32
|
-
browser.document.write(psa)
|
33
|
-
}
|
34
|
-
|
35
|
-
Windows.DetonateHresult(:SafeArrayDestroy, psa)
|
36
|
-
}.
|
37
|
-
|
38
|
-
goto('about:blank')
|
39
|
-
}
|
data/lib/fzeet/Accelerator.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require_relative 'Common'
|
2
|
-
|
3
|
-
module Fzeet
|
4
|
-
module AcceleratorTableMethods
|
5
|
-
def translate?(msg, window) Windows.TranslateAccelerator(window.handle, @handle, msg) != 0 end
|
6
|
-
end
|
7
|
-
|
8
|
-
class AcceleratorTable < Handle
|
9
|
-
include AcceleratorTableMethods
|
10
|
-
|
11
|
-
def initialize(*args)
|
12
|
-
FFI::MemoryPointer.new(Windows::ACCEL, args.size) { |paccels|
|
13
|
-
args.each_with_index { |data, i|
|
14
|
-
accel = Windows::ACCEL.new(paccels + i * Windows::ACCEL.size)
|
15
|
-
|
16
|
-
data.unshift(0) if data.size == 2
|
17
|
-
|
18
|
-
accel[:fVirt] = Fzeet.flags(data[0], :f)
|
19
|
-
|
20
|
-
accel[:key] = case key = data[1]
|
21
|
-
when Integer
|
22
|
-
accel[:fVirt] |= Windows::FVIRTKEY
|
23
|
-
|
24
|
-
key
|
25
|
-
when Symbol
|
26
|
-
accel[:fVirt] |= Windows::FVIRTKEY
|
27
|
-
|
28
|
-
((key = key.to_s).length == 1) ? key.upcase.ord : Fzeet.constant(key, :vk_)
|
29
|
-
when String
|
30
|
-
if key.length == 1
|
31
|
-
key.ord
|
32
|
-
else
|
33
|
-
accel[:fVirt] |= Windows::FVIRTKEY
|
34
|
-
|
35
|
-
Fzeet.constant(key, :vk_)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
accel[:cmd] = Command[data[2]]
|
40
|
-
}
|
41
|
-
|
42
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :CreateAcceleratorTable, paccels, args.size); attach
|
43
|
-
}
|
44
|
-
end
|
45
|
-
|
46
|
-
def dispose; Windows.DestroyAcceleratorTable(@handle); detach end
|
47
|
-
end
|
48
|
-
end
|
data/lib/fzeet/Application.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require_relative 'Common'
|
2
|
-
|
3
|
-
module Fzeet
|
4
|
-
class Application
|
5
|
-
@name = File.basename($0, '.rbw')
|
6
|
-
@version = '0.1.0'
|
7
|
-
@authors = []
|
8
|
-
|
9
|
-
@quitWhenMainWindowCloses = true
|
10
|
-
|
11
|
-
@window = nil
|
12
|
-
@accelerators = []
|
13
|
-
@dialogs = []
|
14
|
-
@images = {}
|
15
|
-
Fzeet.using(ScreenDC.new) { |dc|
|
16
|
-
@devcaps = {
|
17
|
-
logpixelsy: Windows.GetDeviceCaps(dc.handle, Windows::LOGPIXELSY)
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
class << self
|
22
|
-
attr_accessor :name, :version, :authors, :quitWhenMainWindowCloses
|
23
|
-
attr_reader :window, :accelerators, :dialogs, :images, :devcaps
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.window=(window)
|
27
|
-
raise 'Application.window already set.' if @window
|
28
|
-
|
29
|
-
@window = window
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.run(windowOrOpts = {}, &block)
|
33
|
-
@window = case windowOrOpts
|
34
|
-
when BasicWindow; windowOrOpts.tap { |window| block.call(window) if block }
|
35
|
-
when Hash
|
36
|
-
if windowOrOpts[:deferCreateWindow].tap { windowOrOpts.delete_if { |k, v| k == :deferCreateWindow } }
|
37
|
-
Window.new(windowOrOpts, &block)
|
38
|
-
else
|
39
|
-
Window.new(windowOrOpts).tap { |window| block.call(window) if block }
|
40
|
-
end
|
41
|
-
else raise ArgumentError
|
42
|
-
end
|
43
|
-
|
44
|
-
return 0 if window.handle.null?
|
45
|
-
|
46
|
-
@window.on(:destroy) { quit } if @quitWhenMainWindowCloses
|
47
|
-
|
48
|
-
@window.show.update
|
49
|
-
|
50
|
-
msg = Message.new
|
51
|
-
|
52
|
-
while msg.get!
|
53
|
-
msg.translate.dispatch unless
|
54
|
-
(window.client && Windows.TranslateMDISysAccel(window.client.handle, msg) != 0) ||
|
55
|
-
accelerators.any? { |table| table.translate?(msg, @window) } ||
|
56
|
-
dialogs.any? { |dialog| dialog.dlgmsg?(msg) }
|
57
|
-
end
|
58
|
-
|
59
|
-
msg[:wParam]
|
60
|
-
rescue
|
61
|
-
Fzeet.message %Q{#{$!}\n\n#{$!.backtrace.join("\n")}}, icon: :error
|
62
|
-
end
|
63
|
-
|
64
|
-
def self.quit(code = 0)
|
65
|
-
accelerators.each(&:dispose)
|
66
|
-
images.values.each(&:dispose)
|
67
|
-
|
68
|
-
Windows.PostQuitMessage(code)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
data/lib/fzeet/Common.rb
DELETED
@@ -1,350 +0,0 @@
|
|
1
|
-
require_relative 'windows'
|
2
|
-
|
3
|
-
module Fzeet
|
4
|
-
Windows.DetonateLastError(0, :InitCommonControlsEx,
|
5
|
-
Windows::INITCOMMONCONTROLSEX.new.tap { |icc|
|
6
|
-
icc[:dwSize] = icc.size
|
7
|
-
icc[:dwICC] = \
|
8
|
-
Windows::ICC_WIN95_CLASSES |
|
9
|
-
Windows::ICC_DATE_CLASSES |
|
10
|
-
Windows::ICC_USEREX_CLASSES |
|
11
|
-
Windows::ICC_COOL_CLASSES |
|
12
|
-
Windows::ICC_INTERNET_CLASSES |
|
13
|
-
Windows::ICC_PAGESCROLLER_CLASS
|
14
|
-
}
|
15
|
-
)
|
16
|
-
|
17
|
-
Windows.EnableVisualStyles
|
18
|
-
|
19
|
-
Windows.DetonateLastError(0, :SetProcessDPIAware) if Windows::WINVER.AtLeastWindowsVista?
|
20
|
-
|
21
|
-
Windows.InitializeOle
|
22
|
-
|
23
|
-
def constant(c, *prefixes)
|
24
|
-
return c if c.kind_of?(Integer) || c.kind_of?(FFI::Pointer)
|
25
|
-
|
26
|
-
c = c.upcase
|
27
|
-
|
28
|
-
prefixes.map! { |prefix|
|
29
|
-
prefix = prefix.upcase
|
30
|
-
|
31
|
-
"#{prefix}#{c}".tap { |name|
|
32
|
-
return Windows.const_get(name) if Windows.const_defined?(name)
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
raise "Constant not found: #{c} (tried: #{prefixes.join(', ')})."
|
37
|
-
end
|
38
|
-
|
39
|
-
def flags(flags, *prefixes)
|
40
|
-
return flags if flags.kind_of?(Integer)
|
41
|
-
|
42
|
-
[*flags].inject(0) { |flags, flag| flags |= constant(flag, *prefixes) }
|
43
|
-
end
|
44
|
-
|
45
|
-
module_function :constant, :flags
|
46
|
-
|
47
|
-
module Toggle
|
48
|
-
def toggle(what)
|
49
|
-
send("#{what}=", !send("#{what}?"))
|
50
|
-
|
51
|
-
begin
|
52
|
-
yield self
|
53
|
-
ensure
|
54
|
-
toggle(what)
|
55
|
-
end if block_given?
|
56
|
-
|
57
|
-
self
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
class Command
|
62
|
-
@ids = {
|
63
|
-
OK: Windows::IDOK,
|
64
|
-
CANCEL: Windows::IDCANCEL,
|
65
|
-
}
|
66
|
-
@nextId = Windows::WM_APP + 1
|
67
|
-
|
68
|
-
def self.[](id)
|
69
|
-
return id if id.kind_of?(Integer)
|
70
|
-
|
71
|
-
id = id.upcase
|
72
|
-
|
73
|
-
@ids[id], @nextId = @nextId, @nextId + 1 unless @ids.include?(id)
|
74
|
-
|
75
|
-
@ids[id]
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
class DialogResult
|
80
|
-
def initialize(id)
|
81
|
-
@id = id
|
82
|
-
end
|
83
|
-
|
84
|
-
attr_reader :id
|
85
|
-
|
86
|
-
Windows.constants.grep(/^ID[A-Z]{2,}$/).each { |c|
|
87
|
-
define_method("#{c[2..-1].downcase}?") {
|
88
|
-
@id == Windows.const_get(c)
|
89
|
-
}
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
def message(message, opts = {})
|
94
|
-
_opts = {
|
95
|
-
window: Application.window,
|
96
|
-
caption: Application.name,
|
97
|
-
buttons: [:ok],
|
98
|
-
icon: :information
|
99
|
-
}
|
100
|
-
badopts = opts.keys - _opts.keys; raise "Bad option(s): #{badopts.join(', ')}." unless badopts.empty?
|
101
|
-
_opts.merge!(opts)
|
102
|
-
|
103
|
-
defbutton = nil
|
104
|
-
defbutton = if [*_opts[:buttons]].find.with_index { |button, i| defbutton = i + 1; button =~ /^[A-Z]/ }
|
105
|
-
constant(defbutton.to_s, :mb_defbutton)
|
106
|
-
else
|
107
|
-
0
|
108
|
-
end
|
109
|
-
|
110
|
-
flags = constant([*_opts[:buttons]].join(''), :mb_) | defbutton | constant(_opts[:icon], :mb_icon)
|
111
|
-
|
112
|
-
DialogResult.new(
|
113
|
-
Windows.DetonateLastError(0, :MessageBox, _opts[:window] && _opts[:window].handle, message.to_s, _opts[:caption].to_s, flags)
|
114
|
-
)
|
115
|
-
end
|
116
|
-
|
117
|
-
def question(message, opts = {})
|
118
|
-
opts[:buttons] ||= [:yes, :no]
|
119
|
-
opts[:icon] ||= :question
|
120
|
-
|
121
|
-
message(message, opts)
|
122
|
-
end
|
123
|
-
|
124
|
-
def shell(name, args = nil, dir = nil, verb = 'open')
|
125
|
-
raise 'ShellExecute failed.' unless Windows.ShellExecute(nil, verb, name, args, dir, Windows::SW_NORMAL).to_i > 32
|
126
|
-
end
|
127
|
-
|
128
|
-
module_function :message, :question, :shell
|
129
|
-
|
130
|
-
class Point < Windows::POINT
|
131
|
-
def initialize(x = 0, y = 0) self[:x], self[:y] = x, y end
|
132
|
-
|
133
|
-
def to_a; [self[:x], self[:y]] end
|
134
|
-
|
135
|
-
def client!(window) Windows.DetonateLastError(0, :ScreenToClient, window.handle, self); self end
|
136
|
-
def screen!(window) Windows.DetonateLastError(0, :ClientToScreen, window.handle, self); self end
|
137
|
-
end
|
138
|
-
|
139
|
-
class Size < Windows::SIZE
|
140
|
-
def initialize(cx = 0, cy = 0) self[:cx], self[:cy] = cx, cy end
|
141
|
-
|
142
|
-
def to_a; [self[:cx], self[:cy]] end
|
143
|
-
end
|
144
|
-
|
145
|
-
class Rect < Windows::RECT
|
146
|
-
def initialize(l = 0, t = 0, r = 0, b = 0) self[:left], self[:top], self[:right], self[:bottom] = l, t, r, b end
|
147
|
-
|
148
|
-
def to_a; [self[:left], self[:top], self[:right], self[:bottom]] end
|
149
|
-
|
150
|
-
def lt; Point.new(self[:left], self[:top]) end
|
151
|
-
def lb; Point.new(self[:left], self[:bottom]) end
|
152
|
-
def rt; Point.new(self[:right], self[:top]) end
|
153
|
-
def rb; Point.new(self[:right], self[:bottom]) end
|
154
|
-
end
|
155
|
-
|
156
|
-
class LOGFONT
|
157
|
-
include Toggle
|
158
|
-
end
|
159
|
-
|
160
|
-
class Message < Windows::MSG
|
161
|
-
def get!(window = nil, msgFilterMin = 0, msgFilterMax = 0)
|
162
|
-
Windows.DetonateLastError(-1, :GetMessage, self, window && window.handle, msgFilterMin, msgFilterMax) != 0
|
163
|
-
end
|
164
|
-
|
165
|
-
def translate; Windows.TranslateMessage(self); self end
|
166
|
-
def dispatch; Windows.DispatchMessage(self); self end
|
167
|
-
end
|
168
|
-
|
169
|
-
class Handle
|
170
|
-
@@instances = {}
|
171
|
-
|
172
|
-
def self.instance?(handle) @@instances.include?(handle.to_i) end
|
173
|
-
def self.instance(handle) raise "#{self}.#{__method__} failed." unless (instance = @@instances[handle.to_i]); instance end
|
174
|
-
|
175
|
-
def self.wrap(handle, *ifaces)
|
176
|
-
Object.new.tap { |o|
|
177
|
-
o.instance_variable_set(:@handle, handle)
|
178
|
-
o.class.send(:attr_reader, :handle)
|
179
|
-
ifaces.each { |iface| o.class.send(:include, iface) }
|
180
|
-
}
|
181
|
-
end
|
182
|
-
|
183
|
-
attr_reader :handle
|
184
|
-
|
185
|
-
def attach; @@instances[@handle.to_i] = self end
|
186
|
-
def detach; @@instances.delete(@handle.to_i) end
|
187
|
-
|
188
|
-
def dup; raise "#{self}.#{__method__} is not implemented." end
|
189
|
-
end
|
190
|
-
|
191
|
-
def using(o, cleanup = :dispose)
|
192
|
-
yield o
|
193
|
-
ensure
|
194
|
-
o.send(cleanup)
|
195
|
-
end
|
196
|
-
|
197
|
-
module_function :using
|
198
|
-
|
199
|
-
module IconMethods
|
200
|
-
|
201
|
-
end
|
202
|
-
|
203
|
-
class SystemIcon < Handle
|
204
|
-
include IconMethods
|
205
|
-
|
206
|
-
def initialize(id)
|
207
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :LoadIcon, nil, @id = Fzeet.constant(id, :idi_)); attach
|
208
|
-
end
|
209
|
-
|
210
|
-
attr_reader :id
|
211
|
-
|
212
|
-
def dispose; detach end
|
213
|
-
end
|
214
|
-
|
215
|
-
module CursorMethods
|
216
|
-
|
217
|
-
end
|
218
|
-
|
219
|
-
class SystemCursor < Handle
|
220
|
-
include CursorMethods
|
221
|
-
|
222
|
-
def initialize(id)
|
223
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :LoadCursor, nil, @id = Fzeet.constant(id, :idc_)); attach
|
224
|
-
end
|
225
|
-
|
226
|
-
attr_reader :id
|
227
|
-
|
228
|
-
def dispose; detach end
|
229
|
-
end
|
230
|
-
|
231
|
-
module BrushMethods
|
232
|
-
|
233
|
-
end
|
234
|
-
|
235
|
-
class SystemBrush < Handle
|
236
|
-
include BrushMethods
|
237
|
-
|
238
|
-
def initialize(id)
|
239
|
-
@handle = FFI::Pointer.new((@id = Fzeet.constant(id, :color_, :ctlcolor_)) + 1); attach
|
240
|
-
end
|
241
|
-
|
242
|
-
attr_reader :id
|
243
|
-
|
244
|
-
def dispose; detach end
|
245
|
-
end
|
246
|
-
|
247
|
-
module FontMethods
|
248
|
-
|
249
|
-
end
|
250
|
-
|
251
|
-
class IndirectFont < Handle
|
252
|
-
include FontMethods
|
253
|
-
|
254
|
-
def initialize(logfont)
|
255
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :CreateFontIndirect, @logfont = logfont); attach
|
256
|
-
end
|
257
|
-
|
258
|
-
attr_reader :logfont
|
259
|
-
|
260
|
-
def dispose; Windows.DeleteObject(@handle); detach end
|
261
|
-
end
|
262
|
-
|
263
|
-
module BitmapMethods
|
264
|
-
|
265
|
-
end
|
266
|
-
|
267
|
-
class PARGB32 < Handle
|
268
|
-
include BitmapMethods
|
269
|
-
|
270
|
-
def initialize(path, width = 0, height = 0)
|
271
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :LoadImage,
|
272
|
-
nil,
|
273
|
-
@path = path,
|
274
|
-
Windows::IMAGE_BITMAP,
|
275
|
-
width,
|
276
|
-
height,
|
277
|
-
Windows::LR_LOADFROMFILE | Windows::LR_CREATEDIBSECTION
|
278
|
-
)
|
279
|
-
|
280
|
-
attach
|
281
|
-
end
|
282
|
-
|
283
|
-
attr_reader :path
|
284
|
-
|
285
|
-
def dispose; Windows.DeleteObject(@handle); detach end
|
286
|
-
end
|
287
|
-
|
288
|
-
module DCMethods
|
289
|
-
def select(*objects)
|
290
|
-
holds = []
|
291
|
-
|
292
|
-
objects.each { |object|
|
293
|
-
holds << Windows.DetonateLastError(FFI::Pointer::NULL, :SelectObject, @handle, object.handle)
|
294
|
-
}
|
295
|
-
|
296
|
-
yield self
|
297
|
-
|
298
|
-
self
|
299
|
-
ensure
|
300
|
-
holds.each { |hold| Windows.SelectObject(@handle, hold) }
|
301
|
-
end
|
302
|
-
|
303
|
-
def textExtent(text) Windows.DetonateLastError(0, :GetTextExtentPoint, @handle, text, text.length, s = Size.new); s end
|
304
|
-
|
305
|
-
def color; Windows.GetTextColor(@handle) end
|
306
|
-
def color=(color) Windows.SetTextColor(@handle, color) end
|
307
|
-
|
308
|
-
def background; Windows.GetBkColor(@handle) end
|
309
|
-
def background=(background) Windows.SetBkColor(@handle, background) end
|
310
|
-
|
311
|
-
def fillRect(rect, brush) Windows.DetonateLastError(0, :FillRect, @handle, rect, (brush.kind_of?(FFI::Pointer)) ? brush : brush.handle); self end
|
312
|
-
|
313
|
-
def text(text, rect, flags = 0) Windows.DetonateLastError(0, :DrawText, @handle, text, -1, rect, Fzeet.flags(flags, :dt_)); self end
|
314
|
-
|
315
|
-
def sms(message)
|
316
|
-
r = window.rect
|
317
|
-
|
318
|
-
r[:top] += window.ribbon.height if window.ribbon
|
319
|
-
|
320
|
-
text(message, r, [:singleline, :center, :vcenter])
|
321
|
-
|
322
|
-
self
|
323
|
-
end
|
324
|
-
|
325
|
-
def move(x, y) Windows.DetonateLastError(0, :MoveToEx, @handle, x, y, nil); self end
|
326
|
-
def line(x, y) Windows.DetonateLastError(0, :LineTo, @handle, x, y); self end
|
327
|
-
end
|
328
|
-
|
329
|
-
class ClientDC < Handle
|
330
|
-
include DCMethods
|
331
|
-
|
332
|
-
def initialize(window)
|
333
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :GetDC, (@window = window).handle); attach
|
334
|
-
end
|
335
|
-
|
336
|
-
attr_reader :window
|
337
|
-
|
338
|
-
def dispose; Windows.ReleaseDC(@window.handle, @handle); detach end
|
339
|
-
end
|
340
|
-
|
341
|
-
class ScreenDC < Handle
|
342
|
-
include DCMethods
|
343
|
-
|
344
|
-
def initialize
|
345
|
-
@handle = Windows.DetonateLastError(FFI::Pointer::NULL, :GetDC, nil); attach
|
346
|
-
end
|
347
|
-
|
348
|
-
def dispose; Windows.ReleaseDC(nil, @handle); detach end
|
349
|
-
end
|
350
|
-
end
|