]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/macnotfy.cpp
Patch from Hartwig and me for implementing reorderable dataview columns. Works on...
[wxWidgets.git] / src / mac / carbon / macnotfy.cpp
index b6a170c8ee6b5ac400b66cee34e074c8ccc8d8be..35516a186002eb9e26c2067ebf011a2a9e032571 100644 (file)
@@ -1,162 +1 @@
-/* -------------------------------------------------------------------------
- * Project: Mac Notifier Support
- * Name:    macnotfy.c
- * Author:  Stefan CSomor
- * Purpose: Mac Notifier main file
- * CVSID:   $Id$
- * -------------------------------------------------------------------------
- */
-
-#include "wx/wx.h"
-
-#include "wx/mac/private.h"
-
-#include "wx/mac/macnotfy.h"
-
-const short kMaxEvents = 1000 ;
-
-struct wxMacNotificationEvents
-{
-    short top ;
-    short bottom ;
-    
-    wxMacNotificationProcPtr proc[kMaxEvents] ;
-    unsigned long events[kMaxEvents] ;
-    void* data[kMaxEvents] ;
-} ;
-
-typedef struct wxMacNotificationEvents wxMacNotificationEvents ;
-wxMacNotificationEvents gMacNotificationEvents ;
-
-ProcessSerialNumber gAppProcess ;
-
-void wxMacWakeUp()
-{
-    ProcessSerialNumber psn ;
-    Boolean isSame ;
-    psn.highLongOfPSN = 0 ;
-    psn.lowLongOfPSN = kCurrentProcess ;
-    SameProcess( &gAppProcess , &psn , &isSame ) ;
-    if ( isSame )
-    {
-#if TARGET_CARBON
-        EventRef dummyEvent ;
-        OSStatus err = MacCreateEvent(nil, 'WXMC', 'WXMC', GetCurrentEventTime(),
-                        kEventAttributeNone, &dummyEvent);
-        if (err == noErr) 
-        {
-            err = PostEventToQueue(GetMainEventQueue(), dummyEvent,
-                                  kEventPriorityHigh);
-        } 
-#else
-        PostEvent( nullEvent , 0 ) ;
-#endif
-    }
-    else
-    {
-        WakeUpProcess( &gAppProcess ) ;
-    }
-}
-
-void wxMacCreateNotifierTable()
-{
-      GetCurrentProcess(&gAppProcess);
-    gMacNotificationEvents.top = 0 ;
-    gMacNotificationEvents.bottom = 0 ;
-    for ( int i = 0 ; i < kMaxEvents ; ++i )
-    {
-        gMacNotificationEvents.proc[i] = NULL ;
-        gMacNotificationEvents.events[i] = NULL ;
-        gMacNotificationEvents.data[i] = NULL ;
-    }
-}
-
-void wxMacDestroyNotifierTable() 
-{
-}
-
-wxMacNotifierTableRef wxMacGetNotifierTable() 
-{
-    return (wxMacNotifierTableRef) &gMacNotificationEvents ;
-}
-
-void wxMacAddEvent( 
-    wxMacNotifierTableRef table , 
-    wxMacNotificationProcPtr handler , 
-    unsigned long event , 
-    void* data , 
-    short wakeUp ) 
-{
-    wxMacNotificationEvents *e = (wxMacNotificationEvents *) table ;
-    wxASSERT_MSG( handler != NULL , "illegal notification proc ptr" ) ;
-    /* this should be protected eventually */
-    short index = e->top++ ;
-    
-    if ( e->top == kMaxEvents )
-        e->top = 0 ;
-
-    e->proc[index] = handler ;
-    e->events[index] = event ;
-    e->data[index] = data ;
-    if ( wakeUp )
-        wxMacWakeUp() ;
-}
-
-bool gInProcessing = false ;
-
-void wxMacRemoveAllNotifiersForData( wxMacNotifierTableRef table , void* data ) 
-{
-    wxMacNotificationEvents *e = (wxMacNotificationEvents *) table ;
-    /* this should be protected eventually */
-    short index = e->bottom ;
-    
-    while ( e->top != index )
-    {
-        if ( index == kMaxEvents )
-            index = 0 ;
-        if ( e->data[index] == data )
-            e->data[index] = NULL ;
-        index++ ;
-    }
-}
-
-void wxMacProcessNotifierEvents()
-{
-    //  if ( gInProcessing )
-    //      return ;
-    
-    gInProcessing = true ;
-    if ( gMacNotificationEvents.top != gMacNotificationEvents.bottom )
-    {
-        // we only should process the notifiers that were here when we entered it
-        // otherwise we might never get out...  
-        short count = gMacNotificationEvents.top - gMacNotificationEvents.bottom ;
-        if ( count < 0 )
-            count += kMaxEvents ;
-        
-        while ( count-- )
-        {
-            // consume event at bottom
-            short index = gMacNotificationEvents.bottom++ ;
-            if ( gMacNotificationEvents.bottom == kMaxEvents )
-                gMacNotificationEvents.bottom = 0 ;
-            void* data = gMacNotificationEvents.data[index] ;
-            unsigned long event = gMacNotificationEvents.events[index] ;
-            wxMacNotificationProcPtr handler =  gMacNotificationEvents.proc[index] ;
-            
-            gMacNotificationEvents.data[index] = NULL ;
-            gMacNotificationEvents.events[index] = NULL ;
-            gMacNotificationEvents.proc[index]  = NULL ;
-            
-            if ( handler )
-                handler( event , data  ) ;
-        }
-    }
-    gInProcessing = false ;
-}
-
-void wxMacProcessNotifierAndPendingEvents() 
-{
-    wxMacProcessNotifierEvents() ;
-    wxTheApp->ProcessPendingEvents() ;
-}
+// TODO REMOVE
\ No newline at end of file