]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/x11/private.h
Applied rowspan patch #15276 (dghart)
[wxWidgets.git] / include / wx / x11 / private.h
index d5514db7b98d2cf94516d401b7d8350711d8f4eb..0e8f9c6e151fe3f8841afff30d649210241af578 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        private.h
+// Name:        wx/x11/private.h
 // Purpose:     Private declarations for X11 port
 // Author:      Julian Smart
 // Modified by:
 #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
 
-class wxMouseEvent;
-class wxKeyEvent;
-class wxWindow;
+// Include common declarations
+#include "wx/x11/privx.h"
+
+#if wxUSE_PANGO
+#include <pango/pango.h>
+#endif
+
+class WXDLLIMPEXP_FWD_CORE wxMouseEvent;
+class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
+class WXDLLIMPEXP_FWD_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
 
 // ----------------------------------------------------------------------------
@@ -37,80 +53,32 @@ 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 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);
 
-// For convenience
-inline Display* wxGlobalDisplay() { return (Display*) wxGetDisplay(); }
-
-#define wxNO_COLORS   0x00
-#define wxBACK_COLORS 0x01
-#define wxFORE_COLORS 0x02
-
-extern XColor itemColors[5] ;
-
-#define wxBACK_INDEX 0
-#define wxFORE_INDEX 1
-#define wxSELE_INDEX 2
-#define wxTOPS_INDEX 3
-#define wxBOTS_INDEX 4
-
-#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
-// ----------------------------------------------------------------------------
-
-// extern "C" XtAppContext wxGetAppContext();
-
 #endif
 // _WX_PRIVATE_H_