Initial commit

This commit is contained in:
2026-06-13 00:05:19 +08:00
commit 754cd7ccdb
402 changed files with 123771 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
//---------------------------------------------------------------------------
#ifndef PanelDBH
#define PanelDBH
//---------------------------------------------------------------------------
#include "StateBtn.h"
//---------------------------------------------------------------------------
//double buffer panel
typedef void __fastcall (__closure *NotifyPaint)(TPanelDB *Sender, TCanvas *pCanvas, TRect rtBKG);
class TPanelDB : public Extctrls::TPanel
{
private:
bool m_bDBCreated;
HDC m_BufDC;
HBITMAP m_BufBitmap;
protected:
TStateBtn *m_BtnSel, *m_BtnFocus; //may be parent, may be sub
bool m_bLeft;
bool m_bBkgDrawed;
NotifyPaint FOnDrawBKG, FOnPaintBKG;
void __fastcall DCInit();
void __fastcall DCRelease();
BTNLST m_LstBtn;
TStateBtn* __fastcall GetBtnCur(TPoint pt);
virtual void __fastcall BtnDown(TStateBtn *pCur, TPoint pt, bool bLeft=true) {}
virtual void __fastcall BtnUp(TStateBtn *pCur, TStateBtn *pSel, TPoint pt, bool bLeft=true) {}
virtual void __fastcall BtnMove(TStateBtn *pCur, TPoint pt) {}
virtual void __fastcall BtnLeave() {}
virtual void __fastcall DoPaintBKG(TCanvas *pCanvas);
virtual void __fastcall DoPaintLst(TCanvas *pCanvas);
virtual void __fastcall Paint(void);
virtual void __fastcall CreateWnd(void);
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
DYNAMIC void __fastcall Click(void);
DYNAMIC void __fastcall DblClick(void);
DYNAMIC void __fastcall MouseDown(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseMove(System::Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseUp(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, int X, int Y);
MESSAGE void __fastcall CMMouseLeave(TMessage &Message);
MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);
MESSAGE void __fastcall WMSize(Winapi::Messages::TWMSize &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize)
MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave)
END_MESSAGE_MAP( Vcl::Extctrls::TPanel )
public:
TCanvas *m_CanvasDr; //use for double buffer canvas
TBitmap *m_BMPBkg; //backgroud save
TRect m_RtContent; //content rect
void __fastcall BtnAdd(TStateBtn *pBtn);
void __fastcall BtnClear();
__fastcall TPanelDB(System::Classes::TComponent* AOwner);
__fastcall ~TPanelDB();
__published:
__property NotifyPaint OnDrawBKG = { read=FOnDrawBKG, write=FOnDrawBKG };
__property NotifyPaint OnPaintBKG = { read=FOnPaintBKG, write=FOnPaintBKG };
};
//---------------------------------------------------------------------------
#endif