]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/utils.cpp
Applied #15375 to stop event-sending in generic wxSpinCtrl ctor (eco)
[wxWidgets.git] / src / x11 / utils.cpp
index 92c6b4c4e3e6f6c4975d6058cd407ea6deb65d41..69750e035fdd7f6b4943fc128190496d00a0f5ac 100644 (file)
@@ -4,8 +4,8 @@
 // Author:      Julian Smart
 // Modified by:
 // Created:     17/09/98
-// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
+//              (c) 2013 Rob Bresalier
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -16,6 +16,8 @@
     #pragma hdrstop
 #endif
 
+#include "wx/private/eventloopsourcesmanager.h"
+
 // ============================================================================
 // declarations
 // ============================================================================
@@ -58,8 +60,6 @@
 #pragma message disable nosimpint
 #endif
 
-#include "wx/unix/execute.h"
-
 #include "wx/x11/private.h"
 
 #include "X11/Xutil.h"
@@ -94,14 +94,11 @@ bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd))
 // ----------------------------------------------------------------------------
 
 // Emit a beeeeeep
-#ifndef __EMX__
-// on OS/2, we use the wxBell from wxBase library (src/os2/utils.cpp)
 void wxBell()
 {
     // Use current setting for the bell
     XBell ((Display*) wxGetDisplay(), 0);
 }
-#endif
 
 wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
 {
@@ -365,12 +362,11 @@ void wxAllocColor(Display *d,Colormap cmp,XColor *xc)
 {
     if (!XAllocColor(d,cmp,xc))
     {
-        //          cout << "wxAllocColor : Warning : Can not allocate color, attempt find nearest !\n";
+        //          cout << "wxAllocColor : Warning : Cannot allocate color, attempt find nearest !\n";
         wxAllocNearestColor(d,cmp,xc);
     }
 }
 
-#ifdef __WXDEBUG__
 wxString wxGetXEventName(XEvent& event)
 {
 #if wxUSE_NANOX
@@ -378,7 +374,7 @@ wxString wxGetXEventName(XEvent& event)
     return str;
 #else
     int type = event.xany.type;
-    static char* event_name[] = {
+    static const char* event_name[] = {
         "", "unknown(-)",                                         // 0-1
         "KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", // 2-5
         "MotionNotify", "EnterNotify", "LeaveNotify", "FocusIn",  // 6-9
@@ -395,12 +391,28 @@ wxString wxGetXEventName(XEvent& event)
         return wxString::FromAscii(event_name[type]);
 #endif
 }
-#endif
 
-bool wxWindowIsVisible(Window win)
+#if wxUSE_EVENTLOOP_SOURCE
+
+class wxX11EventLoopSourcesManager : public wxEventLoopSourcesManagerBase
 {
-    XWindowAttributes wa;
-    XGetWindowAttributes(wxGlobalDisplay(), win, &wa);
+public:
+    wxEventLoopSource *
+    AddSourceForFD(int WXUNUSED(fd),
+                   wxEventLoopSourceHandler* WXUNUSED(handler),
+                   int WXUNUSED(flags))
+    {
+        wxFAIL_MSG("Monitoring FDs in the main loop is not implemented in wxX11");
 
-    return (wa.map_state == IsViewable);
+        return NULL;
+    }
+};
+
+wxEventLoopSourcesManagerBase* wxGUIAppTraits::GetEventLoopSourcesManager()
+{
+    static wxX11EventLoopSourcesManager s_eventLoopSourcesManager;
+
+    return &s_eventLoopSourcesManager;
 }
+
+#endif // wxUSE_EVENTLOOP_SOURCE