X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7266b6723573ce6317577226cb1e5d32826e24e8..8d1547ef4697a49cf4f4b8f09f662705e064c416:/include/wx/x11/private.h diff --git a/include/wx/x11/private.h b/include/wx/x11/private.h index 181790ea55..08406a39bf 100644 --- a/include/wx/x11/private.h +++ b/include/wx/x11/private.h @@ -13,21 +13,39 @@ #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; +#if wxUSE_UNICODE +#include "pango/pango.h" +#endif + +class WXDLLIMPEXP_CORE wxMouseEvent; +class WXDLLIMPEXP_CORE wxKeyEvent; +class WXDLLIMPEXP_CORE wxWindow; // ---------------------------------------------------------------------------- -// common callbacks +// Some Unicode <-> UTF8 macros stolen from GTK // ---------------------------------------------------------------------------- -#if 0 -// All widgets should have this as their resize proc. -extern void wxWidgetResizeProc(Widget w, XConfigureEvent *event, String args[], int *num_args); - -// For repainting arbitrary windows -void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data), XEvent *event, char *); +#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 // ---------------------------------------------------------------------------- @@ -35,73 +53,36 @@ void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data), XEvent *event, // 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); -// ---------------------------------------------------------------------------- -// key events related functions -// ---------------------------------------------------------------------------- - -extern char wxFindMnemonic(const char* s); - -extern char * wxFindAccelerator (const char *s); -//extern XmString wxFindAcceleratorText (const char *s); - -extern int wxCharCodeXToWX(KeySym keySym); -extern KeySym wxCharCodeWXToX(int id); +extern void wxDeleteClientWindowFromTable(Window w); +extern wxWindow *wxGetClientWindowFromTable(Window w); +extern bool wxAddClientWindowToTable(Window w, wxWindow *win); // ---------------------------------------------------------------------------- -// TranslateXXXEvent() functions - translate Motif event to wxWindow one +// 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); - -int wxGetBestMatchingPixel(Display *display, XColor *desiredColor, Colormap cmap); -Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap ); - -extern XColor g_itemColors[]; -extern int wxComputeColours (Display *display, wxColour * back, wxColour * fore); - -extern void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour); -extern void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE); - -#define wxNO_COLORS 0x00 -#define wxBACK_COLORS 0x01 -#define wxFORE_COLORS 0x02 - -extern XColor itemColors[5] ; +extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window window, XEvent *xevent, bool isAscii = FALSE); -#define wxBACK_INDEX 0 -#define wxFORE_INDEX 1 -#define wxSELE_INDEX 2 -#define wxTOPS_INDEX 3 -#define wxBOTS_INDEX 4 +extern Window wxGetWindowParent(Window window); -#define wxMAX_RGB 0xff -#define wxMAX_SV 1000 -#define wxSIGN(x) ((x < 0) ? -x : x) -#define wxH_WEIGHT 4 -#define wxS_WEIGHT 1 -#define wxV_WEIGHT 2 - -typedef struct wx_hsv { - int h,s,v; - } wxHSV; - -#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z)) -#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z)) - -void wxHSVToXColor(wxHSV *hsv,XColor *xcolor); -void wxXColorToHSV(wxHSV *hsv,XColor *xcolor); -void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor); -void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor); - -// ---------------------------------------------------------------------------- -// accessors for C modules -// ---------------------------------------------------------------------------- +// Set the window manager decorations according to the +// given wxWidgets style +bool wxSetWMDecorations(Window w, long style); +bool wxMWMIsRunning(Window w); -// extern "C" XtAppContext wxGetAppContext(); +// Checks if any of our children are finished. +// implemented in src/x11/utils.cpp +void wxCheckForFinishedChildren(); #endif // _WX_PRIVATE_H_