X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5e29f97a3c55598b9310a4643f9073b6b926672c..8161b5b9f03998a332dbacad3b476a292bc847f6:/src/x11/utils.cpp diff --git a/src/x11/utils.cpp b/src/x11/utils.cpp index 6c2f0ecf76..fc15ff0ce1 100644 --- a/src/x11/utils.cpp +++ b/src/x11/utils.cpp @@ -45,17 +45,10 @@ #pragma message disable nosimpint #endif -#ifdef __WXMOTIF__ -#include -#endif - -#ifdef __VMS__ -#pragma message enable nosimpint -#endif - #include "wx/unix/execute.h" #ifdef __WXMOTIF__ +#include #include "wx/motif/private.h" #endif @@ -63,9 +56,16 @@ #include "wx/x11/private.h" #endif +#if wxUSE_RESOURCES #include "X11/Xresource.h" +#endif + #include "X11/Xutil.h" +#ifdef __VMS__ +#pragma message enable nosimpint +#endif + // ---------------------------------------------------------------------------- // private functions // ---------------------------------------------------------------------------- @@ -165,9 +165,11 @@ static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid), XtRemoveInput(*id); } +#endif int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) { +#ifdef __WXMOTIF__ XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(), fd, (XtPointer *) XtInputReadMask, @@ -175,8 +177,12 @@ int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) (XtPointer) proc_data); return (int)id; -} #endif +#ifdef __WXX11__ + // TODO + return 0; +#endif +} // ---------------------------------------------------------------------------- // misc @@ -203,6 +209,7 @@ int wxGetOsVersion(int *majorVsn, int *minorVsn) *minorVsn = ProtocolRevision (display); return wxMOTIF_X; +#endif #ifdef __WXX11__ if (majorVsn) *majorVsn = 0; @@ -561,6 +568,11 @@ wxSetDefaultResources (const Widget w, const char **resourceSpec, const char *na void wxGetMousePosition( int* x, int* y ) { +#if wxUSE_NANOX + // TODO + *x = 0; + *y = 0; +#else XMotionEvent xev; Window root, child; XQueryPointer((Display*) wxGetDisplay(), @@ -571,6 +583,7 @@ void wxGetMousePosition( int* x, int* y ) &(xev.state)); *x = xev.x_root; *y = xev.y_root; +#endif }; // Return TRUE if we have a colour display @@ -633,8 +646,9 @@ WXDisplay *wxGetDisplay() return XtDisplay ((Widget) wxTheApp->GetTopLevelWidget()); else if (wxTheApp) return wxTheApp->GetInitialDisplay(); + return NULL; #endif -#ifdef __WXGTK__ +#ifdef __WXX11__ return wxApp::GetDisplay(); #endif } @@ -675,7 +689,7 @@ bool wxSetDisplay(const wxString& display_name) return FALSE; #endif #ifdef __WXX11__ - Display* display = XOpenDisplay((const char*) display_name); + Display* display = XOpenDisplay((char*) display_name.c_str()); if (display) { @@ -1007,6 +1021,7 @@ void wxXColorToHSV(wxHSV *hsv,XColor *rgb) void wxAllocNearestColor(Display *d,Colormap cmp,XColor *xc) { +#if !wxUSE_NANOX int llp; int screen = DefaultScreen(d); @@ -1043,6 +1058,7 @@ void wxAllocNearestColor(Display *d,Colormap cmp,XColor *xc) */ delete[] color_defs; +#endif } void wxAllocColor(Display *d,Colormap cmp,XColor *xc) @@ -1054,6 +1070,34 @@ void wxAllocColor(Display *d,Colormap cmp,XColor *xc) } } +#ifdef __WXDEBUG__ +wxString wxGetXEventName(XEvent& event) +{ +#if wxUSE_NANOX + wxString str(wxT("(some event)")); + return str; +#else + int type = event.xany.type; + static char* event_name[] = { + "", "unknown(-)", // 0-1 + "KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", // 2-5 + "MotionNotify", "EnterNotify", "LeaveNotify", "FocusIn", // 6-9 + "FocusOut", "KeymapNotify", "Expose", "GraphicsExpose", // 10-13 + "NoExpose", "VisibilityNotify", "CreateNotify", // 14-16 + "DestroyNotify", "UnmapNotify", "MapNotify", "MapRequest",// 17-20 + "ReparentNotify", "ConfigureNotify", "ConfigureRequest", // 21-23 + "GravityNotify", "ResizeRequest", "CirculateNotify", // 24-26 + "CirculateRequest", "PropertyNotify", "SelectionClear", // 27-29 + "SelectionRequest", "SelectionNotify", "ColormapNotify", // 30-32 + "ClientMessage", "MappingNotify", // 33-34 + "unknown(+)"}; // 35 + type = wxMin(35, type); type = wxMax(1, type); + wxString str(event_name[type]); + return str; +#endif +} +#endif + #ifdef __WXMOTIF__ // ---------------------------------------------------------------------------- // accelerators @@ -1107,7 +1151,8 @@ char * wxFindAccelerator (const char *s) */ - wxBuffer[0] = '\0'; + static char buf[256]; + buf[0] = '\0'; char *tmp = copystring (s); s = tmp; char *p = tmp; @@ -1119,23 +1164,23 @@ char * wxFindAccelerator (const char *s) if (*p) { *p = '\0'; - if (wxBuffer[0]) - strcat (wxBuffer, " "); + if (buf[0]) + strcat (buf, " "); if (strcmp (s, "Alt")) - strcat (wxBuffer, s); + strcat (buf, s); else - strcat (wxBuffer, "Meta"); + strcat (buf, "Meta"); s = p++; } else { - strcat (wxBuffer, ""); - strcat (wxBuffer, s); + strcat (buf, ""); + strcat (buf, s); break; } } delete[]tmp; - return wxBuffer; + return buf; #endif } @@ -1199,3 +1244,11 @@ void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, boo #endif // __WXMOTIF__ + +bool wxWindowIsVisible(Window win) +{ + XWindowAttributes wa; + XGetWindowAttributes(wxGlobalDisplay(), win, &wa); + + return (wa.map_state == IsViewable); +}