fzeet 0.5.3 → 0.6.0

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 (91) hide show
  1. data/examples/Command.rbw +2 -2
  2. data/examples/Control/Button.rbw +33 -11
  3. data/examples/Control/ComboBox.rbw +30 -0
  4. data/examples/Control/ComboBoxEx.rbw +30 -0
  5. data/examples/Control/DateTimePicker.rbw +9 -0
  6. data/examples/Control/Edit.rbw +18 -0
  7. data/examples/Control/Header.rbw +9 -0
  8. data/examples/Control/ListBox.rbw +30 -0
  9. data/examples/Control/ListView.rbw +11 -0
  10. data/examples/Control/MonthCalendar.rbw +9 -0
  11. data/examples/Control/ProgressBar.rbw +22 -0
  12. data/examples/Control/PropertySheet.rbw +50 -0
  13. data/examples/Control/Static.rbw +14 -0
  14. data/examples/Control/SysLink.rbw +9 -0
  15. data/examples/Control/TreeView.rbw +28 -0
  16. data/examples/Control/UpDown.rbw +12 -0
  17. data/examples/Dialog/Dialog.rbw +9 -9
  18. data/examples/Dialog/DialogApplication.rbw +1 -1
  19. data/examples/Menu/ContextMenu.rbw +3 -1
  20. data/examples/Menu/MenuPARGB32.rbw +6 -6
  21. data/examples/Paint.rbw +9 -0
  22. data/examples/UIRibbon/ContextPopup.rbw +7 -4
  23. data/examples/UIRibbon/Control/Button.dll +0 -0
  24. data/examples/UIRibbon/Control/Button.rb +91 -0
  25. data/examples/UIRibbon/Control/Button.rbw +20 -0
  26. data/examples/UIRibbon/Control/Button.xml +247 -0
  27. data/examples/UIRibbon/Size.rbw +13 -0
  28. data/examples/res/audio-volume-muted-big.bmp +0 -0
  29. data/examples/res/audio-volume-muted-small.bmp +0 -0
  30. data/examples/res/audio-volume-muted.bmp +0 -0
  31. data/examples/res/go-down-big.bmp +0 -0
  32. data/examples/res/go-down-small.bmp +0 -0
  33. data/examples/res/go-down.bmp +0 -0
  34. data/examples/res/go-jump-big.bmp +0 -0
  35. data/examples/res/go-jump-small.bmp +0 -0
  36. data/examples/res/go-jump.bmp +0 -0
  37. data/examples/res/media-playback-pause-big.bmp +0 -0
  38. data/examples/res/media-playback-pause-small.bmp +0 -0
  39. data/examples/res/media-playback-pause.bmp +0 -0
  40. data/lib/fzeet/Application.rb +4 -2
  41. data/lib/fzeet/Common.rb +44 -2
  42. data/lib/fzeet/Control/Button.rb +17 -0
  43. data/lib/fzeet/Control/ComboBox.rb +46 -0
  44. data/lib/fzeet/Control/ComboBoxEx.rb +35 -0
  45. data/lib/fzeet/Control/Common.rb +2 -0
  46. data/lib/fzeet/Control/DateTimePicker.rb +38 -0
  47. data/lib/fzeet/Control/Edit.rb +53 -0
  48. data/lib/fzeet/Control/Header.rb +46 -0
  49. data/lib/fzeet/Control/ListBox.rb +72 -0
  50. data/lib/fzeet/Control/ListView.rb +90 -0
  51. data/lib/fzeet/Control/MonthCalendar.rb +38 -0
  52. data/lib/fzeet/Control/ProgressBar.rb +40 -0
  53. data/lib/fzeet/Control/Static.rb +34 -0
  54. data/lib/fzeet/Control/SysLink.rb +40 -0
  55. data/lib/fzeet/Control/TreeView.rb +32 -0
  56. data/lib/fzeet/Control/UpDown.rb +36 -0
  57. data/lib/fzeet/Control.rb +13 -0
  58. data/lib/fzeet/UIRibbon.rb +91 -31
  59. data/lib/fzeet/Window/Common.rb +22 -1
  60. data/lib/fzeet/Window/View.rb +15 -0
  61. data/lib/fzeet/Window/WindowMethods.rb +26 -1
  62. data/lib/fzeet/Window.rb +1 -0
  63. data/lib/fzeet/windows/comctl/Button.rb +3 -0
  64. data/lib/fzeet/windows/comctl/ComboBox.rb +12 -0
  65. data/lib/fzeet/windows/comctl/ComboBoxEx.rb +65 -0
  66. data/lib/fzeet/windows/comctl/Common.rb +52 -1
  67. data/lib/fzeet/windows/comctl/DateTimePicker.rb +54 -0
  68. data/lib/fzeet/windows/comctl/Edit.rb +20 -0
  69. data/lib/fzeet/windows/comctl/Header.rb +128 -0
  70. data/lib/fzeet/windows/comctl/ListView.rb +317 -0
  71. data/lib/fzeet/windows/comctl/MonthCalendar.rb +62 -0
  72. data/lib/fzeet/windows/comctl/ProgressBar.rb +31 -0
  73. data/lib/fzeet/windows/comctl/PropertySheet.rb +205 -0
  74. data/lib/fzeet/windows/comctl/SysLink.rb +34 -0
  75. data/lib/fzeet/windows/comctl/TreeView.rb +198 -0
  76. data/lib/fzeet/windows/comctl/UpDown.rb +43 -0
  77. data/lib/fzeet/windows/comctl.rb +12 -0
  78. data/lib/fzeet/windows/common.rb +74 -2
  79. data/lib/fzeet/windows/gdi.rb +2 -0
  80. data/lib/fzeet/windows/libc.rb +4 -0
  81. data/lib/fzeet/windows/ole.rb +0 -22
  82. data/lib/fzeet/windows/shell/Common.rb +2 -0
  83. data/lib/fzeet/windows/user/Control/Button.rb +6 -0
  84. data/lib/fzeet/windows/user/Control/ComboBox.rb +72 -0
  85. data/lib/fzeet/windows/user/Control/Common.rb +1 -1
  86. data/lib/fzeet/windows/user/Control/Edit.rb +71 -0
  87. data/lib/fzeet/windows/user/Control/ListBox.rb +78 -0
  88. data/lib/fzeet/windows/user/Control/Static.rb +49 -0
  89. data/lib/fzeet/windows/user/Control.rb +4 -0
  90. data/lib/fzeet/windows/user/Window.rb +47 -0
  91. metadata +66 -4
