// **************************************************************************** // // ** ** // // ** Header : cGrid ** // // ** ** // // ** Purpose : Header file for cGrid class ** // // ** ** // // ** Author : Ulbe Stellema ** // // ** Data Access Europe ** // // ** ** // // ** Date : june 4, 2002 ** // // ** ** // // **************************************************************************** // // Objects Register_Object oHorizontalBar Register_Object oVerticalBar // Support functions Register_Function ObjectFromIndex Integer iIndex Returns Handle Register_Function IndexFromObject Handle hoObject Returns Integer Register_Function ColumnWidth Integer iColumn Returns Integer Register_Function RowHeight Integer iRow Returns Integer Register_Function FirstVisibleRow Returns Integer Register_Function LastVisibleRow Returns Integer Register_Function FirstVisibleColumn Returns Integer Register_Function LastVisibleColumn Returns Integer Register_Function RowCount Returns Integer Register_Function ColumnCount Returns Integer Register_Function SubColumnCount Integer iRow Integer iColumn Returns Integer Register_Function CurrentRow Returns Integer Register_Function CurrentColumn Returns Integer Register_Function CurrentSubColumn Returns Integer Register_Function RowData Integer iRow Returns Integer Register_Function ColumnData Integer iRow Integer iColumn Returns Integer Register_Function SubColumnData Integer iRow Integer iColumn Integer iSubColumn Returns Integer // API functions Register_Function APIRowCount Returns Integer Register_Function APISubColumnCount Integer iRow Integer iColumn Returns Integer Register_Function APISubColumnData Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnReadOnly Integer iRow Integer iColumn Integer iSubColumn Returns Boolean Register_Function APISubColumnText Integer iRow Integer iColumn Integer iSubColumn Returns String Register_Function APISubColumnImage Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnAlignment Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnBackColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnSelectedBackColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnTextColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnSelectedTextColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnHorizontalLineColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnVerticalLineColor Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnHorizontalLineThickness Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnVerticalLineThickness Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APISubColumnFont Integer iRow Integer iColumn Integer iSubColumn Returns Integer Register_Function APIIsValidDropTarget Integer iRow Integer iColumn Integer iSubColumn Returns Integer // cGrid properties Register_Function phoImageList Returns Integer Register_Function peGridLines Returns Integer Register_Function pbRetainSelectedItem Returns Boolean Register_Function pbReOrderColumns Returns Boolean Register_Function phoHorizontalBar Returns Integer Register_Function phoVerticalBar Returns Integer Register_Function phoImageList Returns Integer Register_Function phoColumns Returns Integer Register_Function phoHeader Returns Integer Register_Function phoList Returns Integer // cListColumn properties Register_Function piWidth Returns Integer Register_Function peWrapStyle Returns Integer Register_Function peAlignment Returns Integer Register_Function pbResize Returns Boolean // cHeader properties Register_Function psHeaderLabel Returns String Register_Function psHeaderBitmap Returns String Register_Function peHeaderAlignment Returns Integer Register_Function peHeaderBitmapAlignment Returns Integer Register_Function piHeaderImage Returns Integer // Used to calculate menu define CXGAP for 1 define CXTEXTMARGIN for 2 define CXBUTTONMARGIN for 2 define CYBUTTONMARGIN for 2 // peGridLines define glHorizontal for |CI$01 define glVertical for |CI$02 define glBoth for (glHorizontal iOr glVertical) // peWrapStyle define wsWrap for |CI$01 define wsEllipsis for |CI$02 define wsClip for |CI$04 // peAlignment define alLeft for |CI$01 define alRight for |CI$02 define alCenter for |CI$04 // MothCalendar constants // peSelectionRange define srDay for |CI1 define srWorkweek for |CI5 define srWeek for |CI7 define srMonth for |CI0 define WM_MOUSEWHEEL for |CI$020A // Owner draw control types define ODT_MENU for 1 define ODT_LISTBOX for 2 define ODT_COMBOBOX for 3 define ODT_BUTTON for 4 define ODT_STATIC for 5 // Owner draw actions define ODA_DRAWENTIRE for |CI$0001 define ODA_SELECT for |CI$0002 define ODA_FOCUS for |CI$0004 // Owner draw state define ODS_SELECTED for |CI$0001 define ODS_GRAYED for |CI$0002 define ODS_DISABLED for |CI$0004 define ODS_CHECKED for |CI$0008 define ODS_FOCUS for |CI$0010 define ODS_DEFAULT for |CI$0020 define ODS_COMBOBOXEDIT for |CI$1000 define ODS_HOTLIGHT for |CI$0040 define ODS_INACTIVE for |CI$0080 // ListBox commands define IDOK for 1 define IDCANCEL for 2 define IDABORT for 3 define IDRETRY for 4 define IDIGNORE for 5 define IDYES for 6 define IDNO for 7 define IDCLOSE for 8 define IDHELP for 9 // ListBox return values define LB_OKAY for 0 define LB_ERR for -1 define LB_ERRSPACE for -2 // ListBox styles define LBS_NOTIFY for |CI$0001 define LBS_SORT for |CI$0002 define LBS_NOREDRAW for |CI$0004 define LBS_MULTIPLESEL for |CI$0008 define LBS_OWNERDRAWFIXED for |CI$0010 define LBS_OWNERDRAWVARIABLE for |CI$0020 define LBS_HASSTRINGS for |CI$0040 define LBS_USETABSTOPS for |CI$0080 define LBS_NOINTEGRALHEIGHT for |CI$0100 define LBS_MULTICOLUMN for |CI$0200 define LBS_WANTKEYBOARDINPUT for |CI$0400 define LBS_EXTENDEDSEL for |CI$0800 define LBS_DISABLENOSCROLL for |CI$1000 define LBS_NODATA for |CI$2000 define LBS_NOSEL for |CI$4000 // ListBox messages define LB_ADDSTRING for |CI$0180 define LB_INSERTSTRING for |CI$0181 define LB_DELETESTRING for |CI$0182 define LB_SELITEMRANGEEX for |CI$0183 define LB_RESETCONTENT for |CI$0184 define LB_SETSEL for |CI$0185 define LB_SETCURSEL for |CI$0186 define LB_GETSEL for |CI$0187 define LB_GETCURSEL for |CI$0188 define LB_GETTEXT for |CI$0189 define LB_GETTEXTLEN for |CI$018A define LB_GETCOUNT for |CI$018B define LB_SELECTSTRING for |CI$018C define LB_DIR for |CI$018D define LB_GETTOPINDEX for |CI$018E define LB_FINDSTRING for |CI$018F define LB_GETSELCOUNT for |CI$0190 define LB_GETSELITEMS for |CI$0191 define LB_SETTABSTOPS for |CI$0192 define LB_GETHORIZONTALEXTENT for |CI$0193 define LB_SETHORIZONTALEXTENT for |CI$0194 define LB_SETCOLUMNWIDTH for |CI$0195 define LB_ADDFILE for |CI$0196 define LB_SETTOPINDEX for |CI$0197 define LB_GETITEMRECT for |CI$0198 define LB_GETITEMDATA for |CI$0199 define LB_SETITEMDATA for |CI$019A define LB_SELITEMRANGE for |CI$019B define LB_SETANCHORINDEX for |CI$019C define LB_GETANCHORINDEX for |CI$019D define LB_SETCARETINDEX for |CI$019E define LB_GETCARETINDEX for |CI$019F define LB_SETITEMHEIGHT for |CI$01A0 define LB_GETITEMHEIGHT for |CI$01A1 define LB_FINDSTRINGEXACT for |CI$01A2 define LB_SETLOCALE for |CI$01A5 define LB_GETLOCALE for |CI$01A6 define LB_SETCOUNT for |CI$01A7 define LB_INITSTORAGE for |CI$01A8 define LB_ITEMFROMPOINT for |CI$01A9 define LB_MSGMAX for |CI$01B0 define LB_MSGMAX for |CI$01A8 // ListBox notification messages define LBN_ERRSPACE for -2 define LBN_SELCHANGE for 1 define LBN_DBLCLK for 2 define LBN_SELCANCEL for 3 define LBN_SETFOCUS for 4 define LBN_KILLFOCUS for 5 // ScrollBar styles define SBS_HORZ for |CI$0000 define SBS_VERT for |CI$0001 define SBS_TOPALIGN for |CI$0002 define SBS_LEFTALIGN for |CI$0002 define SBS_BOTTOMALIGN for |CI$0004 define SBS_RIGHTALIGN for |CI$0004 define SBS_SIZEBOXTOPLEFTALIGN for |CI$0002 define SBS_SIZEBOXBOTTOMRIGHTALIGN for |CI$0004 define SBS_SIZEBOX for |CI$0008 define SBS_SIZEGRIP for |CI$0010 // ScrollBar messages define SBM_SETPOS for |CI$00E0 define SBM_GETPOS for |CI$00E1 define SBM_SETRANGE for |CI$00E2 define SBM_SETRANGEREDRAW for |CI$00E6 define SBM_GETRANGE for |CI$00E3 define SBM_ENABLE_ARROWS for |CI$00E4 define SBM_SETSCROLLINFO for |CI$00E9 define SBM_GETSCROLLINFO for |CI$00EA // ScrollBar mask constants define SIF_RANGE for |CI$0001 define SIF_PAGE for |CI$0002 define SIF_POS for |CI$0004 define SIF_DISABLENOSCROLL for |CI$0008 define SIF_TRACKPOS for |CI$0010 define SIF_ALL for (SIF_RANGE iOr SIF_PAGE iOr SIF_POS iOr SIF_TRACKPOS) define SW_SCROLLCHILDREN for |CI$0001 define SW_INVALIDATE for |CI$0002 define SW_ERASE for |CI$0004 define SW_SMOOTHSCROLL for |CI$0010 // SetWindowPos flags define SWP_NOSIZE for |CI$0001 define SWP_NOMOVE for |CI$0002 define SWP_NOZORDER for |CI$0004 define SWP_NOREDRAW for |CI$0008 define SWP_NOACTIVATE for |CI$0010 define SWP_FRAMECHANGED for |CI$0020 define SWP_SHOWWINDOW for |CI$0040 define SWP_HIDEWINDOW for |CI$0080 define SWP_NOCOPYBITS for |CI$0100 define SWP_NOOWNERZORDER for |CI$0200 define SWP_NOSENDCHANGING for |CI$0400 define SWP_DEFERERASE for |CI$2000 define SWP_ASYNCWINDOWPOS for |CI$4000 define SWP_DRAWFRAME for SWP_FRAMECHANGED define SWP_NOREPOSITION for SWP_NOOWNERZORDER // Header control constants define HDM_FIRST for |CI$1200 define HDN_FIRST for (-300) // Header control styles define HDS_HORZ for |CI$0000 define HDS_BUTTONS for |CI$0002 define HDS_HOTTRACK for |CI$0004 define HDS_HIDDEN for |CI$0008 define HDS_DRAGDROP for |CI$0040 define HDS_FULLDRAG for |CI$0080 // Header control messages define HDM_GETITEMCOUNT for (HDM_FIRST + 0) define HDM_INSERTITEMA for (HDM_FIRST + 1) define HDM_INSERTITEMW for (HDM_FIRST + 10) define HDM_DELETEITEM for (HDM_FIRST + 2) define HDM_GETITEMA for (HDM_FIRST + 3) define HDM_GETITEMW for (HDM_FIRST + 11) define HDM_SETITEMA for (HDM_FIRST + 4) define HDM_SETITEMW for (HDM_FIRST + 12) define HDM_LAYOUT for (HDM_FIRST + 5) define HDM_HITTEST for (HDM_FIRST + 6) define HDM_GETITEMRECT for (HDM_FIRST + 7) define HDM_SETIMAGELIST for (HDM_FIRST + 8) define HDM_GETIMAGELIST for (HDM_FIRST + 9) define HDM_ORDERTOINDEX for (HDM_FIRST + 15) define HDM_CREATEDRAGIMAGE for (HDM_FIRST + 16) define HDM_GETORDERARRAY for (HDM_FIRST + 17) define HDM_SETORDERARRAY for (HDM_FIRST + 18) define HDM_SETHOTDIVIDER for (HDM_FIRST + 19) // Header control notification messages define HDN_ITEMCHANGINGA for (HDN_FIRST - 0) define HDN_ITEMCHANGINGW for (HDN_FIRST - 20) define HDN_ITEMCHANGEDA for (HDN_FIRST - 1) define HDN_ITEMCHANGEDW for (HDN_FIRST - 21) define HDN_ITEMCLICKA for (HDN_FIRST - 2) define HDN_ITEMCLICKW for (HDN_FIRST - 22) define HDN_ITEMDBLCLICKA for (HDN_FIRST - 3) define HDN_ITEMDBLCLICKW for (HDN_FIRST - 23) define HDN_DIVIDERDBLCLICKA for (HDN_FIRST - 5) define HDN_DIVIDERDBLCLICKW for (HDN_FIRST - 25) define HDN_BEGINTRACKA for (HDN_FIRST - 6) define HDN_BEGINTRACKW for (HDN_FIRST - 26) define HDN_ENDTRACKA for (HDN_FIRST - 7) define HDN_ENDTRACKW for (HDN_FIRST - 27) define HDN_TRACKA for (HDN_FIRST - 8) define HDN_TRACKW for (HDN_FIRST - 28) define HDN_GETDISPINFOA for (HDN_FIRST - 9) define HDN_GETDISPINFOW for (HDN_FIRST - 29) define HDN_BEGINDRAG for (HDN_FIRST - 10) define HDN_ENDDRAG for (HDN_FIRST - 11) // Header item mask constants define HDI_WIDTH for |CI$0001 define HDI_TEXT for |CI$0002 define HDI_FORMAT for |CI$0004 define HDI_LPARAM for |CI$0008 define HDI_BITMAP for |CI$0010 define HDI_IMAGE for |CI$0020 define HDI_DI_SETITEM for |CI$0040 define HDI_ORDER for |CI$0080 // Header item format constants define HDF_LEFT for |CI$0000 define HDF_RIGHT for |CI$0001 define HDF_CENTER for |CI$0002 define HDF_JUSTIFYMASK for |CI$0003 define HDF_RTLREADING for |CI$0004 define HDF_OWNERDRAW for |CI$8000 define HDF_STRING for |CI$4000 define HDF_BITMAP for |CI$2000 define HDF_BITMAP_ON_RIGHT for |CI$1000 define HDF_IMAGE for |CI$0800 // PatBlt dwRop constants Define SRCCOPY for |CI$00CC0020 Define SRCPAINT for |CI$00EE0086 Define SRCAND for |CI$008800C6 Define SRCINVERT for |CI$00660046 Define SRCERASE for |CI$00440328 Define NOTSRCCOPY for |CI$00330008 Define NOTSRCERASE for |CI$001100A6 Define MERGECOPY for |CI$00C000CA Define MERGEPAINT for |CI$00BB0226 Define PATCOPY for |CI$00F00021 Define PATPAINT for |CI$00FB0A09 Define PATINVERT for |CI$005A0049 Define DSTINVERT for |CI$00550009 Define BLACKNESS for |CI$00000042 Define WHITENESS for |CI$00FF0062 Define NOMIRRORBITMAP for |CI$80000000 Define CAPTUREBLT for |CI$40000000 // ImageList_Draw fStyle constants Define ILD_NORMAL for |CI$0000 Define ILD_TRANSPARENT for |CI$0001 Define ILD_MASK for |CI$0010 Define ILD_IMAGE for |CI$0020 Define ILD_ROP for |CI$0040 Define ILD_BLEND25 for |CI$0002 Define ILD_BLEND50 for |CI$0004 Define ILD_OVERLAYMASK for |CI$0F00 Define ILD_SELECTED for ILD_BLEND50 Define ILD_FOCUS for ILD_BLEND25 Define ILD_BLEND for ILD_BLEND50 // SystemParametersInfo uiAction constant Define SPI_GETNONCLIENTMETRICS for 41 // ScrollBar structures type SCROLLBARINFO Field SCROLLBARINFO.cbSize as dWord Field SCROLLBARINFO.rcScrollBar.left as Integer Field SCROLLBARINFO.rcScrollBar.top as Integer Field SCROLLBARINFO.rcScrollBar.right as Integer Field SCROLLBARINFO.rcScrollBar.bottom as Integer Field SCROLLBARINFO.dxyLineButton as Integer Field SCROLLBARINFO.xyThumbTop as Integer Field SCROLLBARINFO.xyThumbBottom as Integer Field SCROLLBARINFO.reserved as Integer Field SCROLLBARINFO.rgstate.0 as dWord Field SCROLLBARINFO.rgstate.1 as dWord Field SCROLLBARINFO.rgstate.2 as dWord Field SCROLLBARINFO.rgstate.3 as dWord Field SCROLLBARINFO.rgstate.4 as dWord Field SCROLLBARINFO.rgstate.5 as dWord end_type // SCROLLBARINFO type SCROLLINFO Field SCROLLINFO.cbSize as UInteger Field SCROLLINFO.fMask as UInteger Field SCROLLINFO.nMin as Integer Field SCROLLINFO.nMax as Integer Field SCROLLINFO.nPage as UInteger Field SCROLLINFO.nPos as Integer Field SCROLLINFO.nTrackPos as Integer end_type // SCROLLINFO // Header structures type HDHITTESTINFO Field HD_HITTESTINFO.pt.x as Integer Field HD_HITTESTINFO.pt.y as Integer Field HD_HITTESTINFO.flags as UInteger Field HD_HITTESTINFO.iItem as Integer end_type // HDHITTESTINFO type HDITEM Field HDITEM.mask as UInteger Field HDITEM.cxy as Integer Field HDITEM.pszText as Pointer Field HDITEM.hbm as Handle Field HDITEM.cchTextMax as Integer Field HDITEM.fmt as Integer Field HDITEM.lParam as DWord Field HDITEM.iImage as Integer Field HDITEM.iOrder as Integer Field HDITEM.type as UInteger Field HDITEM.pvFilter as Pointer end_Type // HDITEM type HDLAYOUT Field HDLAYOUT.prc as Pointer Field HDLAYOUT.pwpos as Pointer end_type // HDLAYOUT type HDTEXTFILTER Field HDTEXTFILTER.pszxText as Pointer Field HDTEXTFILTER.cchTextMax as Integer end_type // HDTEXTFILTER type NMHDDISPINFO Field NMHDDISPINFO.hdr.hwndFrom as Handle Field NMHDDISPINFO.hdr.idFrom as UInteger Field NMHDDISPINFO.hdr.code as UInteger Field NMHDDISPINFO.iItem as Integer Field NMHDDISPINFO.mask as UInteger Field NMHDDISPINFO.pszText as Pointer Field NMHDDISPINFO.cchTextMax as Integer Field NMHDDISPINFO.iImage as Integer Field NMHDDISPINFO.lParam as DWord end_type // NMHDDISPINFO type NMHDFILTERBTNCLICK Field NMHDFILTERBTNCLICK.hdr.hwndFrom as Handle Field NMHDFILTERBTNCLICK.hdr.idFrom as UInteger Field NMHDFILTERBTNCLICK.hdr.code as UInteger Field NMHDFILTERBTNCLICK.iItem as Integer Field NMHDFILTERBTNCLICK.rc.left as Integer Field NMHDFILTERBTNCLICK.rc.top as Integer Field NMHDFILTERBTNCLICK.rc.right as Integer Field NMHDFILTERBTNCLICK.rc.bottom as Integer end_type // NMHDFILTERBTNCLICK type NMHEADER Field NMHEADER.hdr.hwndFrom as Handle Field NMHEADER.hdr.idFrom as UInteger Field NMHEADER.hdr.code as UInteger Field NMHEADER.iItem as Integer Field NMHEADER.iButton as Integer Field NMHEADER.pitem as Pointer end_type // NMHEADER type WINDOWPOS Field WINDOWPOS.hwnd as Handle Field WINDOWPOS.hwndInsertAfter as Handle Field WINDOWPOS.x as Integer Field WINDOWPOS.y as Integer Field WINDOWPOS.cx as Integer Field WINDOWPOS.cy as Integer Field WINDOWPOS.flags as UInteger end_type // WINDOWPOS