Initial commit
This commit is contained in:
+148
@@ -0,0 +1,148 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef TableViewUnitH
|
||||
#define TableViewUnitH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "ScrollViewUnit.h"
|
||||
#include "StateBtn.h"
|
||||
|
||||
/* * * * * * * * * * * * * * * *
|
||||
* * * * * * * * TTableView * * * * *
|
||||
* * * * * * * * * * * * * * * */
|
||||
|
||||
#define NOSET -1
|
||||
|
||||
class TTableView;
|
||||
typedef int __fastcall(__closure *TNotiTable)(TTableView *Sender);
|
||||
typedef int __fastcall(__closure *TNotiT2C)(TTableView *Sender, int iCellIndex);
|
||||
typedef int __fastcall(__closure *TNotiCell)(TStateBtn *Sender);
|
||||
typedef int __fastcall(__closure *TNotiCellPt)(TStateBtn *Sender, TPoint pt);
|
||||
typedef int __fastcall(__closure *TNotiC2C)(TStateBtn *Src, TStateBtn *Des, TPoint pt);
|
||||
typedef int __fastcall(__closure *TNotiIconsNum)(TStateBtn *parent);
|
||||
typedef int __fastcall(__closure *TNotiIconsBounds)(TStateBtn *sender, TRect &rtBounds);
|
||||
|
||||
typedef vector<int> VCINT;
|
||||
typedef enum{
|
||||
CELLS_Default=0,
|
||||
CELLS_Up,
|
||||
CELLS_Down,
|
||||
CELLS_Page
|
||||
}CELLS;
|
||||
|
||||
typedef enum{
|
||||
SBS_NONE=10,
|
||||
SBS_POS,
|
||||
SBS_TOP,
|
||||
SBS_BOTTOM
|
||||
}SBS;
|
||||
|
||||
class TUIDelegate;
|
||||
class TMDDelegate;
|
||||
|
||||
class TTableView: public TScrollView
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
TNotifyEvent FOnChange;
|
||||
|
||||
int FIndSel, FIndFocus, FCount,
|
||||
FHgtSmall;
|
||||
|
||||
bool m_bTop, m_bBom;
|
||||
|
||||
int m_PosTotal, m_PosPage, m_PosBegin;
|
||||
|
||||
int m_DBNum, m_DBNeed,
|
||||
m_IndTop, m_IndBeg,
|
||||
m_UIOff, m_UIOffMerge,
|
||||
m_HgtSmall, m_HgtTop, m_HgtOver;
|
||||
|
||||
VCINT m_VCHGT, m_VCPOS, m_VCCHG;
|
||||
|
||||
TPanelDB *m_Title;
|
||||
TPanelDB *m_Bottom;
|
||||
int __fastcall getContentHeight();
|
||||
|
||||
bool __fastcall DoTableInit();
|
||||
bool __fastcall DoLstInitial();
|
||||
void __fastcall DoLstChg(CELLS eCELLS=CELLS_Default, int Offset=0);
|
||||
void __fastcall DoLstChgPos(CELLS eCELLS=CELLS_Default, int Offset=0);
|
||||
void __fastcall DoLstChgCel(CELLS eCELLS=CELLS_Default, bool bPaint=true);
|
||||
void __fastcall DoChgPos(TObject *Sender, short ScrollCode, int iTopLine);
|
||||
|
||||
|
||||
int __fastcall DoHgtTitle(TObject *Sender);
|
||||
int __fastcall DoHgtBottom(TObject *Sender);
|
||||
|
||||
protected:
|
||||
|
||||
bool __fastcall IsCellVisible(int iCellIndex);
|
||||
|
||||
virtual void __fastcall DoChgSize(TObject *Sender, TRect rtPanelDB){}
|
||||
virtual int __fastcall DoMouseWheel(TObject *Sender){}
|
||||
virtual void __fastcall DoPaintLst(TCanvas *pCanvas);
|
||||
|
||||
public:
|
||||
|
||||
__fastcall TTableView(TComponent* Owner);
|
||||
__fastcall ~TTableView();
|
||||
|
||||
bool __fastcall ReloadData(int iCellIndex=NOSET, SBS iSBS=SBS_NONE, int iTopline=NOSET);
|
||||
|
||||
TStateBtn* __fastcall GetCellAds(int iCellIndex);
|
||||
int __fastcall GetCellHgt(int index);
|
||||
int __fastcall GetCellBeg();
|
||||
int __fastcall GetCellBom();
|
||||
int __fastcall GetCellNum();
|
||||
void __fastcall SetCellInd(int iCellIndex);
|
||||
void __fastcall SetSBPos(SBS iSBS=SBS_TOP, int iTopline=0);
|
||||
|
||||
__published:
|
||||
|
||||
__property int IndFocus = { read =FIndFocus, write=FIndFocus, default=NOSET };
|
||||
__property int IndSel = { read =FIndSel, write=FIndSel, default=NOSET };
|
||||
__property int HgtSmall = { read =FHgtSmall, write=FHgtSmall, default=NOSET };
|
||||
__property int Count = { read =GetCellNum };
|
||||
__property TNotifyEvent OnChange = {read=FOnChange, write=FOnChange };
|
||||
|
||||
private:
|
||||
|
||||
TNotiT2C FOnCellHgt;
|
||||
TNotiTable FOnTitle;
|
||||
TNotiTable FOnBottom;
|
||||
TNotiCellPt FOnClickL;
|
||||
TNotiCellPt FOnClickLP;
|
||||
TNotiCellPt FOnClickR;
|
||||
TNotiCellPt FOnClickRP;
|
||||
|
||||
__published:
|
||||
|
||||
__property TNotiT2C OnCellHgt = { read = FOnCellHgt, write = FOnCellHgt };
|
||||
__property TNotiTable OnTitle = { read = FOnTitle, write = FOnTitle };
|
||||
__property TNotiTable OnBottom = { read = FOnBottom, write = FOnBottom };
|
||||
__property TNotiCellPt OnClickL = { read = FOnClickL, write = FOnClickL };
|
||||
__property TNotiCellPt OnClickLP = { read = FOnClickLP, write = FOnClickLP };
|
||||
__property TNotiCellPt OnClickR = { read = FOnClickR, write = FOnClickR };
|
||||
__property TNotiCellPt OnClickRP = { read = FOnClickRP, write = FOnClickRP };
|
||||
|
||||
private:
|
||||
|
||||
TNotiT2C FOnMDCell;
|
||||
TNotiTable FOnMDNum;
|
||||
TNotiTable FOnMDTop;
|
||||
TNotiTable FOnMDBottom;
|
||||
TNotiC2C FOnMDMOV;
|
||||
|
||||
__published:
|
||||
|
||||
__property TNotiT2C OnMDCell = { read = FOnMDCell, write = FOnMDCell };
|
||||
__property TNotiTable OnMDNum = { read = FOnMDNum, write = FOnMDNum };
|
||||
__property TNotiTable OnMDTop = { read = FOnMDTop, write = FOnMDTop };
|
||||
__property TNotiTable OnMDBottom = { read = FOnMDBottom, write = FOnMDBottom };
|
||||
__property TNotiC2C OnMDMOV = { read = FOnMDMOV, write = FOnMDMOV };
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user