73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#ifndef ScrollViewUnitH
|
|
#define ScrollViewUnitH
|
|
//---------------------------------------------------------------------------
|
|
#include "SkinScrollBarUnit.h"
|
|
#include "PanelDB.h"
|
|
|
|
typedef void __fastcall (__closure *ChangeSBPos)(TObject *Sender, short ScrollCode, int iTopLine);
|
|
typedef void __fastcall (__closure *ChangeSize)(TObject *Sender, TRect rtPanelDB);
|
|
typedef int __fastcall (__closure *TNotiScoll)(TObject *Sender);
|
|
|
|
class TScrollView: public TPanelDB
|
|
{
|
|
|
|
private:
|
|
|
|
TNotiScoll FOnHgtTitle;
|
|
TNotiScoll FOnHgtBottom;
|
|
TNotiScoll FOnMouseWheel;
|
|
|
|
ChangeSize FChangeSize;
|
|
ChangeSBPos FChangeSBPos;
|
|
|
|
TSkinScrollBar *m_ScrollBar;
|
|
int m_iTotalLine;
|
|
int m_iShowLine;
|
|
int m_iTopLine;
|
|
void __fastcall SBSizeChange();
|
|
|
|
int FBorder;
|
|
int FScrollBarWidth;
|
|
|
|
protected:
|
|
|
|
MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);
|
|
MESSAGE void __fastcall WMSize(Winapi::Messages::TWMSize &Message);
|
|
MESSAGE void __fastcall WMVScroll(Winapi::Messages::TWMScroll &Message);
|
|
MESSAGE void __fastcall WMMouseWheel(TWMMouseWheel &Message);
|
|
|
|
BEGIN_MESSAGE_MAP
|
|
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
|
|
MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize)
|
|
MESSAGE_HANDLER(WM_VSCROLL, TWMVScroll, WMVScroll)
|
|
MESSAGE_HANDLER(WM_MOUSEWHEEL, TWMMouseWheel, WMMouseWheel)
|
|
END_MESSAGE_MAP( TPanelDB )
|
|
|
|
public:
|
|
|
|
__fastcall TScrollView(TComponent* Owner);
|
|
__fastcall ~TScrollView();
|
|
|
|
bool __fastcall SetSB(int iTotalLine, int iShowLine, int iTopLine);
|
|
|
|
__published:
|
|
|
|
__property ChangeSBPos OnChangeSBPos= { read=FChangeSBPos, write=FChangeSBPos };
|
|
__property ChangeSize OnChangeSize = { read=FChangeSize, write=FChangeSize };
|
|
__property TNotiScoll OnHgtTitle = { read=FOnHgtTitle, write=FOnHgtTitle };
|
|
__property TNotiScoll OnHgtBottom = { read=FOnHgtBottom, write=FOnHgtBottom };
|
|
__property TNotiScoll OnMouseWheel = { read=FOnMouseWheel,write=FOnMouseWheel };
|
|
__property int Border = { read=FBorder, write=FBorder };
|
|
__property int ScrollBarWidth = { read=FScrollBarWidth, write=FScrollBarWidth, default=0 };
|
|
};
|
|
/* * * * *
|
|
read me
|
|
|
|
if the tittle panel is exsit, the border setting has no effect,
|
|
you should draw border in title canvas, the same as bottom panel.
|
|
|
|
* * * * */
|
|
#endif
|