Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXTableBox.h
Go to the documentation of this file.
1 //
4 //
5 #ifndef _INC_cXTableBox_H
6 #define _INC_cXTableBox_H
7 #pragma once
8 
9 #include "cXListBox.h"
10 #include "cXTableItem.h"
11 
12 namespace GrayGUI
13 {
14 #define TABLE_ROWHEIGHT_STANDARD 45
15 
17  {
22  };
23 
25  {
28  public:
29  int m_iSortingColumn; //Column currently determining the order
30  TABLE_COL_TYPE m_eColType; //type of data in the column.
31  bool m_bSortDirection; //same format as types, sort ascending(true) or down
32  public:
33  cXTableColumn(int iSortingColumn = 0, TABLE_COL_TYPE eColType = TBTYPE_STRING, bool bSortDirection = true)
34  : m_iSortingColumn(iSortingColumn)
35  , m_eColType(eColType)
36  , m_bSortDirection(bSortDirection)
37  {
38  }
39  };
40 
41  class cXTableBox : public cXListBox
42  {
48 
49  public:
50  cXTableBox(cXWindow* pParent, DLGID_t id, int iColumns = 1, int iRowHeight = TABLE_ROWHEIGHT_STANDARD);
51  virtual ~cXTableBox();
52 
53  virtual bool InitXWindow();
54  virtual HRESULT DisposeThis();
55 
56  virtual bool OnCommand(DLGID_t id, cXWindow* pCtrl, WORD wNotify);
57  virtual void OnSize(UINT uType, int cx, int cy);
58 
59  cXTableItem* GetTableItem(int i) const
60  {
61  return CHECKPTR_CAST(cXTableItem, GetAt(i));
62  }
63 
64  cXTableItemPtr AddNewItem(cVariant& vData, cVariant& vCaptions, UID_t UIDItem = 0);
65  void SetItemSizes();
66  bool SetSortingColumn(int iColumn, int iLevel);
67  void SetColumnType(int iColumn, TABLE_COL_TYPE eType);
68  void SetSortingDirection(int iColumn, bool bIsAscending);
69  bool GetSortingDirection(int iColumn) const;
70  int AscendingConverter(bool bIsAcending, int iCurrentDir);
71  void QSort(int iLeft, int iRight);
72  void QSort();
73 
74  int get_NumberOfColumns() const
75  {
76  //Number of columns in window
77  return m_aColumns.GetSize();
78  }
79  void put_NumberOfColumns(int iCols);
80 
81  protected:
82  virtual COMPARE_t CompareData(cXTableItem* pItem1, cXTableItem* pItem2, int iLevel) const noexcept;
83 
84  private:
86 
87  int m_iRowHeight;
88  };
89 
91 };
92 
93 #endif
#define CHECKPTR_CAST(t, p)
Definition: PtrCast.h:50
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define TABLE_ROWHEIGHT_STANDARD
Definition: cXTableBox.h:14
Definition: cXListBox.h:19
Definition: cXTableBox.h:42
cXTableBox(cXWindow *pParent, DLGID_t id, int iColumns=1, int iRowHeight=45)
Definition: cXTableBox.cpp:14
void QSort()
Definition: cXTableBox.cpp:271
void put_NumberOfColumns(int iCols)
Definition: cXTableBox.cpp:97
bool GetSortingDirection(int iColumn) const
Definition: cXTableBox.cpp:169
bool SetSortingColumn(int iColumn, int iLevel)
Definition: cXTableBox.cpp:132
virtual bool OnCommand(DLGID_t id, cXWindow *pCtrl, WORD wNotify)
Definition: cXTableBox.cpp:39
virtual void OnSize(UINT uType, int cx, int cy)
Definition: cXTableBox.cpp:44
int AscendingConverter(bool bIsAcending, int iCurrentDir)
Definition: cXTableBox.cpp:231
void SetColumnType(int iColumn, TABLE_COL_TYPE eType)
Definition: cXTableBox.cpp:281
virtual bool InitXWindow()
Definition: cXTableBox.cpp:34
int get_NumberOfColumns() const
Definition: cXTableBox.h:74
cXTableItemPtr AddNewItem(cVariant &vData, cVariant &vCaptions, UID_t UIDItem=0)
Definition: cXTableBox.cpp:57
cXTableItem * GetTableItem(int i) const
Definition: cXTableBox.h:59
void SetSortingDirection(int iColumn, bool bIsAscending)
Definition: cXTableBox.cpp:163
void SetItemSizes()
Definition: cXTableBox.cpp:123
virtual ~cXTableBox()
Definition: cXTableBox.cpp:25
virtual COMPARE_t CompareData(cXTableItem *pItem1, cXTableItem *pItem2, int iLevel) const noexcept
Definition: cXTableBox.cpp:175
virtual HRESULT DisposeThis()
utility
Definition: cXTableBox.cpp:29
Definition: cXTableBox.h:25
bool m_bSortDirection
Definition: cXTableBox.h:31
cXTableColumn(int iSortingColumn=0, TABLE_COL_TYPE eColType=TBTYPE_STRING, bool bSortDirection=true)
Definition: cXTableBox.h:33
TABLE_COL_TYPE m_eColType
Definition: cXTableBox.h:30
int m_iSortingColumn
Definition: cXTableBox.h:29
Definition: cXTableItem.h:14
Definition: cXWindow.h:94
Definition: cVariant.h:26
Definition: cArray.h:437
Definition: cRefPtr.h:225
Definition: GrayGUI.cpp:11
TABLE_COL_TYPE
Definition: cXTableBox.h:17
@ TBTYPE_STRING
Definition: cXTableBox.h:21
@ TBTYPE_INT
Definition: cXTableBox.h:19
@ TBTYPE_FLOAT
Definition: cXTableBox.h:20
cRefPtr< cXTableBox > cXTableBoxPtr
Definition: cXTableBox.h:90
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
HASHCODE32_t UID_t
Sort of the same as a HASHCODE_t. not the same as UIDINDEX_t.
Definition: cUID.h:18
int COMPARE_t
result of compare. 0=same, 1=a>b, -1=a<b
Definition: cValT.h:17