Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXTabList.h
Go to the documentation of this file.
1 //
5 //
6 #ifndef _INC_cXTabList_H
7 #define _INC_cXTabList_H
8 #pragma once
9 #include "../Window/cXWindow.h"
10 
11 namespace GrayGUI
12 {
13  class cXButton;
14  typedef cRefPtr<cXButton> cXButtonPtr;
15 
16  class cXTabList
17  {
20  public:
21  cXTabList(DLGID_t idFirst, DLGID_t idLast, DLGID_t idActiveTab);
22 
23  const PIXELS_t k_Height = 12;
24 
25  int get_TabHeight() const
26  {
28  return k_Height;
29  }
30  int get_TabQty() const
31  {
32  return((m_idLast - m_idFirst) + 1);
33  }
34  bool IsValidEnum(int i) const
35  {
36  return IS_INDEX_GOOD(i, get_TabQty());
37  }
38  int get_ActiveEnum() const
39  {
42  return m_idActiveTab - m_idFirst;
43  }
44  void put_ActiveEnum(int i)
45  {
47  m_idActiveTab = m_idFirst + i;
48  }
49  bool IsValidTab(DLGID_t id) const
50  {
51  if (id < m_idFirst)
52  return false;
53  if (id > m_idLast)
54  return false;
55  return true;
56  }
58  {
59  return m_idActiveTab;
60  }
61  void put_ActiveTab(DLGID_t idActiveTab)
62  {
63  ASSERT(idActiveTab >= m_idFirst);
64  ASSERT(idActiveTab <= m_idLast);
65  m_idActiveTab = idActiveTab;
66  }
67 
68  void OnInitControl(cXDialog* pDlg);
69  void UpdateActiveTab(cXDialog* pDlg);
70  cXButtonPtr UpdateTabPositions(cXDialog* pDlg, int iWidthTab = 0);
71  void HideAllTabs(cXDialog* pDlg);
72 
73  private:
74  cString m_sTitlePrev;
75  DLGID_t m_idFirst;
76  DLGID_t m_idLast;
77  DLGID_t m_idActiveTab;
78  };
79 }
80 #endif
#define IS_INDEX_GOOD(i, q)
cast the (likely) int to unsigned to check for negatives.
Definition: Index.h:35
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cXDialog.h:96
Definition: cXTabList.h:17
void put_ActiveEnum(int i)
Definition: cXTabList.h:44
int get_TabQty() const
Definition: cXTabList.h:30
void UpdateActiveTab(cXDialog *pDlg)
Definition: cXTabList.cpp:40
bool IsValidEnum(int i) const
Definition: cXTabList.h:34
cXButtonPtr UpdateTabPositions(cXDialog *pDlg, int iWidthTab=0)
Definition: cXTabList.cpp:68
DLGID_t get_ActiveTab() const
Definition: cXTabList.h:57
const PIXELS_t k_Height
Definition: cXTabList.h:23
void OnInitControl(cXDialog *pDlg)
Definition: cXTabList.cpp:24
cXTabList(DLGID_t idFirst, DLGID_t idLast, DLGID_t idActiveTab)
Definition: cXTabList.cpp:13
int get_ActiveEnum() const
Definition: cXTabList.h:38
void put_ActiveTab(DLGID_t idActiveTab)
Definition: cXTabList.h:61
void HideAllTabs(cXDialog *pDlg)
Definition: cXTabList.cpp:62
int get_TabHeight() const
Definition: cXTabList.h:25
bool IsValidTab(DLGID_t id) const
Definition: cXTabList.h:49
Definition: GrayGUI.cpp:11
cRefPtr< cXButton > cXButtonPtr
Definition: cXButton.h:204
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
int PIXELS_t
Count of pixels in a dimension of some image/surface.
Definition: cSurfaceInfo.h:20