diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index 4e64ce880d..72d5777642 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -40,7 +40,7 @@ interface uses SysUtils, Types, Classes, Math, LCLStrConsts, LResources, LCLIntf, LCLType, LCLProc, AvgLvlTree, LMessages, ImgList, ActnList, GraphType, Graphics, Menus, - Controls, Forms, StdCtrls, ExtCtrls, ToolWin, CommCtrl, Buttons, Themes; + Controls, Forms, StdCtrls, ExtCtrls, ToolWin, Buttons, Themes; type THitTest = (htAbove, htBelow, htNowhere, htOnItem, htOnButton, htOnIcon, diff --git a/lcl/interfaces/carbon/carbonint.pas b/lcl/interfaces/carbon/carbonint.pas index e516b44393..676e6932de 100644 --- a/lcl/interfaces/carbon/carbonint.pas +++ b/lcl/interfaces/carbon/carbonint.pas @@ -165,7 +165,7 @@ uses CarbonProc, CarbonDbgConsts, CarbonUtils, Buttons, StdCtrls, PairSplitter, ComCtrls, CListBox, Calendar, Arrow, - Spin, CommCtrl, ExtCtrls, FileCtrl, LResources; + Spin, ExtCtrls, FileCtrl, LResources; // the implementation of the utility methods {$I carbonobject.inc} diff --git a/lcl/interfaces/gtk/gtkint.pp b/lcl/interfaces/gtk/gtkint.pp index c80ba14c13..b8ca69980e 100644 --- a/lcl/interfaces/gtk/gtkint.pp +++ b/lcl/interfaces/gtk/gtkint.pp @@ -362,7 +362,7 @@ uses GtkThemes, //////////////////////////////////////////////////// Buttons, StdCtrls, PairSplitter, - GTKWinApiWindow, ComCtrls, CListBox, Calendar, Arrow, Spin, CommCtrl, + GTKWinApiWindow, ComCtrls, CListBox, Calendar, Arrow, Spin, ExtCtrls, FileCtrl, LResources, gtkglobals; {$I gtklistsl.inc} diff --git a/lcl/interfaces/gtk/gtkproc.pp b/lcl/interfaces/gtk/gtkproc.pp index d397d637f4..7a94d2bd90 100644 --- a/lcl/interfaces/gtk/gtkproc.pp +++ b/lcl/interfaces/gtk/gtkproc.pp @@ -55,7 +55,7 @@ uses Math, // Math after gtk to get the correct Float type LMessages, LCLProc, LCLStrConsts, LCLIntf, LCLType, DynHashArray, Maps, Masks, GraphType, GraphMath, Graphics, GTKWinApiWindow, LResources, Controls, Forms, - Buttons, Menus, StdCtrls, ComCtrls, CommCtrl, ExtCtrls, Dialogs, ExtDlgs, + Buttons, Menus, StdCtrls, ComCtrls, ExtCtrls, Dialogs, ExtDlgs, FileUtil, ImgList, GtkFontCache, GTKGlobals, gtkDef, GtkExtra, GtkDebug; diff --git a/lcl/interfaces/gtk/gtkwscomctrls.pp b/lcl/interfaces/gtk/gtkwscomctrls.pp index e52eeb1df4..7a86b6775f 100644 --- a/lcl/interfaces/gtk/gtkwscomctrls.pp +++ b/lcl/interfaces/gtk/gtkwscomctrls.pp @@ -34,7 +34,7 @@ uses GLib, Gtk, Gdk, {$ENDIF} // LCL - ComCtrls, Classes, FPCAdds, LCLType, LMessages, Controls, Graphics, CommCtrl, + ComCtrls, Classes, FPCAdds, LCLType, LMessages, Controls, Graphics, StdCtrls, LCLProc, ImgList, Math, // widgetset WSComCtrls, WSLCLClasses, WSProc, WSControls, diff --git a/lcl/interfaces/gtk2/gtk2wscomctrls.pp b/lcl/interfaces/gtk2/gtk2wscomctrls.pp index 5a7dfddcd8..ed6e6c308e 100644 --- a/lcl/interfaces/gtk2/gtk2wscomctrls.pp +++ b/lcl/interfaces/gtk2/gtk2wscomctrls.pp @@ -30,7 +30,7 @@ uses // libs GLib2, Gtk2, Gdk2, Gdk2pixbuf, // LCL - ComCtrls, Classes, FPCAdds, LCLType, LMessages, Controls, Graphics, CommCtrl, + ComCtrls, Classes, FPCAdds, LCLType, LMessages, Controls, Graphics, StdCtrls, LCLProc, ImgList, Math, Sysutils, // widgetset WSComCtrls, WSLCLClasses, WSProc, diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index cae048b5b4..ecb1a8e518 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -36,7 +36,7 @@ uses // Free Pascal Classes, SysUtils, Types, // LCL - LCLType, LCLProc, LCLIntf, LMessages, Buttons, Forms, Controls, ComCtrls, CommCtrl, + LCLType, LCLProc, LCLIntf, LMessages, Buttons, Forms, Controls, ComCtrls, ExtCtrls, StdCtrls, Menus, Dialogs; type diff --git a/lcl/lcltype.pp b/lcl/lcltype.pp index c3243fa789..4d23c70272 100644 --- a/lcl/lcltype.pp +++ b/lcl/lcltype.pp @@ -2428,6 +2428,134 @@ const MK_XBUTTON1 = $20; MK_XBUTTON2 = $40; +//============================================== +// Constants from commctrl +//============================================== + +//------------- +// Common +//------------- + +const + //all controls + NM_FIRST = 0; + NM_OUTOFMEMORY = NM_FIRST - 1; + NM_CLICK = NM_FIRST - 2; + NM_DBLCLK = NM_FIRST - 3; + NM_RETURN = NM_FIRST - 4; + NM_RCLICK = NM_FIRST - 5; + NM_RDBLCLK = NM_FIRST - 6; + NM_SETFOCUS = NM_FIRST - 7; + NM_KILLFOCUS = NM_FIRST - 8; + NM_CUSTOMDRAW = NM_FIRST - 12; + NM_HOVER = NM_FIRST - 13; + NM_NCHITTEST = NM_FIRST - 14; + NM_KEYDOWN = NM_FIRST - 15; + NM_RELEASEDCAPTURE = NM_FIRST - 16; + NM_SETCURSOR = NM_FIRST - 17; + NM_CHAR = NM_FIRST - 18; + + NM_LAST = NM_FIRST - 99; + + //listview + LVN_FIRST = -100; + LVN_LAST = -199; + + //header + HDN_FIRST = -300; + HDN_LAST = -399; + + //treeview + TVN_FIRST = -400; + TVN_LAST = -499; + + //tooltips + TTN_FIRST = -520; + TTN_LAST = -549; + + //tab control + TCN_FIRST = -550; + TCN_LAST = -580; + + // toolbar + TBN_First = -700; + TBN_Last = -720; + +const + CCS_TOP = $00000001; + CCS_NOMOVEY = $00000002; + CCS_BOTTOM = $00000003; + CCS_NORESIZE = $00000004; + CCS_NOPARENTALIGN = $00000008; + CCS_ADJUSTABLE = $00000020; + CCS_NODIVIDER = $00000040; + CCS_VERT = $00000080; + CCS_LEFT = (CCS_VERT or CCS_TOP); + CCS_RIGHT = (CCS_VERT or CCS_BOTTOM); + CCS_NOMOVEX = (CCS_VERT or CCS_NOMOVEY); + + ICC_LISTVIEW_CLASSES = $00000001; + ICC_TREEVIEW_CLASSES = $00000002; + ICC_BAR_CLASSES = $00000004; + ICC_TAB_CLASSES = $00000008; + ICC_UPDOWN_CLASS = $00000010; + ICC_PROGRESS_CLASS = $00000020; + ICC_HOTKEY_CLASS = $00000040; + ICC_ANIMATE_CLASS = $00000080; + ICC_WIN95_CLASSES = $000000FF; + ICC_DATE_CLASSES = $00000100; + ICC_USEREX_CLASSES = $00000200; + ICC_COOL_CLASSES = $00000400; + ICC_INTERNET_CLASSES = $00000800; + ICC_PAGESCROLLER_CLASS = $00001000; + ICC_NATIVEFNTCTL_CLASS = $00002000; + +//------------- +// Listview +//------------- +const + LVN_ITEMCHANGING = LVN_FIRST-0; + LVN_ITEMCHANGED = LVN_FIRST-1; + LVN_INSERTITEM = LVN_FIRST-2; + LVN_DELETEITEM = LVN_FIRST-3; + LVN_DELETEALLITEMS = LVN_FIRST-4; + LVN_COLUMNCLICK = LVN_FIRST-8; + LVN_BEGINDRAG = LVN_FIRST-9; + LVN_BEGINRDRAG = LVN_FIRST-11; + +const + LVIF_TEXT = $0001; + LVIF_IMAGE = $0002; + LVIF_PARAM = $0004; + LVIF_STATE = $0008; + LVIF_INDENT = $0010; + LVIF_NORECOMPUTE = $0800; + + LVIS_FOCUSED = $0001; + LVIS_SELECTED = $0002; + LVIS_CUT = $0004; + LVIS_DROPHILITED = $0008; + LVIS_ACTIVATING = $0020; + + LVIS_OVERLAYMASK = $0F00; + LVIS_STATEIMAGEMASK = $F000; + +type + PNMListView = ^TNMListView; + TNMListView = packed record + hdr: TNMHDR; + iItem: Integer; + iSubItem: Integer; + uNewState: UINT; + uOldState: UINT; + uChanged: UINT; + ptAction: TPoint; + lParam: LPARAM; + end; + _NM_LISTVIEW = TNMListView; + NM_LISTVIEW = TNMListView; + tagNMLISTVIEW = TNMListView; + Function CS_To_String(CompStyle: Integer): String; // key mapping