data/lib/fzeet/Window.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  require_relative 'Window/Window'
2
+ require_relative 'Window/View'
2
3
  require_relative 'Window/Dialog'
@@ -21,6 +21,9 @@ module Fzeet
21
21
  BCM_GETNOTELENGTH = BCM_FIRST + 0x000B
22
22
  BCM_SETSHIELD = BCM_FIRST + 0x000C
23
23
 
24
+ BST_HOT = 0x0200
25
+ BST_DROPDOWNPUSHED = 0x0400
26
+
24
27
  BCN_FIRST = 0x1_0000_0000 - 1250
25
28
  BCN_LAST = 0x1_0000_0000 - 1350
26
29
  BCN_HOTITEMCHANGE = BCN_FIRST + 0x0001
@@ -0,0 +1,12 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ CBM_FIRST = 0x1700
6
+
7
+ CB_SETMINVISIBLE = CBM_FIRST + 1
8
+ CB_GETMINVISIBLE = CBM_FIRST + 2
9
+ CB_SETCUEBANNER = CBM_FIRST + 3
10
+ CB_GETCUEBANNER = CBM_FIRST + 4
11
+ end
12
+ end
@@ -0,0 +1,65 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ CBES_EX_NOEDITIMAGE = 0x00000001
6
+ CBES_EX_NOEDITIMAGEINDENT = 0x00000002
7
+ CBES_EX_PATHWORDBREAKPROC = 0x00000004
8
+ CBES_EX_NOSIZELIMIT = 0x00000008
9
+ CBES_EX_CASESENSITIVE = 0x00000010
10
+ CBES_EX_TEXTENDELLIPSIS = 0x00000020
11
+
12
+ CBEM_INSERTITEM = WM_USER + 1
13
+ CBEM_SETIMAGELIST = WM_USER + 2
14
+ CBEM_GETIMAGELIST = WM_USER + 3
15
+ CBEM_GETITEM = WM_USER + 4
16
+ CBEM_SETITEM = WM_USER + 5
17
+ CBEM_DELETEITEM = CB_DELETESTRING
18
+ CBEM_GETCOMBOCONTROL = WM_USER + 6
19
+ CBEM_GETEDITCONTROL = WM_USER + 7
20
+ CBEM_SETEXSTYLE = WM_USER + 8
21
+ CBEM_SETEXTENDEDSTYLE = WM_USER + 14
22
+ CBEM_GETEXSTYLE = WM_USER + 9
23
+ CBEM_GETEXTENDEDSTYLE = WM_USER + 9
24
+ CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
25
+ CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
26
+ CBEM_HASEDITCHANGED = WM_USER + 10
27
+ CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME
28
+
29
+ CBEN_FIRST = 0x1_0000_0000 - 800
30
+ CBEN_LAST = 0x1_0000_0000 - 830
31
+ CBEN_GETDISPINFO = CBEN_FIRST - 0
32
+ CBEN_INSERTITEM = CBEN_FIRST - 1
33
+ CBEN_DELETEITEM = CBEN_FIRST - 2
34
+ CBEN_BEGINEDIT = CBEN_FIRST - 4
35
+ CBEN_ENDEDIT = CBEN_FIRST - 5
36
+ CBEN_DRAGBEGIN = CBEN_FIRST - 8
37
+
38
+ CBEIF_TEXT = 0x00000001
39
+ CBEIF_IMAGE = 0x00000002
40
+ CBEIF_SELECTEDIMAGE = 0x00000004
41
+ CBEIF_OVERLAY = 0x00000008
42
+ CBEIF_INDENT = 0x00000010
43
+ CBEIF_LPARAM = 0x00000020
44
+ CBEIF_DI_SETITEM = 0x10000000
45
+
46
+ class COMBOBOXEXITEM < FFI::Struct
47
+ layout \
48
+ :mask, :uint,
49
+ :iItem, :int,
50
+ :pszText, :pointer,
51
+ :cchTextMax, :int,
52
+ :iImage, :int,
53
+ :iSelectedImage, :int,
54
+ :iOverlay, :int,
55
+ :iIndent, :int,
56
+ :lParam, :long
57
+ end
58
+
59
+ class NMCOMBOBOXEX < FFI::Struct
60
+ layout \
61
+ :hdr, NMHDR,
62
+ :ceItem, COMBOBOXEXITEM
63
+ end
64
+ end
65
+ end
@@ -1,4 +1,4 @@
1
- require_relative '../common'
1
+ require_relative '../user'
2
2
 
