fzeet 0.6.1 → 0.6.2

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 (68) hide show
  1. data/examples/UIRibbon/ApplicationModes.dll +0 -0
  2. data/examples/UIRibbon/ApplicationModes.rb +40 -0
  3. data/examples/UIRibbon/ApplicationModes.rbw +14 -0
  4. data/examples/UIRibbon/ApplicationModes.xml +83 -0
  5. data/examples/UIRibbon/Color.rbw +1 -1
  6. data/examples/UIRibbon/Control/Button.dll +0 -0
  7. data/examples/UIRibbon/Control/Button.rb +9 -5
  8. data/examples/UIRibbon/Control/Button.rbw +3 -1
  9. data/examples/UIRibbon/Control/Button.xml +6 -0
  10. data/examples/UIRibbon/Control/ColorPicker.dll +0 -0
  11. data/examples/UIRibbon/Control/ColorPicker.rb +55 -0
  12. data/examples/UIRibbon/Control/ColorPicker.rbw +91 -0
  13. data/examples/UIRibbon/Control/ColorPicker.xml +131 -0
  14. data/examples/UIRibbon/Control/ComboBox.dll +0 -0
  15. data/examples/UIRibbon/Control/ComboBox.rb +23 -0
  16. data/examples/UIRibbon/Control/ComboBox.rbw +56 -0
  17. data/examples/UIRibbon/Control/ComboBox.xml +75 -0
  18. data/examples/UIRibbon/Control/FontControl.dll +0 -0
  19. data/examples/UIRibbon/Control/FontControl.rb +34 -0
  20. data/examples/UIRibbon/Control/FontControl.rbw +83 -0
  21. data/examples/UIRibbon/Control/FontControl.xml +96 -0
  22. data/examples/UIRibbon/Control/Gallery.dll +0 -0
  23. data/examples/UIRibbon/Control/Gallery.rb +55 -0
  24. data/examples/UIRibbon/Control/Gallery.rbw +124 -0
  25. data/examples/UIRibbon/Control/Gallery.xml +132 -0
  26. data/examples/UIRibbon/Control/Spinner.dll +0 -0
  27. data/examples/UIRibbon/Control/Spinner.rb +14 -0
  28. data/examples/UIRibbon/Control/Spinner.rbw +27 -0
  29. data/examples/UIRibbon/Control/Spinner.xml +37 -0
  30. data/examples/UIRibbon/Size.rbw +1 -1
  31. data/examples/UIRibbon/TabGroup.dll +0 -0
  32. data/examples/UIRibbon/TabGroup.rb +12 -0
  33. data/examples/UIRibbon/TabGroup.rbw +23 -0
  34. data/examples/UIRibbon/TabGroup.xml +42 -0
  35. data/examples/UIRibbon/Viewer.rbw +1 -1
  36. data/examples/res/applications-graphics-big.bmp +0 -0
  37. data/examples/res/applications-graphics-small.bmp +0 -0
  38. data/examples/res/applications-graphics.bmp +0 -0
  39. data/examples/res/document-print-big.bmp +0 -0
  40. data/examples/res/document-print-preview-big.bmp +0 -0
  41. data/examples/res/document-print-preview-small.bmp +0 -0
  42. data/examples/res/document-print-preview.bmp +0 -0
  43. data/examples/res/document-print-small.bmp +0 -0
  44. data/examples/res/document-print.bmp +0 -0
  45. data/examples/res/go-bottom-big.bmp +0 -0
  46. data/examples/res/go-bottom-small.bmp +0 -0
  47. data/examples/res/go-bottom.bmp +0 -0
  48. data/examples/res/preferences-desktop-font-big.bmp +0 -0
  49. data/examples/res/preferences-desktop-font-small.bmp +0 -0
  50. data/examples/res/preferences-desktop-font.bmp +0 -0
  51. data/examples/res/process-stop-big.bmp +0 -0
  52. data/examples/res/process-stop-small.bmp +0 -0
  53. data/examples/res/process-stop.bmp +0 -0
  54. data/lib/fzeet/Application.rb +6 -1
  55. data/lib/fzeet/Common.rb +17 -0
  56. data/lib/fzeet/Dialog/ShellFileDialog.rb +8 -48
  57. data/lib/fzeet/UIRibbon.rb +174 -7
  58. data/lib/fzeet/windows/com.rb +2 -0
  59. data/lib/fzeet/windows/common.rb +47 -6
  60. data/lib/fzeet/windows/gdi.rb +8 -0
  61. data/lib/fzeet/windows/kernel.rb +2 -0
  62. data/lib/fzeet/windows/ole.rb +34 -0
  63. data/lib/fzeet/windows/propsys.rb +7 -1
  64. data/lib/fzeet/windows/shell/Common.rb +44 -0
  65. data/lib/fzeet/windows/shlwapi.rb +10 -0
  66. data/lib/fzeet/windows/uiribbon.rb +15 -0
  67. data/lib/fzeet/windows.rb +1 -0
  68. metadata +51 -8
