fzeet 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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