///////////////////////////////////////////////////////////////
//
// TrailsPage.h
//
// Created: 25/06/2005
// Copyright (c) 2005 Ralph Hare (ralph.hare@ysgyfarnog.co.uk)
// All rights reserved.
//
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.
//
///////////////////////////////////////////////////////////////
#ifndef __TRAILSPAGE_ADF2A98D_E37D_45D2_A111_1527BD0F52D6
#define __TRAILSPAGE_ADF2A98D_E37D_45D2_A111_1527BD0F52D6
#include "resource.h"
#include "TrackBarCtrlEx.h"
#include "MouseTrackerEx.h"
#include <atlmisc.h>
#include <atlddx.h>
struct ColourRec
{
LPCTSTR name;
COLORREF clr;
};
class TrailsPage :
public CPropertyPageImpl< TrailsPage >,
public CWinDataExchange< TrailsPage >,
public MouseTracker::Watcher
{
public:
TrailsPage();
public:
enum { IDD = IDD_PROPPAGE_TRAILS };
BEGIN_MSG_MAP( TrailsPage )
MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog )
MESSAGE_HANDLER( WM_DESTROY, OnDestroy )
MESSAGE_HANDLER( WM_DRAWITEM, OnDrawItem )
COMMAND_HANDLER( IDC_COMBO_COLOUR, CBN_SELCHANGE, OnColourChange )
COMMAND_ID_HANDLER( IDC_BUTTON_CUSTOM, OnCustom )
COMMAND_ID_HANDLER( IDC_CHECK_ENABLE, OnEnabled )
NOTIFY_HANDLER( IDC_SLIDER_THICKNESS, NM_RELEASEDCAPTURE, OnSliderChange )
NOTIFY_HANDLER( IDC_SLIDER_TRANSPARENCY, NM_RELEASEDCAPTURE, OnSliderChange )
NOTIFY_HANDLER( IDC_SLIDER_FADE_SPEED, NM_RELEASEDCAPTURE, OnSliderChange )
NOTIFY_CODE_HANDLER( TTN_NEEDTEXTW, OnNeedTextW );
CHAIN_MSG_MAP( CPropertyPageImpl< TrailsPage > )
END_MSG_MAP()
BEGIN_DDX_MAP( TrailsPage )
DDX_CHECK( IDC_CHECK_ENABLE, m_enable )
END_DDX_MAP()
// Handler prototypes (uncomment arguments if needed):
// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled )
// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled )
// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL &bHandled )
private:
LRESULT OnInitDialog( UINT, WPARAM, LPARAM, BOOL & );
LRESULT OnDestroy( UINT, WPARAM, LPARAM, BOOL & );
LRESULT OnDrawItem( UINT, WPARAM, LPARAM, BOOL & );
LRESULT OnCustom( WORD, WORD, HWND, BOOL & );
LRESULT OnEnabled( WORD, WORD, HWND, BOOL & );
LRESULT OnColourChange( WORD, WORD, HWND, BOOL & );
LRESULT OnSliderChange( int, LPNMHDR, BOOL & );
LRESULT OnNeedTextW( int, LPNMHDR, BOOL & );
// CPropertyPageImpl
public:
BOOL OnApply();
void SetModified( BOOL isModified );
// MouseTracker::Watcher
private:
bool OnRightButtonDown( HWND, const POINT &pt, DWORD );
private:
void EnableWindows();
COLORREF GetColour() const;
private:
CComboBox m_comboColour;
CButton m_btnEnable;
CButton m_btnCustom;
CTrackBarCtrl m_sliderThickness;
TrackBarCtrlEx m_sliderTransparency;
TrackBarCtrlEx m_sliderFadeSpeed;
CStatic m_staticImage;
CBitmap m_bitmapImage;
WTL::CRect m_rcImage;
ColourRec m_customColour;
BOOL m_enable;
MouseTrackerEx m_mouseTracker;
bool m_isModified;
};
#endif // __TRAILSPAGE_ADF2A98D_E37D_45D2_A111_1527BD0F52D6