]> git.saurik.com Git - wxWidgets.git/commitdiff
introduction of m_peer
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 4 Jun 2004 07:21:50 +0000 (07:21 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 4 Jun 2004 07:21:50 +0000 (07:21 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/gauge.h
include/wx/mac/carbon/private.h
include/wx/mac/carbon/textctrl.h
include/wx/mac/carbon/window.h

index 4eb5db3a69057b5f81f63edf16d1e9b79502c49e..0bc8540fc8b4286248fe630091bad4e84bca2b61 100644 (file)
@@ -23,9 +23,8 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr;
 // Group box
 class WXDLLEXPORT wxGauge: public wxGaugeBase
 {
-  DECLARE_DYNAMIC_CLASS(wxGauge)
  public:
-  inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; }
+  inline wxGauge() { }
 
   inline wxGauge(wxWindow *parent, wxWindowID id,
            int range,
@@ -46,21 +45,12 @@ class WXDLLEXPORT wxGauge: public wxGaugeBase
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxGaugeNameStr);
 
-  void SetShadowWidth(int w);
-  void SetBezelFace(int w);
-  void SetRange(int r);
-  void SetValue(int pos);
-
-  int GetShadowWidth() const ;
-  int GetBezelFace() const ;
-  int GetRange() const ;
-  int GetValue() const ;
-
-  virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ;
-
+    // set gauge range/value
+    virtual void SetRange(int range);
+    virtual void SetValue(int pos);
+    virtual int  GetValue() const ;
  protected:
-   int      m_rangeMax;
-   int      m_gaugePos;
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge)
 };
 
 #endif
index d10d4f564323ac51a9d9ab7aeff8846103e07f06..111d868f1962f5b589cff7b938d5c876a6ddfd4c 100644 (file)
@@ -217,6 +217,7 @@ template<> inline EventParamType wxMacGetEventParamType<Point>() { return typeQD
 template<> inline EventParamType wxMacGetEventParamType<Rect>() { return typeQDRectangle ; }
 template<> inline EventParamType wxMacGetEventParamType<Boolean>() { return typeBoolean ; }
 #if TARGET_API_MAC_OSX
+template<> inline EventParamType wxMacGetEventParamType<HICommand>() { return typeHICommand ; }
 template<> inline EventParamType wxMacGetEventParamType<HIPoint>() { return typeHIPoint ; }
 template<> inline EventParamType wxMacGetEventParamType<HISize>() { return typeHISize ; }
 template<> inline EventParamType wxMacGetEventParamType<HIRect>() { return typeHIRect ; }
@@ -236,9 +237,21 @@ class wxMacCarbonEvent
 {
     
 public :
-    wxMacCarbonEvent( EventRef event ) 
+    wxMacCarbonEvent( EventRef event , bool release = false 
     {
         m_eventRef = event ;
+        m_release = release ;
+    }
+    wxMacCarbonEvent(UInt32 inClassID,UInt32 inKind,EventTime inWhen = 0 /*now*/,EventAttributes inAttributes=kEventAttributeNone) 
+    {
+        m_eventRef = NULL ;
+        verify_noerr( MacCreateEvent( NULL , inClassID, inKind,inWhen,inAttributes,&m_eventRef) ) ;
+        m_release = true ;
+    }
+    ~wxMacCarbonEvent()
+    {
+        if ( m_release )
+            ReleaseEvent( m_eventRef ) ;
     }
     
     OSStatus GetParameter( EventParamName inName, EventParamType inDesiredType, UInt32 inBufferSize, void * outData) ;
@@ -265,21 +278,20 @@ public :
         return value ;
     }
 
-
-    OSStatus SetParameter( EventParamName inName, EventParamType inType, UInt32 inSize, void * inData) ;
-    template <typename T> OSStatus SetParameter( EventParamName inName, EventParamType inDesiredType , T *data )
+    OSStatus SetParameter( EventParamName inName, EventParamType inType, UInt32 inSize, const void * inData) ;
+    template <typename T> OSStatus SetParameter( EventParamName inName, EventParamType inDesiredType , const T *data )
     {
         return SetParameter( inName, inDesiredType , sizeof( T ) , data ) ;
     }
-    template <typename T> OSStatus SetParameter( EventParamName inName, EventParamType inDesiredType , T data )
+    template <typename T> OSStatus SetParameter( EventParamName inName, EventParamType inDesiredType , const T& data )
     {
         return SetParameter<T>( inName, inDesiredType , &data ) ;
     }
-    template <typename T> OSStatus SetParameter( EventParamName inName, T *data )
+    template <typename T> OSStatus SetParameter( EventParamName inName, const T *data )
     {
         return SetParameter<T>( inName, wxMacGetEventParamType<T>() , data ) ;
     }
-    template <typename T> OSStatus SetParameter( EventParamName inName, T data )
+    template <typename T> OSStatus SetParameter( EventParamName inName, const T& data )
     {
         return SetParameter<T>( inName, wxMacGetEventParamType<T>() , &data ) ;
     }
@@ -299,13 +311,20 @@ public :
     {
         return EventTimeToTicks( GetTime() ) ;
     }
+    operator EventRef () { return m_eventRef; }   
 protected :
     EventRef m_eventRef ;
+    bool     m_release ;
 } ;
 
 class wxMacControl
 {
 public :
+    wxMacControl()
+    {
+        m_controlRef = NULL ;
+    }
+    
     wxMacControl( ControlRef control ) 
     {
         m_controlRef = control ;
@@ -315,6 +334,8 @@ public :
         m_controlRef = (ControlRef) control ;
     }
     
+    bool Ok() const { return m_controlRef != NULL ; }
+    
     OSStatus SetData( ControlPartCode inPartCode , ResType inTag , Size inSize , const void * inData ) ;
     OSStatus GetData( ControlPartCode inPartCode , ResType inTag , Size inBufferSize , void * inOutBuffer , Size * outActualSize ) ;
     OSStatus GetDataSize( ControlPartCode inPartCode , ResType inTag , Size * outActualSize ) ;
@@ -324,11 +345,11 @@ public :
         verify_noerr( GetDataSize( inPartCode , inTag , &sz ) ) ;
         return sz ;
     }
-    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , T *data )
+    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , const T *data )
     {
         return SetData( inPartCode , inTag , sizeof( T ) , data ) ;
     }
