]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/app.cpp
don't pass arrays by value (and also fixed signed/unsigned comparison warning
[wxWidgets.git] / src / gtk / app.cpp
index 65710bb24dccd17b3d952cbcc99b9e22ab6e898b..a1bdce64aa5fa862a3485798b6708e00cc034f69 100644 (file)
@@ -42,7 +42,9 @@
 #endif
 
 #include <unistd.h>
-#ifdef __VMS
+#if defined(__DARWIN__)
+// FIXME: select must be used instead of poll (GD)
+#elif defined(__VMS)
 # include <poll.h>
 #else
 # include <sys/poll.h>
@@ -245,7 +247,14 @@ static gint wxapp_poll_func( GPollFD *ufds, guint nfds, gint timeout )
     wxMutexGuiLeave();
     g_mainThreadLocked = TRUE;
 
+#ifdef __DARWIN__
+    // FIXME: poll is not available under Darwin/Mac OS X and this needs
+    //        to be implemented using select instead (GD)
+    //        what about other BSD derived systems?
+    res = -1;
+#else
     res = poll( (struct pollfd*) ufds, nfds, timeout );
+#endif
 
     wxMutexGuiEnter();
     g_mainThreadLocked = FALSE;
@@ -486,12 +495,37 @@ bool wxApp::SendIdleEvents()
         wxWindow* win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
+            
         node = node->GetNext();
     }
 
+    node = wxTopLevelWindows.GetFirst();
+    while (node)
+    {
+        wxWindow* win = node->GetData();
+        CallInternalIdle( win );
+        
+        node = node->GetNext();
+    }
     return needMore;
 }
 
+bool wxApp::CallInternalIdle( wxWindow* win )
+{
+    win->OnInternalIdle();
+
+    wxNode* node = win->GetChildren().First();
+    while (node)
+    {
+        wxWindow* win = (wxWindow*) node->Data();
+        CallInternalIdle( win );
+
+        node = node->Next();
+    }
+    
+    return TRUE;
+}
+
 bool wxApp::SendIdleEvents( wxWindow* win )
 {
     bool needMore = FALSE;
@@ -501,8 +535,6 @@ bool wxApp::SendIdleEvents( wxWindow* win )
 
     win->GetEventHandler()->ProcessEvent(event);
 
-    win->OnInternalIdle();
-
     if (event.MoreRequested())
         needMore = TRUE;
 
@@ -821,47 +853,6 @@ int wxEntry( int argc, char *argv[] )
     return retValue;
 }
 
-#ifndef __WXUNIVERSAL__
-
-// XPM hack: make the arrays const
-#define static static const
-
-#include "wx/gtk/info.xpm"
-#include "wx/gtk/error.xpm"
-#include "wx/gtk/question.xpm"
-#include "wx/gtk/warning.xpm"
-
-#undef static
-
-wxIcon wxApp::GetStdIcon(int which) const
-{
-    switch(which)
-    {
-        case wxICON_INFORMATION:
-            return wxIcon(info_xpm);
-
-        case wxICON_QUESTION:
-            return wxIcon(question_xpm);
-
-        case wxICON_EXCLAMATION:
-            return wxIcon(warning_xpm);
-
-        default:
-            wxFAIL_MSG(wxT("requested non existent standard icon"));
-            // still fall through
-
-        case wxICON_HAND:
-            return wxIcon(error_xpm);
-    }
-}
-#else
-wxIcon wxApp::GetStdIcon(int which) const
-{
-    return wxTheme::Get()->GetRenderer()->GetStdIcon(which);
-}
-#endif // !__WXUNIVERSAL__
-
-
 #ifdef __WXDEBUG__
 
 void wxApp::OnAssert(const wxChar *file, int line, const wxChar *msg)