windows-nt/Source/XPSP1/NT/shell/comctl32/v6/pager.h
2020-09-26 16:20:57 +08:00

87 lines
3 KiB
C++

//---------------------------------------------------------------------------------------
// 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;
};
//---------------------------------------------------------------------------------------