-    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , T data )
+    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , const T& data )
     {
         return SetData( inPartCode , inTag , sizeof( T ) , &data ) ;
     }
@@ -343,6 +364,36 @@ public :
         verify_noerr( GetData<T>( inPartCode , inTag , &value ) ) ;
         return value ;
     }
+    
+    OSStatus SendEvent(  EventRef ref , OptionBits inOptions = 0 ) ;
+    OSStatus SendHICommand( HICommand &command , OptionBits inOptions = 0 ) ;
+    OSStatus SendHICommand( UInt32 commandID , OptionBits inOptions = 0 ) ;
+    
+    // Flash the control for the specified amount of time
+    void Flash( ControlPartCode part , UInt32 ticks = 8 ) ;
+    
+    SInt32 GetValue() { return ::GetControl32BitValue( m_controlRef ) ; }
+    SInt32 GetMaximum() { return ::GetControl32BitMaximum( m_controlRef ) ; }
+    SInt32 GetMinimum() { return ::GetControl32BitMinimum( m_controlRef ) ; }
+    
+    void SetValue( SInt32 v ) { ::SetControl32BitValue( m_controlRef , v ) ; }
+    void SetMinimum( SInt32 v ) { ::SetControl32BitMinimum( m_controlRef , v ) ; }
+    void SetMaximum( SInt32 v ) { ::SetControl32BitMaximum( m_controlRef , v ) ; }
+
+    void SetValueAndRange( SInt32 value , SInt32 minimum , SInt32 maximum )
+    {
+        ::SetControl32BitMinimum( m_controlRef , minimum ) ;
+        ::SetControl32BitMaximum( m_controlRef , maximum ) ; 
+        ::SetControl32BitValue( m_controlRef , value ) ;
+    }
+    
+    void SetRange( SInt32 minimum , SInt32 maximum )
+    {
+        ::SetControl32BitMinimum( m_controlRef , minimum ) ;
+        ::SetControl32BitMaximum( m_controlRef , maximum ) ; 
+    }
+
+    void operator= (ControlRef c) { m_controlRef = c ; }
     operator ControlRef () { return m_controlRef; }   
     operator ControlRef * () { return &m_controlRef; }   
 protected :
index a8e14fc8645443c8120d49c31d726179ef32b763..7bf124a98a24421fff83f9e8bc662977a4a74d73 100644 (file)
@@ -173,14 +173,16 @@ protected:
     // common part of all ctors
     void Init();
 
-  virtual wxSize DoGetBestSize() const;
+  virtual wxSize            DoGetBestSize() const;
 
   bool  m_editable ;
 
   // flag is set to true when the user edits the controls contents
   bool m_dirty;
 
-  // one of the following objects is used for representation, the other one is NULL
+  WXWidget                  m_scrollView ;
+  WXWidget                  m_textView ;
+  
   void*  m_macTXN ;
   unsigned long  m_maxLength ;
   // need to make this public because of the current implementation via callbacks
index c2c0326e58d7862f286d241673eef861900511e3..4dd02468ef82fb52fe3a31c97ed9e1589c8f6f43 100644 (file)
@@ -26,6 +26,10 @@ class WXDLLEXPORT wxButton;
 class WXDLLEXPORT wxScrollBar;
 class WXDLLEXPORT wxTopLevelWindowMac;
 
+// internal implementation classes
+
+class wxMacControl ;
+
 // ---------------------------------------------------------------------------
 // constants
 // ---------------------------------------------------------------------------
@@ -126,7 +130,7 @@ public:
     // simple accessors
     // ----------------
 
-    virtual WXWidget GetHandle() const { return m_macControl ; }
+    virtual WXWidget GetHandle() const ;
 
 #if WXWIN_COMPATIBILITY_2_4
     bool GetTransparentBackground() const { return m_backgroundTransparent; }
@@ -237,8 +241,8 @@ protected:
     wxList              m_subControls;
     // number of calls to Freeze() minus number of calls to Thaw()
     unsigned int        m_frozenness;
-    // the true native ControlRef / = HIViewRef on OSX
-    WXWidget            m_macControl ;
+    // the peer object, allowing for cleaner API support
+    wxMacControl*       m_peer ;
     // true if is is not a native control but a wxWindow control
        bool                            m_macIsUserPane ;
     wxBrush             m_macBackgroundBrush ;