home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Sample Controls / Button / CButtonControl.h < prev    next >
Encoding:
Text File  |  1996-12-17  |  4.0 KB  |  122 lines  |  [TEXT/CWIE]

  1. // =================================================================================
  2. //
  3. //    CButtonControl.h                ©1996 Microsoft Corporation All rights reserved.
  4. //
  5. // =================================================================================
  6.  
  7. #ifndef _H_CButtonControl
  8. #define _H_CButtonControl
  9. #pragma once
  10.  
  11. #include "CBaseControl.h"
  12. #include "IPlatformControl.h"
  13.  
  14. typedef enum
  15. {
  16.     EmptyControlPropertyType = 0x00,
  17.     TypeControlProperty        = 0x01,
  18.     VisibleControlProperty    = 0x02,
  19.     HiliteControlProperty    = 0x04,
  20.     TitleControlProperty    = 0x08,
  21.     MinValueControlProperty    = 0x10,
  22.     MaxValueControlProperty    = 0x20,
  23.     ValueControlProperty    = 0x40,
  24.     SizeControlProperty        = 0x80,
  25.     PadControlPropertyType    = 0xffffffff
  26. }
  27. ControlPropertyType;
  28.  
  29. class CButtonControl;
  30.  
  31. class CButtonContextInfo :
  32.         public CBaseContextInfo
  33. {
  34. public:
  35.     // *** CButtonContextInfo ***
  36.                     CButtonContextInfo(CButtonControl* inControlP, Uint32 ContextID);
  37.     virtual         ~CButtonContextInfo(void);
  38.  
  39.     // *** CButtonContextInfo methods ***
  40.     ControlHandle    GetControlRef(void) { return mTBControlRef; };
  41.     void            MakePlatformControl(void);
  42.     Point            GetOrigin(void) { return mOrigin; };
  43.  
  44. private:
  45.     ControlRef        mTBControlRef;    
  46.     Point            mOrigin;
  47. };
  48.  
  49.  
  50. class CButtonControl :
  51.         public CBaseControl,
  52.         public IPlatformControl
  53. {
  54.  
  55. public:
  56.     friend class CButtonContextInfo;
  57.  
  58.     // *** CButtonControl methods ***
  59.     CButtonControl(void);
  60.     ~CButtonControl(void);
  61.  
  62.     //  *** IUnknown methods ***
  63.     STDMETHOD    (QueryInterface)(REFIID inRefID, void** outObj);
  64.     STDMETHOD_    (Uint32,AddRef)(THIS) {return CBaseControl::AddRef();}
  65.     STDMETHOD_    (Uint32,Release)(THIS) {return CBaseControl::Release();}
  66.  
  67.     // *** IControl methods ***
  68.     STDMETHOD    (GetID)(THIS_ Int32 inBufferSize, Char8* outID);
  69.     STDMETHOD    (Draw) (THIS_ DrawContext* inContext);
  70.     STDMETHOD    (DoMouse)(THIS_ MouseEventType inMouseET, PlatformEvent* inEvent);
  71.     STDMETHOD    (DoActivate)(THIS_ ActivateEventType inActiveET, UInt32 inContextID, PlatformEvent* inEvent);
  72.  
  73.     //  *** IPersistPropertyBag methods ***
  74.     STDMETHOD    (Load)(IPropertyBag* PropBag, IErrorLog* ErrorLog);
  75.  
  76.     // *** IPlatformControl methods ***
  77.     STDMETHOD    (GetType)(THIS_ IUnknown* inSource, ControlType* outCntrlType);
  78.     STDMETHOD    (SetType)(THIS_ IUnknown* inSource, ControlType inCntrlType);
  79.     STDMETHOD    (GetSize)(THIS_ IUnknown* inSource, Int32* outWidth, Int32* outHeight);
  80.     STDMETHOD    (SetSize)(THIS_ IUnknown* inSource, Int32 inWidth, Int32 inHeight);
  81.     STDMETHOD    (GetVisible)(THIS_ IUnknown* inSource, Boolean8* outIsVisible);
  82.     STDMETHOD    (SetVisible)(THIS_ IUnknown* inSource, Boolean8 inShowIt);
  83.     STDMETHOD    (GetHilite)(THIS_ IUnknown* inSource, ControlHiliteType* outHiliteType);
  84.     STDMETHOD    (SetHilite)(THIS_ IUnknown* inSource, ControlHiliteType inHiliteType);
  85.     STDMETHOD    (GetTitle)(THIS_ IUnknown* inSource, Int32 inBufferSize, Char8* outControlTitle);
  86.     STDMETHOD    (SetTitle)(THIS_ IUnknown* inSource, Char8* inControlTitle);
  87.     STDMETHOD    (GetMinValue)(THIS_ IUnknown* inSource, Int32* outMinValue);
  88.     STDMETHOD    (SetMinValue)(THIS_ IUnknown* inSource, Int32 inMinValue);
  89.     STDMETHOD    (GetMaxValue)(THIS_ IUnknown* inSource, Int32* outMaxValue);
  90.     STDMETHOD    (SetMaxValue)(THIS_ IUnknown* inSource, Int32 inMaxValue);
  91.     STDMETHOD    (GetValue)(THIS_ IUnknown* inSource, Int32* outValue);
  92.     STDMETHOD    (SetValue)(THIS_ IUnknown* inSource, Int32 inValue);
  93.     STDMETHOD    (SetPageDistance)(THIS_ IUnknown* inSource, Int32 inPageDistance);
  94.  
  95.     Int16        GetPageDistance(void) { return mPageDistance; };
  96.  
  97. protected:
  98.     // *** protected methods ***
  99.     virtual CBaseContextInfo*    NewContext(Uint32 inContextID);
  100.  
  101.     void                TouchAllContexts(ControlPropertyType PropertyType);
  102.     ErrorCode            DoMouseDown(PlatformEvent* inEvent);
  103.     void                DrawAllContexts(void);
  104.     void                DrawMe(CButtonContextInfo* inContextInfoP, DrawContext* inContextP);
  105.     void                TellListeners(Int32 ControlValue);
  106.  
  107.     // *** protected members ***
  108. //    Rect                mBounds;
  109.     Str255                mTitle;
  110.     ControlType            mControlType;
  111.     ControlHiliteType    mHilite;
  112.     Int32                mRefCon;
  113.     Int16                mCurrentValue;
  114.     Int16                mMinValue;
  115.     Int16                mMaxValue;
  116.     Int16                mPageDistance;
  117.     Boolean8            mVisible;
  118.     Boolean8            mActive;
  119. };
  120.  
  121. #endif
  122.