00001 /* 00002 * TSwitch.h 00003 * Automat 00004 * 00005 * Created by Stefan Kirch on 27.01.05. 00006 * Copyright 2005 Stefan Kirch. All rights reserved. 00007 * 00008 */ 00009 00010 // ----------------------------------------------------------------------------- 00011 00012 #ifndef TSWITCH_H_ 00013 #define TSWITCH_H_ 00014 00015 #include "TViewNoCompositingCompatible.h" 00016 00017 // ----------------------------------------------------------------------------- 00018 00019 enum 00020 { 00021 kVerticalOrientation = 0, 00022 kHorizontalOrientation = 1 00023 }; 00024 00025 // ----------------------------------------------------------------------------- 00026 00027 class TSwitch:public TViewNoCompositingCompatible 00028 { 00029 AUGUIDefineControl(TSwitch, TViewNoCompositingCompatible, "switch"); 00030 00031 protected: 00032 00033 TSwitch(HIViewRef inControl); 00034 virtual ~TSwitch(); 00035 00036 virtual ControlKind GetKind(); 00037 00038 virtual bool UseNonblockingTracking(){return true;} 00039 00040 virtual OSStatus Initialize(TCarbonEvent& inEvent); 00041 00042 virtual void ValueChanged(); 00043 virtual void TitleChanged(); 00044 00045 virtual void DrawStaticBackground(RgnHandle inLimitRgn, CGContextRef inContext, bool inCompositing); 00046 virtual void CompatibleDraw(RgnHandle inLimitRgn, CGContextRef inContext, bool inCompositing); 00047 00048 virtual OSStatus StartTracking(TCarbonEvent&inEvent, HIPoint& from); 00049 00050 private: 00051 00052 CGImageRef mBackImage; 00053 CGImageRef mThumbImage; 00054 CGImageRef mTopImage; 00055 00056 int mOrientation; 00057 }; 00058 00059 #endif 00060 00061 // -----------------------------------------------------------------------------