/* * CiderPress * Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved. * See the file LICENSE for distribution terms. */ /* * Replacement spin control with extended range. Requires auto-buddy. * * This is based on code originally written by Definitive Solutions, Inc. * It was rewritten because their code was miserable. */ #ifndef UTIL_MYSPINCTRL_H #define UTIL_MYSPINCTRL_H #include // for CSpinButtonCtrl // Declare depending on whether this file is in an EXE or a DLL. class #ifdef _WINDLL AFX_EXT_CLASS #endif MySpinCtrl : public CSpinButtonCtrl { public: MySpinCtrl(void) : fLow(0), fHigh(100) {} virtual ~MySpinCtrl(void) {} // replacements for superclass methods (AFXCMN.H) int SetPos(int nPos); int GetPos() const; void SetRange(int nLower, int nUpper) { SetRange32(nLower, nUpper); } void SetRange32(int nLower, int nUpper); DWORD GetRange() const; // don't use this void GetRange(int &lower, int& upper) const { GetRange32(lower, upper); } void GetRange32(int &lower, int& upper) const; protected: //virtual void PreSubclassWindow(); afx_msg void OnDeltaPos(NMHDR* pNMHDR, LRESULT* pResult); private: DECLARE_COPY_AND_OPEQ(MySpinCtrl) int fLow, fHigh; /* * Convert a decimal or hex string to a long. * * Returns "true" on success, "false" on error. */ bool ConvLong(const WCHAR* str, long* pVal) const; DECLARE_MESSAGE_MAP() }; #endif /*UTIL_MYSPINCTRL_H*/