00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#if !defined(_TEnvelop_h_)
00011 #define _TEnvelop_h_
00012
00013
#include "TViewNoCompositingCompatible.h"
00014
00016 #define kSliderControlDetentValueTag FOUR_CHAR_CODE('CDet')
00017
00020 #define kSliderControlDetentRangeTag FOUR_CHAR_CODE('RDet')
00021
00023 #define kSliderControlUseDetentTag FOUR_CHAR_CODE('UDet')
00024
00075 class TEnvelop :
public TViewNoCompositingCompatible
00076 {
00077
friend class TViewNoCompositingCompatible;
00078
public:
00079 static CFStringRef
GetControlName() {
return CFSTR(
"envelop"); }
00080
protected:
00081
00082
TEnvelop(HIViewRef inControl);
00083
virtual ~TEnvelop();
00084
00085
virtual ControlKind
GetKind();
00086
00087 virtual bool UseNonblockingTracking() {
return true; }
00088
00089
virtual OSStatus Initialize(TCarbonEvent& inEvent);
00090
virtual OSStatus StillTracking(TCarbonEvent&inEvent, HIPoint& from);
00091
virtual OSStatus StartTracking(TCarbonEvent&inEvent, HIPoint& from);
00092
virtual void DrawStaticBackground(RgnHandle inLimitRgn, CGContextRef inContext,
bool inCompositing );
00093
virtual void CompatibleDraw(RgnHandle inLimitRgn, CGContextRef inContext,
bool inCompositing);
00094
virtual void TitleChanged();
00095
virtual void ValueChanged();
00096 virtual UInt32
GetBehaviors() {
return TViewNoCompositingCompatible::GetBehaviors() | kControlSupportsEmbedding | kControlHasSpecialBackground; }
00097
00098
virtual OSStatus SetData(OSType inTag, ControlPartCode inPart, Size inSize,
const void* inPtr);
00099
virtual OSStatus GetData(OSType inTag, ControlPartCode inPart, Size inSize, Size* outSize,
void* inPtr);
00100
00101
protected:
00102 typedef enum {
00103
kHorizontalOrientation,
00104
kVerticalOrientation
00105 } SliderOrientation;
00106
00107 CGImageRef
mThumbImage;
00108 CGImageRef
mBackImage;
00109 float mXInset;
00110 float mTopInset;
00111 float mBottomInset;
00112 SliderOrientation mImageOrientation;
00113 bool mUseDetent;
00114 SInt32
mDetentValue;
00115 SInt32
mDetentRange;
00116 float mTotalDetentMoved;
00117
00118
virtual float ScaleX();
00119
virtual float ScaleY();
00120
SliderOrientation OrientationForRect(
const TRect& theRect);
00121 TRect
ScaledThumbBounds();
00122
private:
00123
int mSize;
00124
float mValues[100];
00125 };
00126
00127
00128
#endif // _TEnvelop_h_