mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.0 KiB
86 lines
3.0 KiB
//---------------------------------------------------------------------------------------
|
|
// File : Pager.h
|
|
// Description :
|
|
// This is the header file for the pager control
|
|
//---------------------------------------------------------------------------------------
|
|
#include "ccontrol.h"
|
|
|
|
#define PGMP_RECALCSIZE 200
|
|
|
|
//---------------------------------------------------------------------------------------
|
|
class CPager : public CControl
|
|
{
|
|
public:
|
|
//Function Memebers
|
|
virtual LRESULT v_WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT PagerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT PagerDragCallback(HWND hwnd, UINT code, WPARAM wp, LPARAM lp);
|
|
protected:
|
|
|
|
CPager();
|
|
|
|
//Function Members
|
|
DWORD _PGFToPGNDirection(DWORD dwDir);
|
|
void _Scroll(DWORD dwDirection);
|
|
void _SetChildPos(RECT * prcChild, UINT uFlags);
|
|
void _NeedScrollbars(RECT rc);
|
|
int _GetPage(DWORD dwDirection);
|
|
void _OnSetChild(HWND hwnd, HWND hwndChild);
|
|
void _OnSetPos(int iPos);
|
|
int _OnGetPos();
|
|
int _OnSetBorder(int iBorder);
|
|
int _OnSetButtonSize(int iSize);
|
|
void _OnHotItemChange(int iButton, BOOL fEnter);
|
|
void _OnReCalcSize();
|
|
void _OnLButtonChange(UINT uMsg,LPARAM lParam);
|
|
void _OnMouseMove(WPARAM wParam,LPARAM lParam);
|
|
void _DrawButton(HDC hdc,int button);
|
|
void _DrawBlank(HDC hdc,int button);
|
|
BOOL _OnPrint(HDC hdc,UINT uFlags);
|
|
int _HitTest(int x , int y);
|
|
int _HitTestScreen(LPPOINT ppt);
|
|
int _HitTestCursor();
|
|
void _GetChildSize();
|
|
RECT _GetButtonRect(int iButton);
|
|
void _OnMouseLeave();
|
|
inline _GetButtonSize();
|
|
DWORD _GetButtonState(int iButton);
|
|
void _OnTimer(UINT id);
|
|
LRESULT _DragCallback(HWND hwnd, UINT code, WPARAM wp, LPARAM lp);
|
|
void _KillTimer();
|
|
|
|
virtual void v_OnPaint(HDC hdc);
|
|
virtual LRESULT v_OnCreate();
|
|
virtual void v_OnSize(int x, int y);
|
|
virtual void v_OnNCPaint();
|
|
virtual LRESULT v_OnCommand(WPARAM wParam, LPARAM lParam);
|
|
virtual LRESULT v_OnNotify(WPARAM wParam, LPARAM lParam);
|
|
virtual DWORD v_OnStyleChanged(WPARAM wParam, LPARAM lParam);
|
|
virtual BOOL v_OnNCCalcSize(WPARAM wParam, LPARAM lParam, LRESULT *plres);
|
|
|
|
virtual LPCTSTR GetThemeClass() { return TEXT("Pager"); }
|
|
|
|
//Data Members
|
|
HWND _hwndChild;
|
|
POINT _ptPos;
|
|
POINT _ptLastMove;
|
|
BITBOOL _fReCalcSend:1;
|
|
BITBOOL _fForwardMouseMsgs:1;
|
|
BITBOOL _fBkColorSet:1;
|
|
BITBOOL _fTimerSet :1;
|
|
BITBOOL _fOwnsButtonDown :1;
|
|
int _iButtonTrack;
|
|
RECT _rcDefClient; // this is our "natural" client rect if we didn't mess with nccalc
|
|
DWORD _dwState[2]; // State of the two scroll buttons
|
|
RECT _rcChildIdeal; // our child's ideal size
|
|
int _iButtonSize;
|
|
HDRAGPROXY _hDragProxy;
|
|
|
|
COLORREF _clrBk;
|
|
int _iBorder;
|
|
|
|
UINT _cLinesPerTimeout;
|
|
UINT _cPixelsPerLine;
|
|
UINT _cTimeout;
|
|
};
|
|
//---------------------------------------------------------------------------------------
|