fzeet 0.5.2 → 0.5.3
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.
- data/examples/Dialog/Dialog.rbw +2 -2
- data/examples/Raw/UIRibbon/Command.dll +0 -0
- data/examples/Raw/UIRibbon/Command.rb +17 -11
- data/examples/Raw/UIRibbon/Command.xml +6 -0
- data/examples/Raw/UIRibbon/Minimal.dll +0 -0
- data/examples/Raw/UIRibbon/Minimal.rb +10 -6
- data/examples/Raw/UIRibbon/Minimal.xml +4 -0
- data/examples/UIRibbon/Color.rbw +12 -0
- data/examples/UIRibbon/Command.dll +0 -0
- data/examples/UIRibbon/Command.rb +17 -11
- data/examples/UIRibbon/Command.xml +6 -0
- data/examples/UIRibbon/ContextPopup.dll +0 -0
- data/examples/UIRibbon/ContextPopup.rb +23 -0
- data/examples/UIRibbon/ContextPopup.rbw +12 -0
- data/examples/UIRibbon/ContextPopup.xml +83 -0
- data/examples/UIRibbon/Minimal.dll +0 -0
- data/examples/UIRibbon/Minimal.rb +10 -6
- data/examples/UIRibbon/Minimal.xml +4 -0
- data/examples/Version.rbw +5 -0
- data/examples/res/go-next-big.bmp +0 -0
- data/examples/res/go-previous-big.bmp +0 -0
- data/lib/fzeet/Accelerator.rb +23 -3
- data/lib/fzeet/Application.rb +1 -1
- data/lib/fzeet/{common.rb → Common.rb} +2 -50
- data/lib/fzeet/{ControlButton.rb → Control/Button.rb} +1 -1
- data/lib/fzeet/{ControlCommon.rb → Control/Common.rb} +1 -1
- data/lib/fzeet/Control.rb +1 -1
- data/lib/fzeet/Dialog/Common.rb +5 -0
- data/lib/fzeet/{DialogFileDialog.rb → Dialog/FileDialog.rb} +1 -43
- data/lib/fzeet/Dialog/FolderDialog.rb +45 -0
- data/lib/fzeet/Dialog.rb +2 -1
- data/lib/fzeet/Menu.rb +77 -77
- data/lib/fzeet/UIRibbon.rb +86 -1
- data/lib/fzeet/{WindowCommon.rb → Window/Common.rb} +52 -2
- data/lib/fzeet/{WindowDialog.rb → Window/Dialog.rb} +6 -6
- data/lib/fzeet/{WindowWindow.rb → Window/Window.rb} +1 -1
- data/lib/fzeet/{WindowMethods.rb → Window/WindowMethods.rb} +49 -43
- data/lib/fzeet/Window.rb +2 -2
- data/lib/fzeet/windows/com.rb +97 -15
- data/lib/fzeet/windows/{comctlbutton.rb → comctl/Button.rb} +1 -1
- data/lib/fzeet/windows/{comctlcommon.rb → comctl/Common.rb} +1 -1
- data/lib/fzeet/windows/comctl.rb +1 -1
- data/lib/fzeet/windows/{comdlgcommon.rb → comdlg/Common.rb} +1 -1
- data/lib/fzeet/windows/{comdlgofn.rb → comdlg/FileDialog.rb} +1 -1
- data/lib/fzeet/windows/comdlg.rb +1 -1
- data/lib/fzeet/windows/common.rb +80 -5
- data/lib/fzeet/windows/gdi.rb +30 -0
- data/lib/fzeet/windows/kernel.rb +74 -21
- data/lib/fzeet/windows/ole.rb +60 -0
- data/lib/fzeet/windows/propsys.rb +40 -0
- data/lib/fzeet/windows/shell/Common.rb +10 -0
- data/lib/fzeet/windows/shell/FolderDialog.rb +39 -0
- data/lib/fzeet/windows/shell.rb +1 -43
- data/lib/fzeet/windows/uiribbon.rb +275 -18
- data/lib/fzeet/windows/user/Accelerator.rb +182 -0
- data/lib/fzeet/windows/user/Common.rb +33 -0
- data/lib/fzeet/windows/{userctlbutton.rb → user/Control/Button.rb} +1 -1
- data/lib/fzeet/windows/{userctlcommon.rb → user/Control/Common.rb} +1 -1
- data/lib/fzeet/windows/user/Control.rb +1 -0
- data/lib/fzeet/windows/user/Menu.rb +115 -0
- data/lib/fzeet/windows/{usermsg.rb → user/Message.rb} +1 -3
- data/lib/fzeet/windows/{usermbox.rb → user/MessageBox.rb} +1 -5
- data/lib/fzeet/windows/user/SystemParametersInfo.rb +244 -0
- data/lib/fzeet/windows/{userwnd.rb → user/Window.rb} +70 -38
- data/lib/fzeet/windows/user.rb +7 -7
- data/lib/fzeet/windows.rb +2 -73
- data/lib/fzeet.rb +1 -1
- metadata +39 -27
- data/lib/fzeet/DialogCommon.rb +0 -5
- data/lib/fzeet/windows/usercommon.rb +0 -8
- data/lib/fzeet/windows/userctl.rb +0 -1
- data/lib/fzeet/windows/userkbd.rb +0 -20
- data/lib/fzeet/windows/usermenu.rb +0 -50
- data/lib/fzeet/windows/userspi.rb +0 -29
- /data/examples/Dialog/{FileDialog.rbw → FileAndFolderDialog.rbw} +0 -0
@@ -1,8 +1,7 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'Common'
|
2
2
|
|
3
3
|
module Fzeet
|
4
4
|
module Windows
|
5
|
-
#{ MB_xxx
|
6
5
|
MB_OK = 0x00000000
|
7
6
|
MB_OKCANCEL = 0x00000001
|
8
7
|
MB_ABORTRETRYIGNORE = 0x00000002
|
@@ -40,9 +39,7 @@ module Fzeet
|
|
40
39
|
MB_DEFMASK = 0x00000F00
|
41
40
|
MB_MODEMASK = 0x00003000
|
42
41
|
MB_MISCMASK = 0x0000C000
|
43
|
-
#}
|
44
42
|
|
45
|
-
#{ IDxxx
|
46
43
|
IDOK = 1
|
47
44
|
IDCANCEL = 2
|
48
45
|
IDABORT = 3
|
@@ -55,7 +52,6 @@ module Fzeet
|
|
55
52
|
IDTRYAGAIN = 10
|
56
53
|
IDCONTINUE = 11
|
57
54
|
IDTIMEOUT = 32000
|
58
|
-
#}
|
59
55
|
|
60
56
|
attach_function :MessageBox, :MessageBoxA, [:pointer, :string, :string, :uint], :int
|
61
57
|
end
|
@@ -0,0 +1,244 @@
|
|
1
|
+
require_relative 'Common'
|
2
|
+
|
3
|
+
module Fzeet
|
4
|
+
module Windows
|
5
|
+
SPI_GETBEEP = 0x0001
|
6
|
+
SPI_SETBEEP = 0x0002
|
7
|
+
SPI_GETMOUSE = 0x0003
|
8
|
+
SPI_SETMOUSE = 0x0004
|
9
|
+
SPI_GETBORDER = 0x0005
|
10
|
+
SPI_SETBORDER = 0x0006
|
11
|
+
SPI_GETKEYBOARDSPEED = 0x000A
|
12
|
+
SPI_SETKEYBOARDSPEED = 0x000B
|
13
|
+
SPI_LANGDRIVER = 0x000C
|
14
|
+
SPI_ICONHORIZONTALSPACING = 0x000D
|
15
|
+
SPI_GETSCREENSAVETIMEOUT = 0x000E
|
16
|
+
SPI_SETSCREENSAVETIMEOUT = 0x000F
|
17
|
+
SPI_GETSCREENSAVEACTIVE = 0x0010
|
18
|
+
SPI_SETSCREENSAVEACTIVE = 0x0011
|
19
|
+
SPI_GETGRIDGRANULARITY = 0x0012
|
20
|
+
SPI_SETGRIDGRANULARITY = 0x0013
|
21
|
+
SPI_SETDESKWALLPAPER = 0x0014
|
22
|
+
SPI_SETDESKPATTERN = 0x0015
|
23
|
+
SPI_GETKEYBOARDDELAY = 0x0016
|
24
|
+
SPI_SETKEYBOARDDELAY = 0x0017
|
25
|
+
SPI_ICONVERTICALSPACING = 0x0018
|
26
|
+
SPI_GETICONTITLEWRAP = 0x0019
|
27
|
+
SPI_SETICONTITLEWRAP = 0x001A
|
28
|
+
SPI_GETMENUDROPALIGNMENT = 0x001B
|
29
|
+
SPI_SETMENUDROPALIGNMENT = 0x001C
|
30
|
+
SPI_SETDOUBLECLKWIDTH = 0x001D
|
31
|
+
SPI_SETDOUBLECLKHEIGHT = 0x001E
|
32
|
+
SPI_GETICONTITLELOGFONT = 0x001F
|
33
|
+
SPI_SETDOUBLECLICKTIME = 0x0020
|
34
|
+
SPI_SETMOUSEBUTTONSWAP = 0x0021
|
35
|
+
SPI_SETICONTITLELOGFONT = 0x0022
|
36
|
+
SPI_GETFASTTASKSWITCH = 0x0023
|
37
|
+
SPI_SETFASTTASKSWITCH = 0x0024
|
38
|
+
SPI_SETDRAGFULLWINDOWS = 0x0025
|
39
|
+
SPI_GETDRAGFULLWINDOWS = 0x0026
|
40
|
+
SPI_GETNONCLIENTMETRICS = 0x0029
|
41
|
+
SPI_SETNONCLIENTMETRICS = 0x002A
|
42
|
+
SPI_GETMINIMIZEDMETRICS = 0x002B
|
43
|
+
SPI_SETMINIMIZEDMETRICS = 0x002C
|
44
|
+
SPI_GETICONMETRICS = 0x002D
|
45
|
+
SPI_SETICONMETRICS = 0x002E
|
46
|
+
SPI_SETWORKAREA = 0x002F
|
47
|
+
SPI_GETWORKAREA = 0x0030
|
48
|
+
SPI_SETPENWINDOWS = 0x0031
|
49
|
+
SPI_GETHIGHCONTRAST = 0x0042
|
50
|
+
SPI_SETHIGHCONTRAST = 0x0043
|
51
|
+
SPI_GETKEYBOARDPREF = 0x0044
|
52
|
+
SPI_SETKEYBOARDPREF = 0x0045
|
53
|
+
SPI_GETSCREENREADER = 0x0046
|
54
|
+
SPI_SETSCREENREADER = 0x0047
|
55
|
+
SPI_GETANIMATION = 0x0048
|
56
|
+
SPI_SETANIMATION = 0x0049
|
57
|
+
SPI_GETFONTSMOOTHING = 0x004A
|
58
|
+
SPI_SETFONTSMOOTHING = 0x004B
|
59
|
+
SPI_SETDRAGWIDTH = 0x004C
|
60
|
+
SPI_SETDRAGHEIGHT = 0x004D
|
61
|
+
SPI_SETHANDHELD = 0x004E
|
62
|
+
SPI_GETLOWPOWERTIMEOUT = 0x004F
|
63
|
+
SPI_GETPOWEROFFTIMEOUT = 0x0050
|
64
|
+
SPI_SETLOWPOWERTIMEOUT = 0x0051
|
65
|
+
SPI_SETPOWEROFFTIMEOUT = 0x0052
|
66
|
+
SPI_GETLOWPOWERACTIVE = 0x0053
|
67
|
+
SPI_GETPOWEROFFACTIVE = 0x0054
|
68
|
+
SPI_SETLOWPOWERACTIVE = 0x0055
|
69
|
+
SPI_SETPOWEROFFACTIVE = 0x0056
|
70
|
+
SPI_SETCURSORS = 0x0057
|
71
|
+
SPI_SETICONS = 0x0058
|
72
|
+
SPI_GETDEFAULTINPUTLANG = 0x0059
|
73
|
+
SPI_SETDEFAULTINPUTLANG = 0x005A
|
74
|
+
SPI_SETLANGTOGGLE = 0x005B
|
75
|
+
SPI_GETWINDOWSEXTENSION = 0x005C
|
76
|
+
SPI_SETMOUSETRAILS = 0x005D
|
77
|
+
SPI_GETMOUSETRAILS = 0x005E
|
78
|
+
SPI_SETSCREENSAVERRUNNING = 0x0061
|
79
|
+
SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING
|
80
|
+
SPI_GETFILTERKEYS = 0x0032
|
81
|
+
SPI_SETFILTERKEYS = 0x0033
|
82
|
+
SPI_GETTOGGLEKEYS = 0x0034
|
83
|
+
SPI_SETTOGGLEKEYS = 0x0035
|
84
|
+
SPI_GETMOUSEKEYS = 0x0036
|
85
|
+
SPI_SETMOUSEKEYS = 0x0037
|
86
|
+
SPI_GETSHOWSOUNDS = 0x0038
|
87
|
+
SPI_SETSHOWSOUNDS = 0x0039
|
88
|
+
SPI_GETSTICKYKEYS = 0x003A
|
89
|
+
SPI_SETSTICKYKEYS = 0x003B
|
90
|
+
SPI_GETACCESSTIMEOUT = 0x003C
|
91
|
+
SPI_SETACCESSTIMEOUT = 0x003D
|
92
|
+
SPI_GETSERIALKEYS = 0x003E
|
93
|
+
SPI_SETSERIALKEYS = 0x003F
|
94
|
+
SPI_GETSOUNDSENTRY = 0x0040
|
95
|
+
SPI_SETSOUNDSENTRY = 0x0041
|
96
|
+
SPI_GETSNAPTODEFBUTTON = 0x005F
|
97
|
+
SPI_SETSNAPTODEFBUTTON = 0x0060
|
98
|
+
SPI_GETMOUSEHOVERWIDTH = 0x0062
|
99
|
+
SPI_SETMOUSEHOVERWIDTH = 0x0063
|
100
|
+
SPI_GETMOUSEHOVERHEIGHT = 0x0064
|
101
|
+
SPI_SETMOUSEHOVERHEIGHT = 0x0065
|
102
|
+
SPI_GETMOUSEHOVERTIME = 0x0066
|
103
|
+
SPI_SETMOUSEHOVERTIME = 0x0067
|
104
|
+
SPI_GETWHEELSCROLLLINES = 0x0068
|
105
|
+
SPI_SETWHEELSCROLLLINES = 0x0069
|
106
|
+
SPI_GETMENUSHOWDELAY = 0x006A
|
107
|
+
SPI_SETMENUSHOWDELAY = 0x006B
|
108
|
+
SPI_GETWHEELSCROLLCHARS = 0x006C
|
109
|
+
SPI_SETWHEELSCROLLCHARS = 0x006D
|
110
|
+
SPI_GETSHOWIMEUI = 0x006E
|
111
|
+
SPI_SETSHOWIMEUI = 0x006F
|
112
|
+
SPI_GETMOUSESPEED = 0x0070
|
113
|
+
SPI_SETMOUSESPEED = 0x0071
|
114
|
+
SPI_GETSCREENSAVERRUNNING = 0x0072
|
115
|
+
SPI_GETDESKWALLPAPER = 0x0073
|
116
|
+
SPI_GETAUDIODESCRIPTION = 0x0074
|
117
|
+
SPI_SETAUDIODESCRIPTION = 0x0075
|
118
|
+
SPI_GETSCREENSAVESECURE = 0x0076
|
119
|
+
SPI_SETSCREENSAVESECURE = 0x0077
|
120
|
+
SPI_GETHUNGAPPTIMEOUT = 0x0078
|
121
|
+
SPI_SETHUNGAPPTIMEOUT = 0x0079
|
122
|
+
SPI_GETWAITTOKILLTIMEOUT = 0x007A
|
123
|
+
SPI_SETWAITTOKILLTIMEOUT = 0x007B
|
124
|
+
SPI_GETWAITTOKILLSERVICETIMEOUT = 0x007C
|
125
|
+
SPI_SETWAITTOKILLSERVICETIMEOUT = 0x007D
|
126
|
+
SPI_GETMOUSEDOCKTHRESHOLD = 0x007E
|
127
|
+
SPI_SETMOUSEDOCKTHRESHOLD = 0x007F
|
128
|
+
SPI_GETPENDOCKTHRESHOLD = 0x0080
|
129
|
+
SPI_SETPENDOCKTHRESHOLD = 0x0081
|
130
|
+
SPI_GETWINARRANGING = 0x0082
|
131
|
+
SPI_SETWINARRANGING = 0x0083
|
132
|
+
SPI_GETMOUSEDRAGOUTTHRESHOLD = 0x0084
|
133
|
+
SPI_SETMOUSEDRAGOUTTHRESHOLD = 0x0085
|
134
|
+
SPI_GETPENDRAGOUTTHRESHOLD = 0x0086
|
135
|
+
SPI_SETPENDRAGOUTTHRESHOLD = 0x0087
|
136
|
+
SPI_GETMOUSESIDEMOVETHRESHOLD = 0x0088
|
137
|
+
SPI_SETMOUSESIDEMOVETHRESHOLD = 0x0089
|
138
|
+
SPI_GETPENSIDEMOVETHRESHOLD = 0x008A
|
139
|
+
SPI_SETPENSIDEMOVETHRESHOLD = 0x008B
|
140
|
+
SPI_GETDRAGFROMMAXIMIZE = 0x008C
|
141
|
+
SPI_SETDRAGFROMMAXIMIZE = 0x008D
|
142
|
+
SPI_GETSNAPSIZING = 0x008E
|
143
|
+
SPI_SETSNAPSIZING = 0x008F
|
144
|
+
SPI_GETDOCKMOVING = 0x0090
|
145
|
+
SPI_SETDOCKMOVING = 0x0091
|
146
|
+
SPI_GETACTIVEWINDOWTRACKING = 0x1000
|
147
|
+
SPI_SETACTIVEWINDOWTRACKING = 0x1001
|
148
|
+
SPI_GETMENUANIMATION = 0x1002
|
149
|
+
SPI_SETMENUANIMATION = 0x1003
|
150
|
+
SPI_GETCOMBOBOXANIMATION = 0x1004
|
151
|
+
SPI_SETCOMBOBOXANIMATION = 0x1005
|
152
|
+
SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006
|
153
|
+
SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007
|
154
|
+
SPI_GETGRADIENTCAPTIONS = 0x1008
|
155
|
+
SPI_SETGRADIENTCAPTIONS = 0x1009
|
156
|
+
SPI_GETKEYBOARDCUES = 0x100A
|
157
|
+
SPI_SETKEYBOARDCUES = 0x100B
|
158
|
+
SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES
|
159
|
+
SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES
|
160
|
+
SPI_GETACTIVEWNDTRKZORDER = 0x100C
|
161
|
+
SPI_SETACTIVEWNDTRKZORDER = 0x100D
|
162
|
+
SPI_GETHOTTRACKING = 0x100E
|
163
|
+
SPI_SETHOTTRACKING = 0x100F
|
164
|
+
SPI_GETMENUFADE = 0x1012
|
165
|
+
SPI_SETMENUFADE = 0x1013
|
166
|
+
SPI_GETSELECTIONFADE = 0x1014
|
167
|
+
SPI_SETSELECTIONFADE = 0x1015
|
168
|
+
SPI_GETTOOLTIPANIMATION = 0x1016
|
169
|
+
SPI_SETTOOLTIPANIMATION = 0x1017
|
170
|
+
SPI_GETTOOLTIPFADE = 0x1018
|
171
|
+
SPI_SETTOOLTIPFADE = 0x1019
|
172
|
+
SPI_GETCURSORSHADOW = 0x101A
|
173
|
+
SPI_SETCURSORSHADOW = 0x101B
|
174
|
+
SPI_GETMOUSESONAR = 0x101C
|
175
|
+
SPI_SETMOUSESONAR = 0x101D
|
176
|
+
SPI_GETMOUSECLICKLOCK = 0x101E
|
177
|
+
SPI_SETMOUSECLICKLOCK = 0x101F
|
178
|
+
SPI_GETMOUSEVANISH = 0x1020
|
179
|
+
SPI_SETMOUSEVANISH = 0x1021
|
180
|
+
SPI_GETFLATMENU = 0x1022
|
181
|
+
SPI_SETFLATMENU = 0x1023
|
182
|
+
SPI_GETDROPSHADOW = 0x1024
|
183
|
+
SPI_SETDROPSHADOW = 0x1025
|
184
|
+
SPI_GETBLOCKSENDINPUTRESETS = 0x1026
|
185
|
+
SPI_SETBLOCKSENDINPUTRESETS = 0x1027
|
186
|
+
SPI_GETUIEFFECTS = 0x103E
|
187
|
+
SPI_SETUIEFFECTS = 0x103F
|
188
|
+
SPI_GETDISABLEOVERLAPPEDCONTENT = 0x1040
|
189
|
+
SPI_SETDISABLEOVERLAPPEDCONTENT = 0x1041
|
190
|
+
SPI_GETCLIENTAREAANIMATION = 0x1042
|
191
|
+
SPI_SETCLIENTAREAANIMATION = 0x1043
|
192
|
+
SPI_GETCLEARTYPE = 0x1048
|
193
|
+
SPI_SETCLEARTYPE = 0x1049
|
194
|
+
SPI_GETSPEECHRECOGNITION = 0x104A
|
195
|
+
SPI_SETSPEECHRECOGNITION = 0x104B
|
196
|
+
SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000
|
197
|
+
SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001
|
198
|
+
SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002
|
199
|
+
SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003
|
200
|
+
SPI_GETFOREGROUNDFLASHCOUNT = 0x2004
|
201
|
+
SPI_SETFOREGROUNDFLASHCOUNT = 0x2005
|
202
|
+
SPI_GETCARETWIDTH = 0x2006
|
203
|
+
SPI_SETCARETWIDTH = 0x2007
|
204
|
+
SPI_GETMOUSECLICKLOCKTIME = 0x2008
|
205
|
+
SPI_SETMOUSECLICKLOCKTIME = 0x2009
|
206
|
+
SPI_GETFONTSMOOTHINGTYPE = 0x200A
|
207
|
+
SPI_SETFONTSMOOTHINGTYPE = 0x200B
|
208
|
+
SPI_GETFONTSMOOTHINGCONTRAST = 0x200C
|
209
|
+
SPI_SETFONTSMOOTHINGCONTRAST = 0x200D
|
210
|
+
SPI_GETFOCUSBORDERWIDTH = 0x200E
|
211
|
+
SPI_SETFOCUSBORDERWIDTH = 0x200F
|
212
|
+
SPI_GETFOCUSBORDERHEIGHT = 0x2010
|
213
|
+
SPI_SETFOCUSBORDERHEIGHT = 0x2011
|
214
|
+
SPI_GETFONTSMOOTHINGORIENTATION = 0x2012
|
215
|
+
SPI_SETFONTSMOOTHINGORIENTATION = 0x2013
|
216
|
+
SPI_GETMINIMUMHITRADIUS = 0x2014
|
217
|
+
SPI_SETMINIMUMHITRADIUS = 0x2015
|
218
|
+
SPI_GETMESSAGEDURATION = 0x2016
|
219
|
+
SPI_SETMESSAGEDURATION = 0x2017
|
220
|
+
|
221
|
+
class NONCLIENTMETRICS < FFI::Struct
|
222
|
+
layout *[
|
223
|
+
:cbSize, :uint,
|
224
|
+
:iBorderWidth, :int,
|
225
|
+
:iScrollWidth, :int,
|
226
|
+
:iScrollHeight, :int,
|
227
|
+
:iCaptionWidth, :int,
|
228
|
+
:iCaptionHeight, :int,
|
229
|
+
:lfCaptionFont, LOGFONT,
|
230
|
+
:iSmCaptionWidth, :int,
|
231
|
+
:iSmCaptionHeight, :int,
|
232
|
+
:lfSmCaptionFont, LOGFONT,
|
233
|
+
:iMenuWidth, :int,
|
234
|
+
:iMenuHeight, :int,
|
235
|
+
:lfMenuFont, LOGFONT,
|
236
|
+
:lfStatusFont, LOGFONT,
|
237
|
+
:lfMessageFont, LOGFONT,
|
238
|
+
(WINVER.AtLeastWindowsVista?) ? [:iPaddedBorderWidth, :int] : nil
|
239
|
+
].flatten.compact
|
240
|
+
end
|
241
|
+
|
242
|
+
attach_function :SystemParametersInfo, :SystemParametersInfoA, [:uint, :uint, :pointer, :uint], :int
|
243
|
+
end
|
244
|
+
end
|
@@ -1,7 +1,21 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'Common'
|
2
2
|
|
3
3
|
module Fzeet
|
4
4
|
module Windows
|
5
|
+
CS_VREDRAW = 0x0001
|
6
|
+
CS_HREDRAW = 0x0002
|
7
|
+
CS_DBLCLKS = 0x0008
|
8
|
+
CS_OWNDC = 0x0020
|
9
|
+
CS_CLASSDC = 0x0040
|
10
|
+
CS_PARENTDC = 0x0080
|
11
|
+
CS_NOCLOSE = 0x0200
|
12
|
+
CS_SAVEBITS = 0x0800
|
13
|
+
CS_BYTEALIGNCLIENT = 0x1000
|
14
|
+
CS_BYTEALIGNWINDOW = 0x2000
|
15
|
+
CS_GLOBALCLASS = 0x4000
|
16
|
+
CS_IME = 0x00010000
|
17
|
+
CS_DROPSHADOW = 0x00020000
|
18
|
+
|
5
19
|
callback :WNDPROC, [:pointer, :uint, :uint, :long], :long
|
6
20
|
|
7
21
|
attach_function :DefWindowProc, :DefWindowProcA, [:pointer, :uint, :uint, :long], :long
|
@@ -10,7 +24,6 @@ module Fzeet
|
|
10
24
|
|
11
25
|
attach_function :DefDlgProc, :DefDlgProcA, [:pointer, :uint, :uint, :long], :long
|
12
26
|
|
13
|
-
#{ IDI_xxx
|
14
27
|
IDI_APPLICATION = FFI::Pointer.new(32512)
|
15
28
|
IDI_HAND = FFI::Pointer.new(32513)
|
16
29
|
IDI_QUESTION = FFI::Pointer.new(32514)
|
@@ -21,11 +34,9 @@ module Fzeet
|
|
21
34
|
IDI_WARNING = IDI_EXCLAMATION
|
22
35
|
IDI_ERROR = IDI_HAND
|
23
36
|
IDI_INFORMATION = IDI_ASTERISK
|
24
|
-
#}
|
25
37
|
|
26
38
|
attach_function :LoadIcon, :LoadIconA, [:pointer, :pointer], :pointer
|
27
39
|
|
28
|
-
#{ IDC_xxx
|
29
40
|
IDC_ARROW = FFI::Pointer.new(32512)
|
30
41
|
IDC_IBEAM = FFI::Pointer.new(32513)
|
31
42
|
IDC_WAIT = FFI::Pointer.new(32514)
|
@@ -42,18 +53,9 @@ module Fzeet
|
|
42
53
|
IDC_HAND = FFI::Pointer.new(32649)
|
43
54
|
IDC_APPSTARTING = FFI::Pointer.new(32650)
|
44
55
|
IDC_HELP = FFI::Pointer.new(32651)
|
45
|
-
#}
|
46
56
|
|
47
57
|
attach_function :LoadCursor, :LoadCursorA, [:pointer, :pointer], :pointer
|
48
58
|
|
49
|
-
IMAGE_BITMAP = 0
|
50
|
-
|
51
|
-
LR_LOADFROMFILE = 0x00000010
|
52
|
-
LR_CREATEDIBSECTION = 0x00002000
|
53
|
-
|
54
|
-
attach_function :LoadImage, :LoadImageA, [:pointer, :string, :uint, :int, :int, :uint], :pointer
|
55
|
-
|
56
|
-
#{ COLOR_xxx
|
57
59
|
COLOR_SCROLLBAR = 0
|
58
60
|
COLOR_BACKGROUND = 1
|
59
61
|
COLOR_ACTIVECAPTION = 2
|
@@ -90,9 +92,7 @@ module Fzeet
|
|
90
92
|
COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT
|
91
93
|
COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT
|
92
94
|
COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT
|
93
|
-
#}
|
94
95
|
|
95
|
-
#{ CTLCOLOR_xxx
|
96
96
|
CTLCOLOR_MSGBOX = 0
|
97
97
|
CTLCOLOR_EDIT = 1
|
98
98
|
CTLCOLOR_LISTBOX = 2
|
@@ -101,7 +101,6 @@ module Fzeet
|
|
101
101
|
CTLCOLOR_SCROLLBAR = 5
|
102
102
|
CTLCOLOR_STATIC = 6
|
103
103
|
CTLCOLOR_MAX = 7
|
104
|
-
#}
|
105
104
|
|
106
105
|
class WNDCLASSEX < FFI::Struct
|
107
106
|
layout \
|
@@ -121,7 +120,28 @@ module Fzeet
|
|
121
120
|
|
122
121
|
attach_function :RegisterClassEx, :RegisterClassExA, [:pointer], :ushort
|
123
122
|
|
124
|
-
|
123
|
+
GCL_MENUNAME = -8
|
124
|
+
GCL_HBRBACKGROUND = -10
|
125
|
+
GCL_HCURSOR = -12
|
126
|
+
GCL_HICON = -14
|
127
|
+
GCL_HMODULE = -16
|
128
|
+
GCL_CBWNDEXTRA = -18
|
129
|
+
GCL_CBCLSEXTRA = -20
|
130
|
+
GCL_WNDPROC = -24
|
131
|
+
GCL_STYLE = -26
|
132
|
+
GCL_HICONSM = -34
|
133
|
+
|
134
|
+
GCLP_MENUNAME = -8
|
135
|
+
GCLP_HBRBACKGROUND = -10
|
136
|
+
GCLP_HCURSOR = -12
|
137
|
+
GCLP_HICON = -14
|
138
|
+
GCLP_HMODULE = -16
|
139
|
+
GCLP_WNDPROC = -24
|
140
|
+
GCLP_HICONSM = -34
|
141
|
+
|
142
|
+
attach_function :GetClassLong, :GetClassLongA, [:pointer, :int], :ulong
|
143
|
+
attach_function :SetClassLong, :SetClassLongA, [:pointer, :int, :long], :ulong
|
144
|
+
|
125
145
|
HWND_BROADCAST = FFI::Pointer.new(0xffff)
|
126
146
|
HWND_MESSAGE = FFI::Pointer.new(-3)
|
127
147
|
HWND_DESKTOP = FFI::Pointer.new(0)
|
@@ -129,9 +149,7 @@ module Fzeet
|
|
129
149
|
HWND_BOTTOM = FFI::Pointer.new(1)
|
130
150
|
HWND_TOPMOST = FFI::Pointer.new(-1)
|
131
151
|
HWND_NOTOPMOST = FFI::Pointer.new(-2)
|
132
|
-
#}
|
133
152
|
|
134
|
-
#{ WS_xxx
|
135
153
|
WS_OVERLAPPED = 0x00000000
|
136
154
|
WS_POPUP = 0x80000000
|
137
155
|
WS_CHILD = 0x40000000
|
@@ -160,9 +178,7 @@ module Fzeet
|
|
160
178
|
WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU
|
161
179
|
WS_CHILDWINDOW = WS_CHILD
|
162
180
|
WS_ACTIVECAPTION = 0x0001
|
163
|
-
#}
|
164
181
|
|
165
|
-
#{ WS_EX_xxx
|
166
182
|
WS_EX_DLGMODALFRAME = 0x00000001
|
167
183
|
WS_EX_NOPARENTNOTIFY = 0x00000004
|
168
184
|
WS_EX_TOPMOST = 0x00000008
|
@@ -189,7 +205,6 @@ module Fzeet
|
|
189
205
|
WS_EX_LAYOUTRTL = 0x00400000
|
190
206
|
WS_EX_COMPOSITED = 0x02000000
|
191
207
|
WS_EX_NOACTIVATE = 0x08000000
|
192
|
-
#}
|
193
208
|
|
194
209
|
CW_USEDEFAULT = -0x80000000
|
195
210
|
|
@@ -210,10 +225,8 @@ module Fzeet
|
|
210
225
|
end
|
211
226
|
|
212
227
|
attach_function :CreateWindowEx, :CreateWindowExA, [:ulong, :string, :string, :ulong, :int, :int, :int, :int, :pointer, :pointer, :pointer, :pointer], :pointer
|
213
|
-
attach_function :CreateDialogIndirectParam, :CreateDialogIndirectParamA, [:pointer, :pointer, :pointer, :DLGPROC, :long], :pointer
|
214
228
|
attach_function :DestroyWindow, [:pointer], :int
|
215
229
|
|
216
|
-
#{ DS_xxx
|
217
230
|
DS_ABSALIGN = 0x01
|
218
231
|
DS_SYSMODAL = 0x02
|
219
232
|
DS_LOCALEDIT = 0x20
|
@@ -229,8 +242,6 @@ module Fzeet
|
|
229
242
|
DS_CENTERMOUSE = 0x1000
|
230
243
|
DS_CONTEXTHELP = 0x2000
|
231
244
|
DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS
|
232
|
-
DS_USEPIXELS = 0x8000
|
233
|
-
#}
|
234
245
|
|
235
246
|
class DLGTEMPLATE < FFI::Struct
|
236
247
|
layout \
|
@@ -246,10 +257,10 @@ module Fzeet
|
|
246
257
|
:title, :ushort
|
247
258
|
end
|
248
259
|
|
260
|
+
attach_function :CreateDialogIndirectParam, :CreateDialogIndirectParamA, [:pointer, :pointer, :pointer, :DLGPROC, :long], :pointer
|
249
261
|
attach_function :DialogBoxIndirectParam, :DialogBoxIndirectParamA, [:pointer, :pointer, :pointer, :DLGPROC, :long], :int
|
250
262
|
attach_function :EndDialog, [:pointer, :int], :int
|
251
263
|
|
252
|
-
#{ GWL_xxx
|
253
264
|
GWL_WNDPROC = -4
|
254
265
|
GWL_HINSTANCE = -6
|
255
266
|
GWL_HWNDPARENT = -8
|
@@ -257,26 +268,48 @@ module Fzeet
|
|
257
268
|
GWL_EXSTYLE = -20
|
258
269
|
GWL_USERDATA = -21
|
259
270
|
GWL_ID = -12
|
260
|
-
#}
|
261
271
|
|
262
|
-
#{ GWLP_xxx
|
263
272
|
GWLP_WNDPROC = -4
|
264
273
|
GWLP_HINSTANCE = -6
|
265
274
|
GWLP_HWNDPARENT = -8
|
266
275
|
GWLP_USERDATA = -21
|
267
276
|
GWLP_ID = -12
|
268
|
-
#}
|
269
277
|
|
270
|
-
#{ DWL_xxx
|
271
278
|
DWL_MSGRESULT = 0
|
272
279
|
DWL_DLGPROC = 4
|
273
280
|
DWL_USER = 8
|
274
|
-
#}
|
275
281
|
|
276
282
|
attach_function :GetWindowLong, :GetWindowLongA, [:pointer, :int], :long
|
277
283
|
attach_function :SetWindowLong, :SetWindowLongA, [:pointer, :int, :long], :long
|
278
284
|
|
285
|
+
attach_function :IsWindowEnabled, [:pointer], :int
|
286
|
+
attach_function :EnableWindow, [:pointer, :int], :int
|
287
|
+
|
288
|
+
attach_function :IsWindowVisible, [:pointer], :int
|
289
|
+
|
290
|
+
SW_HIDE = 0
|
279
291
|
SW_SHOWNORMAL = 1
|
292
|
+
SW_NORMAL = 1
|
293
|
+
SW_SHOWMINIMIZED = 2
|
294
|
+
SW_SHOWMAXIMIZED = 3
|
295
|
+
SW_MAXIMIZE = 3
|
296
|
+
SW_SHOWNOACTIVATE = 4
|
297
|
+
SW_SHOW = 5
|
298
|
+
SW_MINIMIZE = 6
|
299
|
+
SW_SHOWMINNOACTIVE = 7
|
300
|
+
SW_SHOWNA = 8
|
301
|
+
SW_RESTORE = 9
|
302
|
+
SW_SHOWDEFAULT = 10
|
303
|
+
SW_FORCEMINIMIZE = 11
|
304
|
+
SW_MAX = 11
|
305
|
+
SW_PARENTCLOSING = 1
|
306
|
+
SW_OTHERZOOM = 2
|
307
|
+
SW_PARENTOPENING = 3
|
308
|
+
SW_OTHERUNZOOM = 4
|
309
|
+
SW_SCROLLCHILDREN = 0x0001
|
310
|
+
SW_INVALIDATE = 0x0002
|
311
|
+
SW_ERASE = 0x0004
|
312
|
+
SW_SMOOTHSCROLL = 0x0010
|
280
313
|
|
281
314
|
attach_function :ShowWindow, [:pointer, :int], :int
|
282
315
|
|
@@ -286,9 +319,6 @@ module Fzeet
|
|
286
319
|
attach_function :GetWindowText, :GetWindowTextA, [:pointer, :pointer, :int], :int
|
287
320
|
attach_function :SetWindowText, :SetWindowTextA, [:pointer, :string], :int
|
288
321
|
|
289
|
-
attach_function :IsWindowEnabled, [:pointer], :int
|
290
|
-
attach_function :EnableWindow, [:pointer, :int], :int
|
291
|
-
|
292
322
|
attach_function :GetClientRect, [:pointer, :pointer], :int
|
293
323
|
attach_function :GetWindowRect, [:pointer, :pointer], :int
|
294
324
|
|
@@ -322,13 +352,15 @@ module Fzeet
|
|
322
352
|
attach_function :GetDC, [:pointer], :pointer
|
323
353
|
attach_function :ReleaseDC, [:pointer, :pointer], :int
|
324
354
|
|
355
|
+
attach_function :GetMenu, [:pointer], :pointer
|
356
|
+
attach_function :SetMenu, [:pointer, :pointer], :int
|
357
|
+
|
358
|
+
attach_function :DrawMenuBar, [:pointer], :int
|
359
|
+
|
325
360
|
attach_function :GetDlgItem, [:pointer, :int], :pointer
|
326
361
|
|
327
362
|
callback :WNDENUMPROC, [:pointer, :long], :int
|
328
363
|
|
329
364
|
attach_function :EnumChildWindows, [:pointer, :WNDENUMPROC, :long], :int
|
330
|
-
|
331
|
-
attach_function :GetMenu, [:pointer], :pointer
|
332
|
-
attach_function :SetMenu, [:pointer, :pointer], :int
|
333
365
|
end
|
334
366
|
end
|
data/lib/fzeet/windows/user.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '
|
3
|
-
require_relative '
|
4
|
-
require_relative '
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
7
|
-
require_relative '
|
1
|
+
require_relative 'user/MessageBox'
|
2
|
+
require_relative 'user/Window'
|
3
|
+
require_relative 'user/Message'
|
4
|
+
require_relative 'user/Menu'
|
5
|
+
require_relative 'user/Accelerator'
|
6
|
+
require_relative 'user/Control'
|
7
|
+
require_relative 'user/SystemParametersInfo'
|
data/lib/fzeet/windows.rb
CHANGED
@@ -12,76 +12,5 @@ require_relative 'windows/com'
|
|
12
12
|
require_relative 'windows/ole'
|
13
13
|
require_relative 'windows/shell'
|
14
14
|
|
15
|
-
require_relative 'windows/
|
16
|
-
|
17
|
-
module Fzeet
|
18
|
-
module Windows
|
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
|
-
def DetonateHresult(name, *args)
|
28
|
-
failed = FAILED(result = send(name, *args)) and raise "#{name} failed (hresult #{format('%#08x', result)})."
|
29
|
-
|
30
|
-
result
|
31
|
-
ensure
|
32
|
-
yield failed if block_given?
|
33
|
-
end
|
34
|
-
|
35
|
-
module_function :DetonateLastError, :DetonateHresult
|
36
|
-
|
37
|
-
COMMON_CONTROLS_ACTCTX = {handle: INVALID_HANDLE_VALUE, cookie: FFI::MemoryPointer.new(:ulong), activated: false}
|
38
|
-
|
39
|
-
at_exit {
|
40
|
-
DeactivateActCtx(0, COMMON_CONTROLS_ACTCTX[:cookie].get_ulong(0)) if COMMON_CONTROLS_ACTCTX[:activated]
|
41
|
-
COMMON_CONTROLS_ACTCTX[:cookie].free
|
42
|
-
ReleaseActCtx(COMMON_CONTROLS_ACTCTX[:handle]) unless COMMON_CONTROLS_ACTCTX[:handle] == INVALID_HANDLE_VALUE
|
43
|
-
}
|
44
|
-
|
45
|
-
def EnableVisualStyles
|
46
|
-
raise 'Visual styles already enabled.' if COMMON_CONTROLS_ACTCTX[:activated]
|
47
|
-
|
48
|
-
manifest = "#{ENV['TEMP']}/Fzeet.Common-Controls.manifest"
|
49
|
-
|
50
|
-
File.open(manifest, 'w:utf-8') { |file|
|
51
|
-
file << <<-XML
|
52
|
-
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
|
53
|
-
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
|
54
|
-
<dependency>
|
55
|
-
<dependentAssembly>
|
56
|
-
<assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
|
57
|
-
</dependentAssembly>
|
58
|
-
</dependency>
|
59
|
-
</assembly>
|
60
|
-
XML
|
61
|
-
}
|
62
|
-
|
63
|
-
ac = ACTCTX.new
|
64
|
-
|
65
|
-
ac[:cbSize] = ac.size
|
66
|
-
ac[:lpSource] = source = FFI::MemoryPointer.from_string(File.expand_path(manifest))
|
67
|
-
|
68
|
-
COMMON_CONTROLS_ACTCTX[:handle] = DetonateLastError(INVALID_HANDLE_VALUE, :CreateActCtx, ac) { source.free }
|
69
|
-
|
70
|
-
DetonateLastError(0, :ActivateActCtx, COMMON_CONTROLS_ACTCTX[:handle], COMMON_CONTROLS_ACTCTX[:cookie]) { |failed|
|
71
|
-
next unless failed
|
72
|
-
|
73
|
-
ReleaseActCtx(COMMON_CONTROLS_ACTCTX[:handle]); COMMON_CONTROLS_ACTCTX[:handle] = INVALID_HANDLE_VALUE
|
74
|
-
}
|
75
|
-
|
76
|
-
COMMON_CONTROLS_ACTCTX[:activated] = true
|
77
|
-
end
|
78
|
-
|
79
|
-
def InitializeOle
|
80
|
-
DetonateHresult(:OleInitialize, nil)
|
81
|
-
|
82
|
-
at_exit { OleUninitialize() }
|
83
|
-
end
|
84
|
-
|
85
|
-
module_function :EnableVisualStyles, :InitializeOle
|
86
|
-
end
|
87
|
-
end
|
15
|
+
require_relative 'windows/propsys' if Fzeet::Windows::WINVER.AtLeastWindowsVista?
|
16
|
+
require_relative 'windows/uiribbon' if Fzeet::Windows::WINVER.AtLeastWindowsVista?
|
data/lib/fzeet.rb
CHANGED