3
3
  module Fzeet
4
4
  module Windows
@@ -30,5 +30,56 @@ module Fzeet
30
30
  end
31
31
 
32
32
  attach_function :InitCommonControlsEx, [:pointer], :int
33
+
34
+ CCS_TOP = 0x00000001
35
+ CCS_NOMOVEY = 0x00000002
36
+ CCS_BOTTOM = 0x00000003
37
+ CCS_NORESIZE = 0x00000004
38
+ CCS_NOPARENTALIGN = 0x00000008
39
+ CCS_ADJUSTABLE = 0x00000020
40
+ CCS_NODIVIDER = 0x00000040
41
+ CCS_VERT = 0x00000080
42
+ CCS_LEFT = CCS_VERT | CCS_TOP
43
+ CCS_RIGHT = CCS_VERT | CCS_BOTTOM
44
+ CCS_NOMOVEX = CCS_VERT | CCS_NOMOVEY
45
+
46
+ CCM_FIRST = 0x2000
47
+ CCM_LAST = CCM_FIRST + 0x200
48
+ CCM_SETBKCOLOR = CCM_FIRST + 1
49
+ CCM_SETCOLORSCHEME = CCM_FIRST + 2
50
+ CCM_GETCOLORSCHEME = CCM_FIRST + 3
51
+ CCM_GETDROPTARGET = CCM_FIRST + 4
52
+ CCM_SETUNICODEFORMAT = CCM_FIRST + 5
53
+ CCM_GETUNICODEFORMAT = CCM_FIRST + 6
54
+ CCM_SETVERSION = CCM_FIRST + 0x7
55
+ CCM_GETVERSION = CCM_FIRST + 0x8
56
+ CCM_SETNOTIFYWINDOW = CCM_FIRST + 0x9
57
+ CCM_SETWINDOWTHEME = CCM_FIRST + 0xb
58
+ CCM_DPISCALE = CCM_FIRST + 0xc
59
+
60
+ NM_FIRST = 0x1_0000_0000
61
+ NM_LAST = 0x1_0000_0000 - 99
62
+ NM_OUTOFMEMORY = NM_FIRST - 1
63
+ NM_CLICK = NM_FIRST - 2
64
+ NM_DBLCLK = NM_FIRST - 3
65
+ NM_RETURN = NM_FIRST - 4
66
+ NM_RCLICK = NM_FIRST - 5
67
+ NM_RDBLCLK = NM_FIRST - 6
68
+ NM_SETFOCUS = NM_FIRST - 7
69
+ NM_KILLFOCUS = NM_FIRST - 8
70
+ NM_CUSTOMDRAW = NM_FIRST - 12
71
+ NM_HOVER = NM_FIRST - 13
72
+ NM_NCHITTEST = NM_FIRST - 14
73
+ NM_KEYDOWN = NM_FIRST - 15
74
+ NM_RELEASEDCAPTURE = NM_FIRST - 16
75
+ NM_SETCURSOR = NM_FIRST - 17
76
+ NM_CHAR = NM_FIRST - 18
77
+ NM_TOOLTIPSCREATED = NM_FIRST - 19
78
+ NM_LDOWN = NM_FIRST - 20
79
+ NM_RDOWN = NM_FIRST - 21
80
+ NM_THEMECHANGED = NM_FIRST - 22
81
+ NM_FONTCHANGED = NM_FIRST - 23
82
+ NM_CUSTOMTEXT = NM_FIRST - 24
83
+ NM_TVSTATEIMAGECHANGING = NM_FIRST - 24
33
84
  end
34
85
  end
