fzeet 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. data/LICENSE_CEF +29 -0
  2. data/checks/Bstr.rb +14 -0
  3. data/checks/Decimal.rb +27 -0
  4. data/checks/OSVERSIONINFOEX.rb +14 -0
  5. data/checks/Point.rb +65 -0
  6. data/checks/Rect.rb +104 -0
  7. data/checks/RunAll.rb +2 -0
  8. data/checks/SafeArray.rb +27 -0
  9. data/checks/Size.rb +45 -0
  10. data/checks/SystemTime.rb +43 -0
  11. data/checks/Variant.rb +160 -0
  12. data/examples/Control/DateTimePicker.rbw +1 -1
  13. data/examples/Control/MonthCalendar.rbw +1 -1
  14. data/examples/Control/{WebBrowser.rbw → WebBrowser/WebBrowser.rbw} +2 -2
  15. data/examples/Control/{WebBrowser1.rbw → WebBrowser/WebBrowser1.rbw} +0 -0
  16. data/examples/Control/WebBrowser/WebBrowser2.rbw +24 -0
  17. data/examples/Control/{WebBrowser3.rbw → WebBrowser/WebBrowser3.rbw} +0 -0
  18. data/examples/Control/{WebBrowser4.rbw → WebBrowser/WebBrowser4.rbw} +8 -3
  19. data/examples/Control/{WebBrowser4Sinatra.rb → WebBrowser/WebBrowser4Sinatra.rb} +0 -0
  20. data/examples/Control/{WebBrowser5.rbw → WebBrowser/WebBrowser5.rbw} +4 -2
  21. data/examples/Control/WebBrowser/jQueryUI.html +53 -0
  22. data/examples/Control/WebBrowser/jQueryUI.rbw +26 -0
  23. data/examples/MDI.rbw +2 -2
  24. data/examples/Raw/UIRibbon/Command.rbw +3 -3
  25. data/examples/Raw/UIRibbon/Minimal.rbw +3 -3
  26. data/examples/Version.rbw +1 -1
  27. data/lib/fzeet.rb +22 -7
  28. data/lib/fzeet/windows.rb +82 -5
  29. data/lib/fzeet/windows/com.rb +1 -318
  30. data/lib/fzeet/windows/com/Common.rb +318 -0
  31. data/lib/fzeet/windows/comctl.rb +1 -1
  32. data/lib/fzeet/windows/comctl/ComboBoxEx.rb +32 -0
  33. data/lib/fzeet/windows/comctl/DateTimePicker.rb +35 -0
  34. data/lib/fzeet/windows/comctl/Header.rb +61 -1
  35. data/lib/fzeet/windows/comctl/ListView.rb +133 -3
  36. data/lib/fzeet/windows/comctl/MonthCalendar.rb +35 -0
  37. data/lib/fzeet/windows/comctl/ProgressBar.rb +37 -0
  38. data/lib/fzeet/windows/comctl/PropertySheet.rb +50 -2
  39. data/lib/fzeet/windows/comctl/SysLink.rb +37 -0
  40. data/lib/fzeet/windows/comctl/Tab.rb +56 -0
  41. data/lib/fzeet/windows/comctl/TreeView.rb +81 -2
  42. data/lib/fzeet/windows/comctl/UpDown.rb +33 -0
  43. data/lib/fzeet/windows/comdlg.rb +1 -0
  44. data/lib/fzeet/windows/comdlg/ColorDialog.rb +41 -0
  45. data/lib/fzeet/windows/comdlg/Common.rb +87 -0
  46. data/lib/fzeet/windows/comdlg/FileDialog.rb +133 -0
  47. data/lib/fzeet/windows/comdlg/FindReplaceDialog.rb +102 -0
  48. data/lib/fzeet/windows/comdlg/FontDialog.rb +36 -0
  49. data/lib/fzeet/windows/comdlg/PrintDialog.rb +72 -0
  50. data/lib/fzeet/{Dialog → windows/comdlg}/ShellFileDialog.rb +0 -0
  51. data/lib/fzeet/windows/core.rb +5 -0
  52. data/lib/fzeet/windows/core/Common.rb +324 -0
  53. data/lib/fzeet/windows/core/Point.rb +42 -0
  54. data/lib/fzeet/windows/core/Rect.rb +114 -0
  55. data/lib/fzeet/windows/core/Size.rb +34 -0
  56. data/lib/fzeet/windows/core/SystemTime.rb +46 -0
  57. data/lib/fzeet/windows/core/Version.rb +57 -0
  58. data/lib/fzeet/windows/gdi.rb +1 -62
  59. data/lib/fzeet/windows/gdi/Common.rb +40 -0
  60. data/lib/fzeet/windows/gdi/Font.rb +64 -0
  61. data/lib/fzeet/windows/kernel.rb +1 -92
  62. data/lib/fzeet/windows/kernel/Common.rb +92 -0
  63. data/lib/fzeet/windows/libc.rb +1 -1
  64. data/lib/fzeet/windows/libcef.rb +1 -0
  65. data/lib/fzeet/windows/mshtml.rb +1 -1135
  66. data/lib/fzeet/windows/mshtml/Common.rb +1135 -0
  67. data/lib/fzeet/windows/ole.rb +1 -561
  68. data/lib/fzeet/windows/ole/Common.rb +112 -0
  69. data/lib/fzeet/windows/ole/PropVariant.rb +141 -0
  70. data/lib/fzeet/windows/oleaut.rb +3 -0
  71. data/lib/fzeet/windows/oleaut/Bstr.rb +39 -0
  72. data/lib/fzeet/windows/oleaut/Common.rb +187 -0
  73. data/lib/fzeet/windows/oleaut/SafeArray.rb +104 -0
  74. data/lib/fzeet/windows/oleaut/Variant.rb +269 -0
  75. data/lib/fzeet/windows/scintilla.rb +115 -1
  76. data/lib/fzeet/windows/{SciLexer.dll → scintilla/SciLexer.dll} +0 -0
  77. data/lib/fzeet/windows/shdocvw.rb +150 -0
  78. data/lib/fzeet/windows/shell.rb +1 -1
  79. data/lib/fzeet/windows/shell/Common.rb +94 -2
  80. data/lib/fzeet/windows/shlwapi.rb +1 -1
  81. data/lib/fzeet/windows/uiribbon.rb +416 -0
  82. data/lib/fzeet/windows/urlmon.rb +2 -2
  83. data/lib/fzeet/windows/user.rb +20 -0
  84. data/lib/fzeet/windows/user/Accelerator.rb +45 -0
  85. data/lib/fzeet/windows/user/Common.rb +3 -2
  86. data/lib/fzeet/windows/user/Control/Button.rb +54 -0
  87. data/lib/fzeet/windows/user/Control/ComboBox.rb +44 -1
  88. data/lib/fzeet/windows/user/Control/Common.rb +88 -1
  89. data/lib/fzeet/windows/user/Control/Edit.rb +50 -0
  90. data/lib/fzeet/windows/user/Control/ListBox.rb +69 -0
  91. data/lib/fzeet/windows/user/Control/Static.rb +31 -0
  92. data/lib/fzeet/windows/user/Menu.rb +130 -0
  93. data/lib/fzeet/windows/user/Message.rb +9 -0
  94. data/lib/fzeet/windows/user/MessageBox.rb +47 -0
  95. data/lib/fzeet/windows/user/SystemParametersInfo.rb +1 -1
  96. data/lib/fzeet/windows/user/Window.rb +5 -463
  97. data/lib/fzeet/{Window → windows/user/Window}/Common.rb +460 -0
  98. data/lib/fzeet/{Window → windows/user/Window}/Container.rb +0 -0
  99. data/lib/fzeet/{Window → windows/user/Window}/Dialog.rb +0 -0
  100. data/lib/fzeet/{Window → windows/user/Window}/MDI.rb +0 -0
  101. data/lib/fzeet/{Window → windows/user/Window}/View.rb +0 -0
  102. data/lib/fzeet/{Window → windows/user/Window}/Window.rb +0 -0
  103. data/lib/fzeet/{Window → windows/user/Window}/WindowMethods.rb +1 -1
  104. metadata +55 -61
  105. data/examples/Control/WebBrowser2.rbw +0 -39
  106. data/lib/fzeet/Accelerator.rb +0 -48
  107. data/lib/fzeet/Application.rb +0 -71
  108. data/lib/fzeet/Common.rb +0 -350
  109. data/lib/fzeet/Control.rb +0 -19
  110. data/lib/fzeet/Control/Button.rb +0 -57
  111. data/lib/fzeet/Control/ComboBox.rb +0 -46
  112. data/lib/fzeet/Control/ComboBoxEx.rb +0 -35
  113. data/lib/fzeet/Control/Common.rb +0 -89
  114. data/lib/fzeet/Control/DateTimePicker.rb +0 -38
  115. data/lib/fzeet/Control/Edit.rb +0 -53
  116. data/lib/fzeet/Control/ExplorerBrowser.rb +0 -66
  117. data/lib/fzeet/Control/Header.rb +0 -63
  118. data/lib/fzeet/Control/ListBox.rb +0 -72
  119. data/lib/fzeet/Control/ListView.rb +0 -133
  120. data/lib/fzeet/Control/MonthCalendar.rb +0 -38
  121. data/lib/fzeet/Control/ProgressBar.rb +0 -40
  122. data/lib/fzeet/Control/PropertySheet.rb +0 -51
  123. data/lib/fzeet/Control/Scintilla.rb +0 -117
  124. data/lib/fzeet/Control/Static.rb +0 -34
  125. data/lib/fzeet/Control/SysLink.rb +0 -40
  126. data/lib/fzeet/Control/Tab.rb +0 -59
  127. data/lib/fzeet/Control/TreeView.rb +0 -82
  128. data/lib/fzeet/Control/UpDown.rb +0 -36
  129. data/lib/fzeet/Control/WebBrowser.rb +0 -153
  130. data/lib/fzeet/Dialog.rb +0 -6
  131. data/lib/fzeet/Dialog/ColorDialog.rb +0 -44
  132. data/lib/fzeet/Dialog/Common.rb +0 -89
  133. data/lib/fzeet/Dialog/FileDialog.rb +0 -136
  134. data/lib/fzeet/Dialog/FindReplaceDialog.rb +0 -105
  135. data/lib/fzeet/Dialog/FontDialog.rb +0 -39
  136. data/lib/fzeet/Dialog/PrintDialog.rb +0 -75
  137. data/lib/fzeet/Menu.rb +0 -133
  138. data/lib/fzeet/UIRibbon.rb +0 -417
  139. data/lib/fzeet/Window.rb +0 -5
  140. data/lib/fzeet/windows/common.rb +0 -244
