X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/61aa560b2d217d4ae0a6d5c35c22317a3f65fe5d..51623cc53f350935337e57930eaaf1afe9a48c3b:/include/wx/x11/private.h?ds=sidebyside diff --git a/include/wx/x11/private.h b/include/wx/x11/private.h index ed33270f6c..0e8f9c6e15 100644 --- a/include/wx/x11/private.h +++ b/include/wx/x11/private.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: private.h +// Name: wx/x11/private.h // Purpose: Private declarations for X11 port // Author: Julian Smart // Modified by: @@ -13,37 +13,70 @@ #define _WX_PRIVATE_H_ #include "wx/defs.h" +#include "wx/hashmap.h" #include "wx/utils.h" +#if defined( __cplusplus ) && defined( __VMS ) +#pragma message disable nosimpint +#endif #include "X11/Xlib.h" #include "X11/Xatom.h" #include "X11/Xutil.h" +#if defined( __cplusplus ) && defined( __VMS ) +#pragma message enable nosimpint +#endif // Include common declarations #include "wx/x11/privx.h" -class wxMouseEvent; -class wxKeyEvent; -class wxWindow; +#if wxUSE_PANGO +#include +#endif + +class WXDLLIMPEXP_FWD_CORE wxMouseEvent; +class WXDLLIMPEXP_FWD_CORE wxKeyEvent; +class WXDLLIMPEXP_FWD_CORE wxWindow; + +// ---------------------------------------------------------------------------- +// Some Unicode <-> UTF8 macros stolen from GTK +// ---------------------------------------------------------------------------- + +#if wxUSE_UNICODE + #define wxGTK_CONV(s) wxConvUTF8.cWX2MB(s) + #define wxGTK_CONV_BACK(s) wxConvUTF8.cMB2WX(s) +#else + #define wxGTK_CONV(s) s.c_str() + #define wxGTK_CONV_BACK(s) s +#endif // ---------------------------------------------------------------------------- // we maintain a hash table which contains the mapping from Widget to wxWindow // corresponding to the window for this widget // ---------------------------------------------------------------------------- +WX_DECLARE_HASH_MAP(Window, wxWindow *, wxIntegerHash, wxIntegerEqual, wxWindowHash); + +// these hashes are defined in app.cpp +extern wxWindowHash *wxWidgetHashTable; +extern wxWindowHash *wxClientWidgetHashTable; + extern void wxDeleteWindowFromTable(Window w); extern wxWindow *wxGetWindowFromTable(Window w); extern bool wxAddWindowToTable(Window w, wxWindow *win); +extern void wxDeleteClientWindowFromTable(Window w); +extern wxWindow *wxGetClientWindowFromTable(Window w); +extern bool wxAddClientWindowToTable(Window w, wxWindow *win); + // ---------------------------------------------------------------------------- // TranslateXXXEvent() functions - translate X event to wxWindow one // ---------------------------------------------------------------------------- extern bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window, XEvent *xevent); -extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window window, XEvent *xevent); +extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window window, XEvent *xevent, bool isAscii = FALSE); extern Window wxGetWindowParent(Window window); // Set the window manager decorations according to the -// given wxWindows style +// given wxWidgets style bool wxSetWMDecorations(Window w, long style); bool wxMWMIsRunning(Window w);