]> git.saurik.com Git - wxWidgets.git/commitdiff
control data support
authorStefan Csomor <csomor@advancedconcepts.ch>
Sat, 29 May 2004 14:51:29 +0000 (14:51 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sat, 29 May 2004 14:51:29 +0000 (14:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/private.h
src/mac/carbon/utils.cpp

index acbf5273fd72bd8324d8ab8aadd9440df148a7c4..d10d4f564323ac51a9d9ab7aeff8846103e07f06 100644 (file)
@@ -283,7 +283,10 @@ public :
     {
         return SetParameter<T>( inName, wxMacGetEventParamType<T>() , &data ) ;
     }
-    
+    UInt32 GetClass()
+    {
+        return ::GetEventClass( m_eventRef ) ;
+    }
     UInt32 GetKind()
     {
         return ::GetEventKind( m_eventRef ) ;
@@ -300,6 +303,52 @@ protected :
     EventRef m_eventRef ;
 } ;
 
+class wxMacControl
+{
+public :
+    wxMacControl( ControlRef control ) 
+    {
+        m_controlRef = control ;
+    }
+    wxMacControl( WXWidget control )
+    {
+        m_controlRef = (ControlRef) control ;
+    }
+    
+    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 ) ;
+    Size GetDataSize( ControlPartCode inPartCode , ResType inTag )
+    {
+        Size sz ;
+        verify_noerr( GetDataSize( inPartCode , inTag , &sz ) ) ;
+        return sz ;
+    }
+    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , T *data )
+    {
+        return SetData( inPartCode , inTag , sizeof( T ) , data ) ;
+    }
+    template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , T data )
+    {
+        return SetData( inPartCode , inTag , sizeof( T ) , &data ) ;
+    }
+    template <typename T> OSStatus GetData( ControlPartCode inPartCode , ResType inTag , T *data )
+    {
+        Size dummy ;
+        return GetData( inPartCode , inTag , sizeof( T ) , data , &dummy ) ;
+    }
+    template <typename T> T GetData( ControlPartCode inPartCode , ResType inTag )
+    {
+        T value ;
+        verify_noerr( GetData<T>( inPartCode , inTag , &value ) ) ;
+        return value ;
+    }
+    operator ControlRef () { return m_controlRef; }   
+    operator ControlRef * () { return &m_controlRef; }   
+protected :
+    ControlRef m_controlRef ;
+} ;
+
 #endif // wxUSE_GUI
 
 //---------------------------------------------------------------------------
index ce536a483218d2c41ad92ae8837307db3f159ea9..5c4da3a6252973b283a73290548dc52c4448c8a1 100644 (file)
@@ -1286,6 +1286,25 @@ OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType in
     return ::SetEventParameter( m_eventRef , inName , inType , inBufferSize , inData ) ;   
 }
 
+// ----------------------------------------------------------------------------
+// Control Access Support
+// ----------------------------------------------------------------------------
+
+OSStatus wxMacControl::GetData(ControlPartCode inPartCode , ResType inTag , Size inBufferSize , void * inOutBuffer , Size * outActualSize )
+{
+    return ::GetControlData( m_controlRef , inPartCode , inTag , inBufferSize , inOutBuffer , outActualSize ) ;   
+}
+
+OSStatus wxMacControl::GetDataSize(ControlPartCode inPartCode , ResType inTag , Size * outActualSize )
+{
+    return ::GetControlDataSize( m_controlRef , inPartCode , inTag , outActualSize ) ;   
+}
+
+OSStatus wxMacControl::SetData(ControlPartCode inPartCode , ResType inTag , Size inSize , const void * inData)
+{
+    return ::SetControlData( m_controlRef , inPartCode , inTag , inSize , inData ) ;   
+}
+
 // ----------------------------------------------------------------------------
 // debugging support
 // ----------------------------------------------------------------------------