00001 /* 00002 * TPMMatrixPane.h 00003 * NeuSynth 00004 * 00005 * Created by Airy on Wed Mar 12 2003. 00006 * Copyright (c) 2003 Airy ANDRE. All rights reserved. 00007 * 00008 */ 00009 #ifndef _TPMMatrixPane_h_ 00010 #define _TPMMatrixPane_h_ 00011 00012 #include "TViewNoCompositingCompatible.h" 00013 00019 class TPMMatrixPane : public TViewNoCompositingCompatible 00020 { 00021 friend class TViewNoCompositingCompatible; 00022 public: 00023 static CFStringRef GetControlName() { return CFSTR("PMMatrix"); } 00024 static const OSType kControlKind = 'Mtrx'; 00025 static const OSType kSubPanelSignature = 'SubP'; 00026 static const OSType kSubPanelID = 'SbID'; 00027 protected: 00028 // Contstructor/Destructor 00029 TPMMatrixPane(HIViewRef inControl); 00030 virtual ~TPMMatrixPane(); 00031 00032 virtual bool UseNonblockingTracking() { return false; } 00033 virtual ControlKind GetKind(); 00034 // virtual OSStatus StartTracking(TCarbonEvent& inEvent, HIPoint& from); 00035 // virtual OSStatus StopTracking(TCarbonEvent& inEvent, HIPoint& from); 00036 // virtual OSStatus StillTracking(TCarbonEvent&inEvent, HIPoint& from); 00037 00038 virtual ControlPartCode HitTest(const HIPoint& inWhere); 00039 virtual OSStatus HandleEvent(EventHandlerCallRef inCallRef, TCarbonEvent& inEvent ); 00040 00041 virtual OSStatus Initialize(TCarbonEvent& inEvent); 00042 virtual OSStatus ControlHit(ControlPartCode inPart, UInt32 inModifiers ); 00043 virtual void CompatibleDraw(RgnHandle inLimitRgn, CGContextRef inContext, bool); 00044 virtual void Draw(RgnHandle inLimitRgn, CGContextRef inContext); 00045 virtual void ValueChanged(); 00046 00047 virtual UInt32 GetBehaviors() { return TViewNoCompositingCompatible::GetBehaviors() | kControlSupportsEmbedding | kControlHandlesTracking; } 00048 static pascal OSStatus MouseEventHandler(EventHandlerCallRef inCallRef,EventRef inEvent,void* inUserData ); 00049 pascal OSStatus mouseDragged(TCarbonEvent&inEvent); 00050 pascal OSStatus mouseUp(TCarbonEvent&inEvent); 00051 private: 00052 int mID; 00053 int mValue; 00054 EventHandlerRef mMouseEventHandler; 00055 HIPoint mFromPoint; 00056 }; 00057 00058 00059 #endif // _TPMMatrixPane_h_