@@ -0,0 +1,54 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ DTS_UPDOWN = 0x0001
6
+ DTS_SHOWNONE = 0x0002
7
+ DTS_SHORTDATEFORMAT = 0x0000
8
+ DTS_LONGDATEFORMAT = 0x0004
9
+ DTS_SHORTDATECENTURYFORMAT = 0x000C
10
+ DTS_TIMEFORMAT = 0x0009
11
+ DTS_APPCANPARSE = 0x0010
12
+ DTS_RIGHTALIGN = 0x0020
13
+
14
+ DTM_FIRST = 0x1000
15
+ DTM_GETSYSTEMTIME = DTM_FIRST + 1
16
+ DTM_SETSYSTEMTIME = DTM_FIRST + 2
17
+ DTM_GETRANGE = DTM_FIRST + 3
18
+ DTM_SETRANGE = DTM_FIRST + 4
19
+ DTM_SETFORMAT = DTM_FIRST + 5
20
+ DTM_SETMCCOLOR = DTM_FIRST + 6
21
+ DTM_GETMCCOLOR = DTM_FIRST + 7
22
+ DTM_GETMONTHCAL = DTM_FIRST + 8
23
+ DTM_SETMCFONT = DTM_FIRST + 9
24
+ DTM_GETMCFONT = DTM_FIRST + 10
25
+ DTM_SETMCSTYLE = DTM_FIRST + 11
26
+ DTM_GETMCSTYLE = DTM_FIRST + 12
27
+ DTM_CLOSEMONTHCAL = DTM_FIRST + 13
28
+ DTM_GETDATETIMEPICKERINFO = DTM_FIRST + 14
29
+ DTM_GETIDEALSIZE = DTM_FIRST + 15
30
+
31
+ DTN_FIRST = 0x1_0000_0000 - 740
32
+ DTN_LAST = 0x1_0000_0000 - 745
33
+ DTN_FIRST2 = 0x1_0000_0000 - 753
34
+ DTN_LAST2 = 0x1_0000_0000 - 799
35
+ DTN_DATETIMECHANGE = DTN_FIRST2 - 6
36
+ DTN_USERSTRING = DTN_FIRST2 - 5
37
+ DTN_WMKEYDOWN = DTN_FIRST2 - 4
38
+ DTN_FORMAT = DTN_FIRST2 - 3
39
+ DTN_FORMATQUERY = DTN_FIRST2 - 2
40
+ DTN_DROPDOWN = DTN_FIRST2 - 1
41
+ DTN_CLOSEUP = DTN_FIRST2
42
+
43
+ GDT_ERROR = -1
44
+ GDT_VALID = 0
45
+ GDT_NONE = 1
46
+
47
+ class NMDATETIMECHANGE < FFI::Struct
48
+ layout \
49
+ :nmhdr, NMHDR,
50
+ :dwFlags, :ulong,
51
+ :st, SYSTEMTIME
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,20 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ ECM_FIRST = 0x1500
6
+
7
+ EM_SETCUEBANNER = ECM_FIRST + 1
8
+ EM_GETCUEBANNER = ECM_FIRST + 2
9
+ EM_SHOWBALLOONTIP = ECM_FIRST + 3
10
+ EM_HIDEBALLOONTIP = ECM_FIRST + 4
11
+
12
+ class EDITBALLOONTIP < FFI::Struct
13
+ layout \
14
+ :cbStruct, :ulong,
15
+ :pszTitle, :pointer,
16
+ :pszText, :pointer,
17
+ :ttiIcon, :int
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,128 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ HDS_HORZ = 0x0000
6
+ HDS_BUTTONS = 0x0002
7
+ HDS_HOTTRACK = 0x0004
8
+ HDS_HIDDEN = 0x0008
9
+ HDS_DRAGDROP = 0x0040
10
+ HDS_FULLDRAG = 0x0080
11
+ HDS_FILTERBAR = 0x0100
12
+ HDS_FLAT = 0x0200
13
+ HDS_CHECKBOXES = 0x0400
14
+ HDS_NOSIZING = 0x0800
15
+ HDS_OVERFLOW = 0x1000
16
+
17
+ HDM_FIRST = 0x1200
18
+ HDM_GETITEMCOUNT = HDM_FIRST + 0
19
+ HDM_INSERTITEM = HDM_FIRST + 1
20
+ HDM_DELETEITEM = HDM_FIRST + 2
21
+ HDM_GETITEM = HDM_FIRST + 3
22
+ HDM_SETITEM = HDM_FIRST + 4
23
+ HDM_LAYOUT = HDM_FIRST + 5
24
+ HDM_HITTEST = HDM_FIRST + 6
25
+ HDM_GETITEMRECT = HDM_FIRST + 7
26
+ HDM_SETIMAGELIST = HDM_FIRST + 8
27
+ HDM_GETIMAGELIST = HDM_FIRST + 9
28
+ HDM_ORDERTOINDEX = HDM_FIRST + 15
29
+ HDM_CREATEDRAGIMAGE = HDM_FIRST + 16
30
+ HDM_GETORDERARRAY = HDM_FIRST + 17
31
+ HDM_SETORDERARRAY = HDM_FIRST + 18
32
+ HDM_SETHOTDIVIDER = HDM_FIRST + 19
33
+ HDM_SETBITMAPMARGIN = HDM_FIRST + 20
34
+ HDM_GETBITMAPMARGIN = HDM_FIRST + 21
35
+ HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
36
+ HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
37
+ HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST + 22
38
+ HDM_EDITFILTER = HDM_FIRST + 23
39
+ HDM_CLEARFILTER = HDM_FIRST + 24
40
+ HDM_GETITEMDROPDOWNRECT = HDM_FIRST + 25
41
+ HDM_GETOVERFLOWRECT = HDM_FIRST + 26
42
+ HDM_GETFOCUSEDITEM = HDM_FIRST + 27
43
+ HDM_SETFOCUSEDITEM = HDM_FIRST + 28
44
+
45
+ HDN_FIRST = 0x1_0000_0000 - 300
46
+ HDN_LAST = 0x1_0000_0000 - 399
47
+ HDN_ITEMCHANGING = HDN_FIRST - 0
48
+ HDN_ITEMCHANGED = HDN_FIRST - 1
49
+ HDN_ITEMCLICK = HDN_FIRST - 2
50
+ HDN_ITEMDBLCLICK = HDN_FIRST - 3
51
+ HDN_DIVIDERDBLCLICK = HDN_FIRST - 5
52
+ HDN_BEGINTRACK = HDN_FIRST - 6
53
+ HDN_ENDTRACK = HDN_FIRST - 7
54
+ HDN_TRACK = HDN_FIRST - 8
55
+ HDN_GETDISPINFO = HDN_FIRST - 9
56
+ HDN_BEGINDRAG = HDN_FIRST - 10
57
+ HDN_ENDDRAG = HDN_FIRST - 11
58
+ HDN_FILTERCHANGE = HDN_FIRST - 12
59
+ HDN_FILTERBTNCLICK = HDN_FIRST - 13
60
+ HDN_BEGINFILTEREDIT = HDN_FIRST - 14
61
+ HDN_ENDFILTEREDIT = HDN_FIRST - 15
62
+ HDN_ITEMSTATEICONCLICK = HDN_FIRST - 16
63
+ HDN_ITEMKEYDOWN = HDN_FIRST - 17
64
+ HDN_DROPDOWN = HDN_FIRST - 18
65
+ HDN_OVERFLOWCLICK = HDN_FIRST - 19
66
+
67
+ HDI_WIDTH = 0x0001
68
+ HDI_HEIGHT = HDI_WIDTH
69
+ HDI_TEXT = 0x0002
70
+ HDI_FORMAT = 0x0004
71
+ HDI_LPARAM = 0x0008
72
+ HDI_BITMAP = 0x0010
73
+ HDI_IMAGE = 0x0020
74
+ HDI_DI_SETITEM = 0x0040
75
+ HDI_ORDER = 0x0080
76
+ HDI_FILTER = 0x0100
77
+ HDI_STATE = 0x0200
78
+
79
+ HDF_LEFT = 0x0000
80
+ HDF_RIGHT = 0x0001
81
+ HDF_CENTER = 0x0002
82
+ HDF_JUSTIFYMASK = 0x0003
83
+ HDF_RTLREADING = 0x0004
84
+ HDF_BITMAP = 0x2000
85
+ HDF_STRING = 0x4000
86
+ HDF_OWNERDRAW = 0x8000
87
+ HDF_IMAGE = 0x0800
88
+ HDF_BITMAP_ON_RIGHT = 0x1000
89
+ HDF_SORTUP = 0x0400
90
+ HDF_SORTDOWN = 0x0200
91
+ HDF_CHECKBOX = 0x0040
92
+ HDF_CHECKED = 0x0080
93
+ HDF_FIXEDWIDTH = 0x0100
94
+ HDF_SPLITBUTTON = 0x1000000
95
+
96
+ HDFT_ISSTRING = 0x0000
97
+ HDFT_ISNUMBER = 0x0001
98
+ HDFT_ISDATE = 0x0002
99
+ HDFT_HASNOVALUE = 0x8000
100
+
101
+ HDIS_FOCUSED = 0x00000001
102
+
103
+ class HDITEM < FFI::Struct
104
+ layout *[
105
+ :mask, :uint,
106
+ :cxy, :int,
107
+ :pszText, :pointer,
108
+ :hbm, :pointer,
109
+ :cchTextMax, :int,
110
+ :fmt, :int,
111
+ :lParam, :long,
112
+ :iImage, :int,
113
+ :iOrder, :int,
114
+ :type, :uint,
115
+ :pvFilter, :pointer,
116
+ (WINVER.AtLeastWindowsVista?) ? [:state, :uint] : nil
117
+ ].flatten.compact
118
+ end
119
+
120
+ class NMHEADER < FFI::Struct
121
+ layout \
122
+ :hdr, NMHDR,
123
+ :iItem, :int,
124
+ :iButton, :int,
125
+ :pitem, :pointer
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,317 @@
1
+ require_relative 'Common'
2
+
3
+ module Fzeet
4
+ module Windows
5
+ LVS_ICON = 0x0000
6
+ LVS_REPORT = 0x0001
7
+ LVS_SMALLICON = 0x0002
8
+ LVS_LIST = 0x0003
9
+ LVS_TYPEMASK = 0x0003
10
+ LVS_SINGLESEL = 0x0004
11
+ LVS_SHOWSELALWAYS = 0x0008
12
+ LVS_SORTASCENDING = 0x0010
13
+ LVS_SORTDESCENDING = 0x0020
14
+ LVS_SHAREIMAGELISTS = 0x0040
15
+ LVS_NOLABELWRAP = 0x0080
16
+ LVS_AUTOARRANGE = 0x0100
17
+ LVS_EDITLABELS = 0x0200
18
+ LVS_OWNERDATA = 0x1000
19
+ LVS_NOSCROLL = 0x2000
20
+ LVS_TYPESTYLEMASK = 0xfc00
21
+ LVS_ALIGNTOP = 0x0000
22
+ LVS_ALIGNLEFT = 0x0800
23
+ LVS_ALIGNMASK = 0x0c00
24
+ LVS_OWNERDRAWFIXED = 0x0400
25
+ LVS_NOCOLUMNHEADER = 0x4000
26
+ LVS_NOSORTHEADER = 0x8000
27
+
28
+ LVS_EX_GRIDLINES = 0x00000001
29
+ LVS_EX_SUBITEMIMAGES = 0x00000002
30
+ LVS_EX_CHECKBOXES = 0x00000004
31
+ LVS_EX_TRACKSELECT = 0x00000008
32
+ LVS_EX_HEADERDRAGDROP = 0x00000010
33
+ LVS_EX_FULLROWSELECT = 0x00000020
34
+ LVS_EX_ONECLICKACTIVATE = 0x00000040
35
+ LVS_EX_TWOCLICKACTIVATE = 0x00000080
36
+ LVS_EX_FLATSB = 0x00000100
37
+ LVS_EX_REGIONAL = 0x00000200
38
+ LVS_EX_INFOTIP = 0x00000400
39
+ LVS_EX_UNDERLINEHOT = 0x00000800
40
+ LVS_EX_UNDERLINECOLD = 0x00001000
41
+ LVS_EX_MULTIWORKAREAS = 0x00002000
42
+ LVS_EX_LABELTIP = 0x00004000
43
+ LVS_EX_BORDERSELECT = 0x00008000
44
+ LVS_EX_DOUBLEBUFFER = 0x00010000
45
+ LVS_EX_HIDELABELS = 0x00020000
46
+ LVS_EX_SINGLEROW = 0x00040000
47
+ LVS_EX_SNAPTOGRID = 0x00080000
48
+ LVS_EX_SIMPLESELECT = 0x00100000
49
+ LVS_EX_JUSTIFYCOLUMNS = 0x00200000
50
+ LVS_EX_TRANSPARENTBKGND = 0x00400000
51
+ LVS_EX_TRANSPARENTSHADOWTEXT = 0x00800000
52
+ LVS_EX_AUTOAUTOARRANGE = 0x01000000
53
+ LVS_EX_HEADERINALLVIEWS = 0x02000000
54
+ LVS_EX_AUTOCHECKSELECT = 0x08000000
55
+ LVS_EX_AUTOSIZECOLUMNS = 0x10000000
56
+ LVS_EX_COLUMNSNAPPOINTS = 0x40000000
57
+ LVS_EX_COLUMNOVERFLOW = 0x80000000
58
+
59
+ LVM_FIRST = 0x1000
60
+ LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
61
+ LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
62
+ LVM_GETBKCOLOR = LVM_FIRST + 0
63
+ LVM_SETBKCOLOR = LVM_FIRST + 1
64
+ LVM_GETIMAGELIST = LVM_FIRST + 2
65
+ LVM_SETIMAGELIST = LVM_FIRST + 3
66
+ LVM_GETITEMCOUNT = LVM_FIRST + 4
67
+ LVM_GETITEM = LVM_FIRST + 5
68
+ LVM_SETITEM = LVM_FIRST + 6
69
+ LVM_INSERTITEM = LVM_FIRST + 7
70
+ LVM_DELETEITEM = LVM_FIRST + 8
71
+ LVM_DELETEALLITEMS = LVM_FIRST + 9
72
+ LVM_GETCALLBACKMASK = LVM_FIRST + 10
73
+ LVM_SETCALLBACKMASK = LVM_FIRST + 11
74
+ LVM_GETNEXTITEM = LVM_FIRST + 12
75
+ LVM_FINDITEM = LVM_FIRST + 13
76
+ LVM_GETITEMRECT = LVM_FIRST + 14
77
+ LVM_SETITEMPOSITION = LVM_FIRST + 15
78
+ LVM_GETITEMPOSITION = LVM_FIRST + 16
79
+ LVM_GETSTRINGWIDTH = LVM_FIRST + 17
80
+ LVM_HITTEST = LVM_FIRST + 18
81
+ LVM_ENSUREVISIBLE = LVM_FIRST + 19
82
+ LVM_SCROLL = LVM_FIRST + 20
83
+ LVM_REDRAWITEMS = LVM_FIRST + 21
84
+ LVM_ARRANGE = LVM_FIRST + 22
85
+ LVM_EDITLABEL = LVM_FIRST + 23
86
+ LVM_GETEDITCONTROL = LVM_FIRST + 24
87
+ LVM_GETCOLUMN = LVM_FIRST + 25
88
+ LVM_SETCOLUMN = LVM_FIRST + 26
89
+ LVM_INSERTCOLUMN = LVM_FIRST + 27
90
+ LVM_DELETECOLUMN = LVM_FIRST + 28
91
+ LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
92
+ LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
93
+ LVM_GETHEADER = LVM_FIRST + 31
94
+ LVM_CREATEDRAGIMAGE = LVM_FIRST + 33
95
+ LVM_GETVIEWRECT = LVM_FIRST + 34
96
+ LVM_GETTEXTCOLOR = LVM_FIRST + 35
97
+ LVM_SETTEXTCOLOR = LVM_FIRST + 36
98
+ LVM_GETTEXTBKCOLOR = LVM_FIRST + 37
99
+ LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
100
+ LVM_GETTOPINDEX = LVM_FIRST + 39
101
+ LVM_GETCOUNTPERPAGE = LVM_FIRST + 40
102
+ LVM_GETORIGIN = LVM_FIRST + 41
103
+ LVM_UPDATE = LVM_FIRST + 42
104
+ LVM_SETITEMSTATE = LVM_FIRST + 43
105
+ LVM_GETITEMSTATE = LVM_FIRST + 44
106
+ LVM_GETITEMTEXT = LVM_FIRST + 45
107
+ LVM_SETITEMTEXT = LVM_FIRST + 46
108
+ LVM_SETITEMCOUNT = LVM_FIRST + 47
109
+ LVM_SORTITEMS = LVM_FIRST + 48
110
+ LVM_SETITEMPOSITION32 = LVM_FIRST + 49
111
+ LVM_GETSELECTEDCOUNT = LVM_FIRST + 50
112
+ LVM_GETITEMSPACING = LVM_FIRST + 51
113
+ LVM_GETISEARCHSTRING = LVM_FIRST + 52
114
+ LVM_SETICONSPACING = LVM_FIRST + 53
115
+ LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54
116
+ LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55
117
+ LVM_GETSUBITEMRECT = LVM_FIRST + 56
118
+ LVM_SUBITEMHITTEST = LVM_FIRST + 57
119
+ LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58
120
+ LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59
121
+ LVM_SETHOTITEM = LVM_FIRST + 60
122
+ LVM_GETHOTITEM = LVM_FIRST + 61
123
+ LVM_SETHOTCURSOR = LVM_FIRST + 62
124
+ LVM_GETHOTCURSOR = LVM_FIRST + 63
125
+ LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64
126
+ LVM_SETWORKAREAS = LVM_FIRST + 65
127
+ LVM_GETWORKAREAS = LVM_FIRST + 70
128
+ LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73
129
+ LVM_GETSELECTIONMARK = LVM_FIRST + 66
130
+ LVM_SETSELECTIONMARK = LVM_FIRST + 67
131
+ LVM_SETHOVERTIME = LVM_FIRST + 71
132
+ LVM_GETHOVERTIME = LVM_FIRST + 72
133
+ LVM_SETTOOLTIPS = LVM_FIRST + 74
134
+ LVM_GETTOOLTIPS = LVM_FIRST + 78
135
+ LVM_SORTITEMSEX = LVM_FIRST + 81
136
+ LVM_SETBKIMAGE = LVM_FIRST + 68
137
+ LVM_GETBKIMAGE = LVM_FIRST + 69
138
+ LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140
139
+ LVM_SETVIEW = LVM_FIRST + 142
140
+ LVM_GETVIEW = LVM_FIRST + 143
141
+ LVM_INSERTGROUP = LVM_FIRST + 145
142
+ LVM_SETGROUPINFO = LVM_FIRST + 147
143
+ LVM_GETGROUPINFO = LVM_FIRST + 149
144
+ LVM_REMOVEGROUP = LVM_FIRST + 150
145
+ LVM_MOVEGROUP = LVM_FIRST + 151
146
+ LVM_GETGROUPCOUNT = LVM_FIRST + 152
147
+ LVM_GETGROUPINFOBYINDEX = LVM_FIRST + 153
148
+ LVM_MOVEITEMTOGROUP = LVM_FIRST + 154
149
+ LVM_GETGROUPRECT = LVM_FIRST + 98
150
+ LVM_SETGROUPMETRICS = LVM_FIRST + 155
151
+ LVM_GETGROUPMETRICS = LVM_FIRST + 156
152
+ LVM_ENABLEGROUPVIEW = LVM_FIRST + 157
153
+ LVM_SORTGROUPS = LVM_FIRST + 158
154
+ LVM_INSERTGROUPSORTED = LVM_FIRST + 159
155
+ LVM_REMOVEALLGROUPS = LVM_FIRST + 160
156
+ LVM_HASGROUP = LVM_FIRST + 161
157
+ LVM_GETGROUPSTATE = LVM_FIRST + 92
158
+ LVM_GETFOCUSEDGROUP = LVM_FIRST + 93
159
+ LVM_SETTILEVIEWINFO = LVM_FIRST + 162
160
+ LVM_GETTILEVIEWINFO = LVM_FIRST + 163
161
+ LVM_SETTILEINFO = LVM_FIRST + 164
162
+ LVM_GETTILEINFO = LVM_FIRST + 165
163
+ LVM_SETINSERTMARK = LVM_FIRST + 166
164
+ LVM_GETINSERTMARK = LVM_FIRST + 167
165
+ LVM_INSERTMARKHITTEST = LVM_FIRST + 168
166
+ LVM_GETINSERTMARKRECT = LVM_FIRST + 169
167
+ LVM_SETINSERTMARKCOLOR = LVM_FIRST + 170
168
+ LVM_GETINSERTMARKCOLOR = LVM_FIRST + 171
169
+ LVM_SETINFOTIP = LVM_FIRST + 173
170
+ LVM_GETSELECTEDCOLUMN = LVM_FIRST + 174
171
+ LVM_ISGROUPVIEWENABLED = LVM_FIRST + 175
172
+ LVM_GETOUTLINECOLOR = LVM_FIRST + 176
173
+ LVM_SETOUTLINECOLOR = LVM_FIRST + 177
174
+ LVM_CANCELEDITLABEL = LVM_FIRST + 179
175
+ LVM_MAPINDEXTOID = LVM_FIRST + 180
176
+ LVM_MAPIDTOINDEX = LVM_FIRST + 181
177
+ LVM_ISITEMVISIBLE = LVM_FIRST + 182
178
+ LVM_GETEMPTYTEXT = LVM_FIRST + 204
179
+ LVM_GETFOOTERRECT = LVM_FIRST + 205
180
+ LVM_GETFOOTERINFO = LVM_FIRST + 206
181
+ LVM_GETFOOTERITEMRECT = LVM_FIRST + 207
182
+ LVM_GETFOOTERITEM = LVM_FIRST + 208
183
+ LVM_GETITEMINDEXRECT = LVM_FIRST + 209
184
+ LVM_SETITEMINDEXSTATE = LVM_FIRST + 210
185
+ LVM_GETNEXTITEMINDEX = LVM_FIRST + 211
186
+
187
+ LVN_FIRST = 0x1_0000_0000 - 100
188
+ LVN_LAST = 0x1_0000_0000 - 199
189
+ LVN_ITEMCHANGING = LVN_FIRST - 0
190
+ LVN_ITEMCHANGED = LVN_FIRST - 1
191
+ LVN_INSERTITEM = LVN_FIRST - 2
192
+ LVN_DELETEITEM = LVN_FIRST - 3
193
+ LVN_DELETEALLITEMS = LVN_FIRST - 4
194
+ LVN_BEGINLABELEDIT = LVN_FIRST - 5
195
+ LVN_ENDLABELEDIT = LVN_FIRST - 6
196
+ LVN_COLUMNCLICK = LVN_FIRST - 8
197
+ LVN_BEGINDRAG = LVN_FIRST - 9
198
+ LVN_BEGINRDRAG = LVN_FIRST - 11
199
+ LVN_ODCACHEHINT = LVN_FIRST - 13
200
+ LVN_ODFINDITEM = LVN_FIRST - 52
201
+ LVN_ITEMACTIVATE = LVN_FIRST - 14
202
+ LVN_ODSTATECHANGED = LVN_FIRST - 15
203
+ LVN_HOTTRACK = LVN_FIRST - 21
204
+ LVN_GETDISPINFO = LVN_FIRST - 50
205
+ LVN_SETDISPINFO = LVN_FIRST - 51
206
+ LVN_KEYDOWN = LVN_FIRST - 55
207
+ LVN_MARQUEEBEGIN = LVN_FIRST - 56
208
+ LVN_GETINFOTIP = LVN_FIRST - 57
209
+ LVN_INCREMENTALSEARCH = LVN_FIRST - 62
210
+ LVN_COLUMNDROPDOWN = LVN_FIRST - 64
211
+ LVN_COLUMNOVERFLOWCLICK = LVN_FIRST - 66
212
+ LVN_BEGINSCROLL = LVN_FIRST - 80
213
+ LVN_ENDSCROLL = LVN_FIRST - 81
214
+ LVN_LINKCLICK = LVN_FIRST - 84
215
+ LVN_GETEMPTYMARKUP = LVN_FIRST - 87
216
+
217
+ LVCF_FMT = 0x0001
218
+ LVCF_WIDTH = 0x0002
219
+ LVCF_TEXT = 0x0004
220
+ LVCF_SUBITEM = 0x0008
221
+ LVCF_IMAGE = 0x0010
222
+ LVCF_ORDER = 0x0020
223
+ LVCF_MINWIDTH = 0x0040
224
+ LVCF_DEFAULTWIDTH = 0x0080
225
+ LVCF_IDEALWIDTH = 0x0100
226
+
227
+ LVCFMT_LEFT = 0x0000
228
+ LVCFMT_RIGHT = 0x0001
229
+ LVCFMT_CENTER = 0x0002
230
+ LVCFMT_JUSTIFYMASK = 0x0003
231
+ LVCFMT_IMAGE = 0x0800
232
+ LVCFMT_BITMAP_ON_RIGHT = 0x1000
233
+ LVCFMT_COL_HAS_IMAGES = 0x8000
234
+ LVCFMT_FIXED_WIDTH = 0x00100
235
+ LVCFMT_NO_DPI_SCALE = 0x40000
236
+ LVCFMT_FIXED_RATIO = 0x80000
237
+ LVCFMT_LINE_BREAK = 0x100000
238
+ LVCFMT_FILL = 0x200000
239
+ LVCFMT_WRAP = 0x400000
240
+ LVCFMT_NO_TITLE = 0x800000
241
+ LVCFMT_TILE_PLACEMENTMASK = LVCFMT_LINE_BREAK | LVCFMT_FILL
242
+ LVCFMT_SPLITBUTTON = 0x1000000
243
+
244
+ class LVCOLUMN < FFI::Struct
245
+ layout *[
246
+ :mask, :uint,
247
+ :fmt, :int,
248
+ :cx, :int,
249
+ :pszText, :pointer,
250
+ :cchTextMax, :int,
251
+ :iSubItem, :int,
252
+ :iImage, :int,
253
+ :iOrder, :int,
254
+ (WINVER.AtLeastWindowsVista?) ? [
255
+ :cxMin, :int,
256
+ :cxDefault, :int,
257
+ :cxIdeal, :int
258
+ ] : nil
259
+ ].flatten.compact
260
+ end
261
+
262
+ LVIF_TEXT = 0x00000001
263
+ LVIF_IMAGE = 0x00000002
264
+ LVIF_PARAM = 0x00000004
265
+ LVIF_STATE = 0x00000008
266
+ LVIF_INDENT = 0x00000010
267
+ LVIF_NORECOMPUTE = 0x00000800
268
+ LVIF_GROUPID = 0x00000100
269
+ LVIF_COLUMNS = 0x00000200
270
+ LVIF_COLFMT = 0x00010000
271
+
272
+ LVIS_FOCUSED = 0x0001
273
+ LVIS_SELECTED = 0x0002
274
+ LVIS_CUT = 0x0004
275
+ LVIS_DROPHILITED = 0x0008
276
+ LVIS_GLOW = 0x0010
277
+ LVIS_ACTIVATING = 0x0020
278
+ LVIS_OVERLAYMASK = 0x0F00
279
+ LVIS_STATEIMAGEMASK = 0xF000
280
+
281
+ class LVITEM < FFI::Struct
282
+ layout *[
283
+ :mask, :uint,
284
+ :iItem, :int,
285
+ :iSubItem, :int,
286
+ :state, :uint,
287
+ :stateMask, :uint,
288
+ :pszText, :pointer,
289
+ :cchTextMax, :int,
290
+ :iImage, :int,
291
+ :lParam, :long,
292
+ :iIndent, :int,
293
+ (WINVER.AtLeastWindowsXP?) ? [
294
+ :iGroupId, :int,
295
+ :cColumns, :uint,
296
+ :puColumns, :pointer,
297
+ ] : nil,
298
+ (WINVER.AtLeastWindowsVista?) ? [
299
+ :piColFmt, :pointer,
300
+ :iGroup, :int
301
+ ] : nil
302
+ ].flatten.compact
303
+ end
304
+
305
+ class NMLISTVIEW < FFI::Struct
306
+ layout \
307
+ :hdr, NMHDR,
308
+ :iItem, :int,
309
+ :iSubItem, :int,
310
+ :uNewState, :uint,
311
+ :uOldState, :uint,
312
+ :uChanged, :uint,
313
+ :ptAction, POINT,
314
+ :lParam, :long,
315
+ end
316
+ end
317
+ end