@@ -37,6 +37,26 @@ module Fzeet
37
37
 
38
38
  ShellItem = COM::Instance[IShellItem]
39
39
 
40
+ class ShellItem
41
+ def path
42
+ result = nil
43
+
44
+ FFI::MemoryPointer.new(:pointer) { |pwcs|
45
+ next unless GetDisplayName(SIGDN_FILESYSPATH, pwcs) == S_OK
46
+
47
+ wcs = pwcs.read_pointer
48
+
49
+ begin
50
+ result = Windows.WCSTOMBS(wcs)
51
+ ensure
52
+ Windows.CoTaskMemFree(wcs)
53
+ end
54
+ }
55
+
56
+ result
57
+ end
58
+ end
59
+
40
60
  SIATTRIBFLAGS_AND = 0x00000001
41
61
  SIATTRIBFLAGS_OR = 0x00000002
42
62
  SIATTRIBFLAGS_APPCOMPAT = 0x00000003
@@ -57,6 +77,30 @@ module Fzeet
57
77
 
58
78
  ShellItemArray = COM::Instance[IShellItemArray]
59
79
 
80
+ class ShellItemArray
81
+ include Enumerable
82
+
83
+ def count; FFI::MemoryPointer.new(:ulong) { |pc| next unless GetCount(pc) == S_OK; return pc.get_ulong(0) } end
84
+ alias :size :count
85
+ alias :length :count
86
+
87
+ def get(i)
88
+ FFI::MemoryPointer.new(:pointer) { |psi|
89
+ next unless GetItemAt(i, psi) == S_OK
90
+
91
+ si = ShellItem.new(psi.read_pointer)
92
+
93
+ begin
94
+ yield si
95
+ ensure
96
+ si.Release
97
+ end
98
+ }
99
+ end
100
+
101
+ def each(&block) length.times { |i| get(i, &block) }; self end
102
+ end
103
+
60
104
  IModalWindow = COM::Interface[IUnknown,
61
105
  GUID['b4db1657-70d7-485e-8e3e-6fcb5a5c1802'],
62
106
 
@@ -0,0 +1,10 @@
1
+ require_relative 'common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ ffi_lib 'shlwapi'
6
+ ffi_convention :stdcall
7
+
8
+ attach_function :SHStrDup, :SHStrDupA, [:string, :pointer], :long
9
+ end
10
+ end
@@ -232,6 +232,7 @@ module Fzeet
232
232
  ]
233
233
 
234
234
  UISimplePropertySet = COM::Instance[IUISimplePropertySet]
235
+ UISimplePropertySetCallback = COM::Callback[IUISimplePropertySet]
235
236
 
