00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef TXYControl_H_
00012 #define TXYControl_H_
00013
00014 #include "TViewNoCompositingCompatible.h"
00015
00016 class TXYControl:public TViewNoCompositingCompatible
00017 {
00018 AUGUIDefineControl(TXYControl, TViewNoCompositingCompatible, "xy");
00019
00020 public:
00021
00022 static const OSType selectorY = 'posX';
00023 static const OSType selectorX = 'posY';
00024
00025 protected:
00026
00027
00028
00029 TXYControl(HIViewRef inControl);
00030 virtual ~TXYControl();
00031
00032 virtual ControlKind GetKind();
00033
00034 virtual bool UseNonblockingTracking() {return true;}
00035
00036 virtual OSStatus Initialize(TCarbonEvent& inEvent);
00037 virtual OSStatus StartTracking(TCarbonEvent&inEvent, HIPoint& from);
00038 virtual OSStatus StillTracking(TCarbonEvent&inEvent, HIPoint& from);
00039 virtual void DrawStaticBackground(RgnHandle inLimitRgn, CGContextRef inContext, bool inCompositing);
00040 virtual void CompatibleDraw(RgnHandle inLimitRgn, CGContextRef inContext,bool inCompositing);
00041 virtual void TitleChanged();
00042 virtual void ValueChanged();
00043 virtual OSStatus SetData(OSType inTag, ControlPartCode inPart, Size inSize, const void* inPtr);
00044 virtual OSStatus GetData(OSType inTag, ControlPartCode inPart, Size inSize, Size* outSize, void* inPtr);
00045
00046 private:
00047
00048 CGImageRef mBackImage;
00049 CGImageRef mMarker;
00050 double mX, mY;
00051
00052 float mMarker_Size;
00053 float mMarker_A, mMarker_R, mMarker_G, mMarker_B;
00054 };
00055
00056 #endif //