Files
AC_Pro/ListViewMove.h
2026-06-13 00:05:19 +08:00

99 lines
3.8 KiB
C++

//---------------------------------------------------------------------------
#ifndef ListViewMoveH
#define ListViewMoveH
//---------------------------------------------------------------------------
#include "ListViewBase.h"
//---------------------------------------------------------------------------
typedef bool __fastcall (__closure *TNotifyItemClick)(int index, bool bOn);
typedef bool __fastcall (__closure *TNotifyItemChange)(int indSrc, int indDes);
typedef bool __fastcall (__closure *TNotifyItemClickPt)(int index, bool bOn, TPoint pt);
#define CELL_HEIGHT 18
typedef struct tagDataInfo{
String caption;
bool bOn;
tagDataInfo(String captionTmp, bool bOnTmp){
caption = captionTmp;
bOn = bOnTmp ;
}
tagDataInfo(){
caption = L"";
bOn = true;
}
}DATAInfo;
//---------------------------------------------------------------------------
class TListViewMove: public TListViewBase
{
private:
bool bMovBottom;
TNotifyItemClick FOnItemDBLClick, FOnItemStateChange;
TNotifyItemChange FOnItemDelete, FOnItemMoveIng, FOnItemMoveEnd;
TNotifyItemClickPt FOnItemRightClick;
virtual void __fastcall DoDrawBKG(TPanelDB *Sender, TCanvas *pCanvas, TRect rtBKG);
virtual int __fastcall DoTitle(TTableView *Sender);
virtual int __fastcall DoBottom(TTableView *Sender);
virtual int __fastcall DoCellHgt(TTableView *Sender, int iCellIndex);
virtual int __fastcall DoClickL(TStateBtn *Sender, TPoint pt);
virtual int __fastcall DoClickLP(TStateBtn *Sender, TPoint pt);
virtual int __fastcall DoClickR(TStateBtn *Sender, TPoint pt);
virtual int __fastcall DoMDNum(TTableView *Sender);
virtual int __fastcall DoMDBottom(TTableView *Sender);
virtual int __fastcall DoMDMOV(TStateBtn *Src, TStateBtn *Des, TPoint pt);
virtual void __fastcall DoCellDraw(TStateBtn *sender, int BsTmp, TRect rtTmp, TCanvas *pCanvas);
virtual int __fastcall DoCellData(TStateBtn *sender);
virtual void __fastcall DoCellDBClick(TStateBtn *sender);
virtual void __fastcall DoIconDraw(TStateBtn *sender, int BsTmp, TRect rtTmp, TCanvas *pCanvas);
virtual int __fastcall DoIconData(TStateBtn *sender);
virtual int __fastcall DoIconsNum(TStateBtn *parent);
virtual int __fastcall DoIconsBounds(TStateBtn *sender, TRect &rtBounds);
virtual void __fastcall DoIconLClick(TStateBtn *sender);
int m_nCapLeft;
int m_nCapWidth;
TList *m_LstData;
int m_iSrc, m_iDes;
TBitmap *m_pMovLine;
TBitmap *m_pMovBmp;
TPanelDB *m_pMovPanel;
void __fastcall DoMovPaint(TPanelDB *Sender, TCanvas *pCanvas, TRect rtBKG);
TPngImage *m_pImgDel;
TPngImage *m_pImgOff;
TPngImage *m_pImgOn;
public:
void __fastcall AddIcon(TPngImage *pImgDel, TPngImage *pImgOff, TPngImage *pImgOn);
void __fastcall AddItem(String caption, bool bOn=true, bool bPaint=true, int insertIndex=-1);
void __fastcall DeleteItem(int index, bool bPaint=true);
void __fastcall MoveItems(int srcIndex, int desIndex);
void __fastcall ClearAllItems();
int __fastcall GetItemState(int index);
void __fastcall SetItemState(int index, bool bOn=true, bool bPaint=true);
__fastcall TListViewMove(TComponent* Owner);
__fastcall ~TListViewMove();
__published:
__property IndSel;
__property Count;
__property TNotifyItemClick OnItemDBLClick = {read=FOnItemDBLClick, write=FOnItemDBLClick };
__property TNotifyItemClickPt OnItemRightClick = {read=FOnItemRightClick, write=FOnItemRightClick };
__property TNotifyItemClick OnItemStateChange = {read=FOnItemStateChange, write=FOnItemStateChange };
__property TNotifyItemChange OnItemDelete = {read=FOnItemDelete, write=FOnItemDelete };
__property TNotifyItemChange OnItemMoveIng = {read=FOnItemMoveIng, write=FOnItemMoveIng };
__property TNotifyItemChange OnItemMoveEnd = {read=FOnItemMoveEnd, write=FOnItemMoveEnd };
};
#endif