236
237
  IUIRibbon = COM::Interface[IUnknown,
237
238
  GUID['803982ab-370a-4f7e-a9e7-8784036a6e26'],
@@ -288,6 +289,20 @@ module Fzeet
288
289
 
289
290
  UICollection = COM::Instance[IUICollection]
290
291
 
292
+ class UICollection
293
+ include Enumerable
294
+
295
+ def count; FFI::MemoryPointer.new(:uint) { |pc| GetCount(pc); return pc.get_uint(0) } end
296
+ alias :size :count
297
+ alias :length :count
298
+
299
+ def get(i) FFI::MemoryPointer.new(:pointer) { |punk| GetItem(i, punk); return Unknown.new(punk.read_pointer) } end
300
+ def add(unknown) Add(unknown); self end
301
+ def clear; Clear(); self end
302
+
303
+ def each; length.times { |i| yield get(i) }; self end
304
+ end
305
+
291
306
  UI_COLLECTIONCHANGE_INSERT = 0
292
307
  UI_COLLECTIONCHANGE_REMOVE = 1
293
308
  UI_COLLECTIONCHANGE_REPLACE = 2
data/lib/fzeet/windows.rb CHANGED
@@ -11,6 +11,7 @@ require_relative 'windows/com'
11
11
 
12
12
  require_relative 'windows/ole'
13
13
  require_relative 'windows/shell'
14
+ require_relative 'windows/shlwapi'
14
15
 
15
16
  require_relative 'windows/propsys' if Fzeet::Windows::WINVER.AtLeastWindowsVista?
16
17
 
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: 5
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 6
9
- - 1
10
- version: 0.6.1
8
+ - 2
9
+ version: 0.6.2
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: 2010-09-10 00:00:00 +03:00
17
+ date: 2010-09-16 00:00:00 +03:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ~>
28
27
  - !ruby/object:Gem::Version
29
- hash: 1
30
28
  segments:
31
29
  - 0
32
30
  - 6
@@ -53,6 +51,7 @@ files:
53
51
  - lib/fzeet/windows/ole.rb
54
52
  - lib/fzeet/windows/propsys.rb
55
53
  - lib/fzeet/windows/shell.rb
54
+ - lib/fzeet/windows/shlwapi.rb
56
55
  - lib/fzeet/windows/uiribbon.rb
57
56
  - lib/fzeet/windows/user.rb
58
57
  - lib/fzeet/windows/user/Accelerator.rb
@@ -129,12 +128,24 @@ files:
129
128
  - lib/fzeet/Dialog/PrintDialog.rb
130
129
  - lib/fzeet/Dialog/ShellFileDialog.rb
131
130
  - lib/fzeet.rb
131
+ - examples/res/applications-graphics-big.bmp
132
+ - examples/res/applications-graphics-small.bmp
133
+ - examples/res/applications-graphics.bmp
132
134
  - examples/res/audio-volume-muted-big.bmp
133
135
  - examples/res/audio-volume-muted-small.bmp
134
136
  - examples/res/audio-volume-muted.bmp
137
+ - examples/res/document-print-big.bmp
138
+ - examples/res/document-print-preview-big.bmp
139
+ - examples/res/document-print-preview-small.bmp
140
+ - examples/res/document-print-preview.bmp
141
+ - examples/res/document-print-small.bmp
142
+ - examples/res/document-print.bmp
135
143
  - examples/res/edit-copy.bmp
136
144
  - examples/res/edit-cut.bmp
137
145
  - examples/res/edit-paste.bmp
146
+ - examples/res/go-bottom-big.bmp
147
+ - examples/res/go-bottom-small.bmp
148
+ - examples/res/go-bottom.bmp
138
149
  - examples/res/go-down-big.bmp
139
150
  - examples/res/go-down-small.bmp
140
151
  - examples/res/go-down.bmp
@@ -150,6 +161,12 @@ files:
150
161
  - examples/res/media-playback-pause-big.bmp
151
162
  - examples/res/media-playback-pause-small.bmp
152
163
  - examples/res/media-playback-pause.bmp
164
+ - examples/res/preferences-desktop-font-big.bmp
165
+ - examples/res/preferences-desktop-font-small.bmp
166
+ - examples/res/preferences-desktop-font.bmp
167
+ - examples/res/process-stop-big.bmp
168
+ - examples/res/process-stop-small.bmp
169
+ - examples/res/process-stop.bmp
153
170
  - examples/Raw/Command.rbw
154
171
  - examples/Raw/Hello.rbw
155
172
  - examples/Raw/LifeCycle.rbw
@@ -203,28 +220,56 @@ files:
203
220
  - examples/Dialog/FontDialog.rbw
204
221
  - examples/Dialog/PrintDialog.rbw
205
222
  - examples/Dialog/ShellFileDialog.rbw
223
+ - examples/UIRibbon/ApplicationModes.rbw
206
224
  - examples/UIRibbon/Color.rbw
207
225
  - examples/UIRibbon/Command.rbw
208
226
  - examples/UIRibbon/ContextPopup.rbw
209
227
  - examples/UIRibbon/Minimal.rbw
210
228
  - examples/UIRibbon/Size.rbw
229
+ - examples/UIRibbon/TabGroup.rbw
211
230
  - examples/UIRibbon/Viewer.rbw
231
+ - examples/UIRibbon/ApplicationModes.xml
212
232
  - examples/UIRibbon/Command.xml
213
233
  - examples/UIRibbon/ContextPopup.xml
214
234
  - examples/UIRibbon/Minimal.xml
235
+ - examples/UIRibbon/TabGroup.xml
236
+ - examples/UIRibbon/ApplicationModes.rb
215
237
  - examples/UIRibbon/Command.rb
216
238
  - examples/UIRibbon/ContextPopup.rb
217
239
  - examples/UIRibbon/Minimal.rb
240
+ - examples/UIRibbon/TabGroup.rb
241
+ - examples/UIRibbon/ApplicationModes.dll
218
242
  - examples/UIRibbon/Command.dll
219
243
  - examples/UIRibbon/ContextPopup.dll
220
244
  - examples/UIRibbon/Minimal.dll
245
+ - examples/UIRibbon/TabGroup.dll
221
246
  - examples/UIRibbon/Control/Button.rbw
247
+ - examples/UIRibbon/Control/ColorPicker.rbw
248
+ - examples/UIRibbon/Control/ComboBox.rbw
249
+ - examples/UIRibbon/Control/FontControl.rbw
250
+ - examples/UIRibbon/Control/Gallery.rbw
251
+ - examples/UIRibbon/Control/Spinner.rbw
222
252
  - examples/UIRibbon/Control/Button.xml
253
+ - examples/UIRibbon/Control/ColorPicker.xml
254
+ - examples/UIRibbon/Control/ComboBox.xml
255
+ - examples/UIRibbon/Control/FontControl.xml
256
+ - examples/UIRibbon/Control/Gallery.xml
257
+ - examples/UIRibbon/Control/Spinner.xml
223
258
  - examples/UIRibbon/Control/Button.rb
259
+ - examples/UIRibbon/Control/ColorPicker.rb
260
+ - examples/UIRibbon/Control/ComboBox.rb
261
+ - examples/UIRibbon/Control/FontControl.rb
262
+ - examples/UIRibbon/Control/Gallery.rb
263
+ - examples/UIRibbon/Control/Spinner.rb
224
264
  - examples/UIRibbon/Control/Button.dll
265
+ - examples/UIRibbon/Control/ColorPicker.dll
266
+ - examples/UIRibbon/Control/ComboBox.dll
267
+ - examples/UIRibbon/Control/FontControl.dll
268
+ - examples/UIRibbon/Control/Gallery.dll
269
+ - examples/UIRibbon/Control/Spinner.dll
225
270
  - LICENSE
226
271
  has_rdoc: true
227
- homepage:
272
+ homepage: http://github.com/rpeev/Fzeet
228
273
  licenses: []
229
274
 
230
275
  post_install_message:
@@ -237,7 +282,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
282
  requirements:
238
283
  - - ">="
239
284
  - !ruby/object:Gem::Version
240
- hash: 3
241
285
  segments:
242
286
  - 0
243
287
  version: "0"
@@ -246,7 +290,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
290
  requirements:
247
291
  - - ">="
248
292
  - !ruby/object:Gem::Version
249
- hash: 3
250
293
  segments:
251
294
  - 0
252
295
  version: "0"