data/lib/fzeet/Window.rb DELETED
@@ -1,5 +0,0 @@
1
- require_relative 'Window/Window'
2
- require_relative 'Window/View'
3
- require_relative 'Window/Container'
4
- require_relative 'Window/MDI'
5
- require_relative 'Window/Dialog'
@@ -1,244 +0,0 @@
1
- require 'ffi'
2
-
3
- module Fzeet
4
- module Windows
5
- extend FFI::Library
6
-
7
- ffi_lib 'kernel32'
8
- ffi_convention :stdcall
9
-
10
- INVALID_HANDLE_VALUE = FFI::Pointer.new(-1)
11
- INVALID_FILE_SIZE = 0xFFFFFFFF
12
- INVALID_SET_FILE_POINTER = 0xFFFFFFFF
13
- INVALID_FILE_ATTRIBUTES = 0xFFFFFFFF
14
- INVALID_ATOM = 0
15
-
16
- attach_function :GetLastError, [], :ulong
17
- attach_function :SetLastError, [:ulong], :void
18
-
19
- def DetonateLastError(on, name, *args)
20
- raise "#{name} failed (last error #{GetLastError()})." if (failed = [*on].include?(result = send(name, *args)))
21
-
22
- result
23
- ensure
24
- yield failed if block_given?
25
- end
26
-
27
- module_function :DetonateLastError
28
-
29
- class OSVERSIONINFOEX < FFI::Struct
30
- layout \
31
- :dwOSVersionInfoSize, :ulong,
32
- :dwMajorVersion, :ulong,
33
- :dwMinorVersion, :ulong,
34
- :dwBuildNumber, :ulong,
35
- :dwPlatformId, :ulong,
36
- :szCSDVersion, [:char, 128],
37
- :wServicePackMajor, :ushort,
38
- :wServicePackMinor, :ushort,
39
- :wSuiteMask, :ushort,
40
- :wProductType, :uchar,
41
- :wReserved, :uchar
42
-
43
- def major; self[:dwMajorVersion] end
44
- def minor; self[:dwMinorVersion] end
45
- def build; self[:dwBuildNumber] end
46
- def sp; self[:wServicePackMajor] end
47
-
48
- def to_s; "#{major}.#{minor}.#{build} SP#{sp} (#{name})" end
49
-
50
- def name
51
- if Windows2000?; 'Windows 2000'
52
- elsif WindowsXP?; 'Windows XP'
53
- elsif WindowsVista?; 'Windows Vista'
54
- elsif Windows7?; 'Windows 7'
55
- else 'Unknown'
56
- end
57
- end
58
-
59
- def Windows2000?; major == 5 && minor == 0 end
60
- def WindowsXP?; major == 5 && minor == 1 end
61
- def WindowsVista?; major == 6 && minor == 0 end
62
- def Windows7?; major == 6 && minor == 1 end
63
-
64
- def AtLeastWindows2000?; major >= 5 end
65
- def AtLeastWindowsXP?; major > 5 || (major == 5 && minor >= 1) end
66
- def AtLeastWindowsVista?; major >= 6 end
67
- def AtLeastWindows7?; major > 6 || (major == 6 && minor >= 1) end
68
- end
69
-
70
- attach_function :GetVersionEx, :GetVersionExA, [:pointer], :int
71
-
72
- WINVER = OSVERSIONINFOEX.new
73
-
74
- WINVER[:dwOSVersionInfoSize] = WINVER.size
75
-
76
- DetonateLastError(0, :GetVersionEx, WINVER)
77
-
78
- def LOBYTE(w) w & 0xff end
79
- def HIBYTE(w) (w >> 8) & 0xff end
80
- def MAKEWORD(low, high) (low & 0xff) | ((high & 0xff) << 8) end
81
-
82
- def LOWORD(l) l & 0xffff end
83
- def HIWORD(l) (l >> 16) & 0xffff end
84
- def MAKELONG(low, high) (low & 0xffff) | ((high & 0xffff) << 16) end
85
-
86
- def GET_X_LPARAM(l) ((w = LOWORD(l)) > 0x7fff) ? w - 0x1_0000 : w end
87
- def GET_Y_LPARAM(l) ((w = HIWORD(l)) > 0x7fff) ? w - 0x1_0000 : w end
88
-
89
- def LPWSTR(s)
90
- p = FFI::MemoryPointer.new(:uchar, (s.length + 2) * 2)
91
-
92
- "#{s}\0".encode('utf-16le').each_byte.with_index { |b, i| p.put_char(i, b) }
93
-
94
- begin
95
- yield p; return nil
96
- ensure
97
- p.free
98
- end if block_given?
99
-
100
- p
101
- end
102
-
103
- def WCSTOMBS(p)
104
- result = ''
105
-
106
- FFI::MemoryPointer.new(:uchar, len = wcslen(p) + 1) { |buf|
107
- raise 'wcstombs failed.' if wcstombs(buf, p, len) == 0xffffffff
108
-
109
- result << buf.read_string
110
- }
111
-
112
- result
113
- end
114
-
115
- module_function \
116
- :LOBYTE, :HIBYTE, :MAKEWORD,
117
- :LOWORD, :HIWORD, :MAKELONG,
118
- :GET_X_LPARAM, :GET_Y_LPARAM,
119
- :LPWSTR, :WCSTOMBS
120
-
121
- module AnonymousSupport
122
- def [](k)
123
- if members.include?(k)
124
- super
125
- elsif self[:_].members.include?(k)
126
- self[:_][k]
127
- else
128
- self[:_][:_][k]
129
- end
130
- end
131
-
132
- def []=(k, v)
133
- if members.include?(k)
134
- super
135
- elsif self[:_].members.include?(k)
136
- self[:_][k] = v
137
- else
138
- self[:_][:_][k] = v
139
- end
140
- end
141
- end
142
-
143
- class POINT < FFI::Struct
144
- layout \
145
- :x, :long,
146
- :y, :long
147
- end
148
-
149
- class SIZE < FFI::Struct
150
- layout \
151
- :cx, :long,
152
- :cy, :long
153
- end
154
-
155
- class RECT < FFI::Struct
156
- layout \
157
- :left, :long,
158
- :top, :long,
159
- :right, :long,
160
- :bottom, :long
161
- end
162
-
163
- class LOGFONT < FFI::Struct
164
- layout \
165
- :lfHeight, :long,
166
- :lfWidth, :long,
167
- :lfEscapement, :long,
168
- :lfOrientation, :long,
169
- :lfWeight, :long,
170
- :lfItalic, :uchar,
171
- :lfUnderline, :uchar,
172
- :lfStrikeOut, :uchar,
173
- :lfCharSet, :uchar,
174
- :lfOutPrecision, :uchar,
175
- :lfClipPrecision, :uchar,
176
- :lfQuality, :uchar,
177
- :lfPitchAndFamily, :uchar,
178
- :lfFaceName, [:char, 32]
179
-
180
- def face; self[:lfFaceName].to_s end
181
- def face=(face) self[:lfFaceName] = face end
182
-
183
- def size; -Rational(self[:lfHeight] * 72, Application.devcaps[:logpixelsy]) end
184
- def size=(size) self[:lfHeight] = -Windows.MulDiv((size * 10).to_i, Application.devcaps[:logpixelsy], 720) end
185
-
186
- def bold?; self[:lfWeight] >= 700 end
187
- def bold=(bold) self[:lfWeight] = (bold) ? 700 : 0 end
188
-
189
- def italic?; self[:lfItalic] == 1 end
190
- def italic=(italic) self[:lfItalic] = (italic) ? 1 : 0 end
191
-
192
- def underline?; self[:lfUnderline] == 1 end
193
- def underline=(underline) self[:lfUnderline] = (underline) ? 1 : 0 end
194
-
195
- def strikeout?; self[:lfStrikeOut] == 1 end
196
- def strikeout=(strikeout) self[:lfStrikeOut] = (strikeout) ? 1 : 0 end
197
-
198
- def update(from)
199
- case from
200
- when PropertyStore
201
- from.each { |k, v|
202
- case k
203
- when UI_PKEY_FontProperties_Family; self.face = v.wstring
204
- when UI_PKEY_FontProperties_Size; self.size = v.decimal.to_f
205
- when UI_PKEY_FontProperties_Bold; self.bold = v.uint == 2
206
- when UI_PKEY_FontProperties_Italic; self.italic = v.uint == 2
207
- when UI_PKEY_FontProperties_Underline; self.underline = v.uint == 2
208
- when UI_PKEY_FontProperties_Strikethrough; self.strikeout = v.uint == 2
209
- end
210
- }
211
- else raise ArgumentError
212
- end
213
-
214
- self
215
- end
216
- end
217
-
218
- class SYSTEMTIME < FFI::Struct
219
- layout \
220
- :wYear, :ushort,
221
- :wMonth, :ushort,
222
- :wDayOfWeek, :ushort,
223
- :wDay, :ushort,
224
- :wHour, :ushort,
225
- :wMinute, :ushort,
226
- :wSecond, :ushort,
227
- :wMilliseconds, :ushort
228
-
229
- def to_local
230
- Time.local(
231
- self[:wYear], self[:wMonth], self[:wDay],
232
- self[:wHour], self[:wMinute], self[:wSecond], self[:wMilliseconds]
233
- )
234
- end
235
-
236
- def to_utc
237
- Time.utc(
238
- self[:wYear], self[:wMonth], self[:wDay],
239
- self[:wHour], self[:wMinute], self[:wSecond], self[:wMilliseconds]
240
- )
241
- end
242
- end
243
- end
244
- end