00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef TKnobArcControl_H_
00011 #define TKnobArcControl_H_
00012
00013 #include "TKnobControl.h"
00014
00015
00016
00017
00018
00019 enum
00020 {
00021 kNoAlphaBlend = 0,
00022 kAlphaBlend = 1,
00023 kInverseAlphaBlend = 2,
00024
00025 kSmallWidthNoCenter = 0,
00026 kSmallDynamicNoCenter = 1,
00027 kSmallInvDynamicNoCenter = 2,
00028 kSmallWidth = 3,
00029 kSmallDynamic = 4,
00030 kSmallRing = 5,
00031
00032 kLiveLike = 10,
00033
00034 kFullWidth = 100,
00035 kFullWidthNoCenter = 101
00036 };
00037
00038
00039
00040 class TKnobArcControl:public TKnobControl
00041 {
00042 AUGUIDefineControl(TKnobArcControl, TKnobControl, "knobArc");
00043
00044 public:
00045
00046
00047 virtual void SetProperty(OSType propID, double value);
00048 virtual void SetProperty(OSType propID, int32_t value);
00049 virtual void SetProperty(OSType propID, AUGUI::color_t &value);
00050
00051 virtual bool GetProperty(OSType propID, double &value);
00052 virtual bool GetProperty(OSType propID, int32_t &value);
00053 virtual bool GetProperty(OSType propID, AUGUI::color_t &value);
00054
00055 protected:
00056
00057
00058 TKnobArcControl(HIViewRef inControl);
00059 virtual ~TKnobArcControl();
00060
00061 virtual void TitleChanged();
00062 virtual void CompatibleDraw(RgnHandle inLimitRgn, CGContextRef inContext,bool inCompositing);
00063
00064 private:
00065
00066 void DrawStrokeArc(CGContextRef context, float fillWidth, float fillRadius, float startAngle, float endAngle, float alphaBlend);
00067 void DrawFillArc(CGContextRef context, float fillRadius, float startAngle, float endAngle, float alphaBlend);
00068
00069 float mFill_R, mFill_G, mFill_B, mFill_A;
00070 float mFrame_R, mFrame_G, mFrame_B, mFrame_A;
00071
00072 bool mDrawFrame;
00073 bool mHalfCircle;
00074 int mFillMode;
00075 int mAlphaBlend;
00076
00077 float mMiddleAngle;
00078
00079 };
00080
00081 #endif // TKnobArcControl_H_#endif
00082
00083