home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-12-17 | 4.0 KB | 122 lines | [TEXT/CWIE] |
- // =================================================================================
- //
- // CButtonControl.h ©1996 Microsoft Corporation All rights reserved.
- //
- // =================================================================================
-
- #ifndef _H_CButtonControl
- #define _H_CButtonControl
- #pragma once
-
- #include "CBaseControl.h"
- #include "IPlatformControl.h"
-
- typedef enum
- {
- EmptyControlPropertyType = 0x00,
- TypeControlProperty = 0x01,
- VisibleControlProperty = 0x02,
- HiliteControlProperty = 0x04,
- TitleControlProperty = 0x08,
- MinValueControlProperty = 0x10,
- MaxValueControlProperty = 0x20,
- ValueControlProperty = 0x40,
- SizeControlProperty = 0x80,
- PadControlPropertyType = 0xffffffff
- }
- ControlPropertyType;
-
- class CButtonControl;
-
- class CButtonContextInfo :
- public CBaseContextInfo
- {
- public:
- // *** CButtonContextInfo ***
- CButtonContextInfo(CButtonControl* inControlP, Uint32 ContextID);
- virtual ~CButtonContextInfo(void);
-
- // *** CButtonContextInfo methods ***
- ControlHandle GetControlRef(void) { return mTBControlRef; };
- void MakePlatformControl(void);
- Point GetOrigin(void) { return mOrigin; };
-
- private:
- ControlRef mTBControlRef;
- Point mOrigin;
- };
-
-
- class CButtonControl :
- public CBaseControl,
- public IPlatformControl
- {
-
- public:
- friend class CButtonContextInfo;
-
- // *** CButtonControl methods ***
- CButtonControl(void);
- ~CButtonControl(void);
-
- // *** IUnknown methods ***
- STDMETHOD (QueryInterface)(REFIID inRefID, void** outObj);
- STDMETHOD_ (Uint32,AddRef)(THIS) {return CBaseControl::AddRef();}
- STDMETHOD_ (Uint32,Release)(THIS) {return CBaseControl::Release();}
-
- // *** IControl methods ***
- STDMETHOD (GetID)(THIS_ Int32 inBufferSize, Char8* outID);
- STDMETHOD (Draw) (THIS_ DrawContext* inContext);
- STDMETHOD (DoMouse)(THIS_ MouseEventType inMouseET, PlatformEvent* inEvent);
- STDMETHOD (DoActivate)(THIS_ ActivateEventType inActiveET, UInt32 inContextID, PlatformEvent* inEvent);
-
- // *** IPersistPropertyBag methods ***
- STDMETHOD (Load)(IPropertyBag* PropBag, IErrorLog* ErrorLog);
-
- // *** IPlatformControl methods ***
- STDMETHOD (GetType)(THIS_ IUnknown* inSource, ControlType* outCntrlType);
- STDMETHOD (SetType)(THIS_ IUnknown* inSource, ControlType inCntrlType);
- STDMETHOD (GetSize)(THIS_ IUnknown* inSource, Int32* outWidth, Int32* outHeight);
- STDMETHOD (SetSize)(THIS_ IUnknown* inSource, Int32 inWidth, Int32 inHeight);
- STDMETHOD (GetVisible)(THIS_ IUnknown* inSource, Boolean8* outIsVisible);
- STDMETHOD (SetVisible)(THIS_ IUnknown* inSource, Boolean8 inShowIt);
- STDMETHOD (GetHilite)(THIS_ IUnknown* inSource, ControlHiliteType* outHiliteType);
- STDMETHOD (SetHilite)(THIS_ IUnknown* inSource, ControlHiliteType inHiliteType);
- STDMETHOD (GetTitle)(THIS_ IUnknown* inSource, Int32 inBufferSize, Char8* outControlTitle);
- STDMETHOD (SetTitle)(THIS_ IUnknown* inSource, Char8* inControlTitle);
- STDMETHOD (GetMinValue)(THIS_ IUnknown* inSource, Int32* outMinValue);
- STDMETHOD (SetMinValue)(THIS_ IUnknown* inSource, Int32 inMinValue);
- STDMETHOD (GetMaxValue)(THIS_ IUnknown* inSource, Int32* outMaxValue);
- STDMETHOD (SetMaxValue)(THIS_ IUnknown* inSource, Int32 inMaxValue);
- STDMETHOD (GetValue)(THIS_ IUnknown* inSource, Int32* outValue);
- STDMETHOD (SetValue)(THIS_ IUnknown* inSource, Int32 inValue);
- STDMETHOD (SetPageDistance)(THIS_ IUnknown* inSource, Int32 inPageDistance);
-
- Int16 GetPageDistance(void) { return mPageDistance; };
-
- protected:
- // *** protected methods ***
- virtual CBaseContextInfo* NewContext(Uint32 inContextID);
-
- void TouchAllContexts(ControlPropertyType PropertyType);
- ErrorCode DoMouseDown(PlatformEvent* inEvent);
- void DrawAllContexts(void);
- void DrawMe(CButtonContextInfo* inContextInfoP, DrawContext* inContextP);
- void TellListeners(Int32 ControlValue);
-
- // *** protected members ***
- // Rect mBounds;
- Str255 mTitle;
- ControlType mControlType;
- ControlHiliteType mHilite;
- Int32 mRefCon;
- Int16 mCurrentValue;
- Int16 mMinValue;
- Int16 mMaxValue;
- Int16 mPageDistance;
- Boolean8 mVisible;
- Boolean8 mActive;
- };
-
- #endif
-