/////////////////////////////////////////////////////////////////////////////
// Name: private.h
-// Purpose: Private declarations for wxMotif port
+// Purpose: Private declarations for X11 port
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
#define _WX_PRIVATE_H_
#include "wx/defs.h"
+#include "wx/utils.h"
+#include "X11/Xlib.h"
class wxMouseEvent;
class wxKeyEvent;
-
-// Put any private declarations here: native Motif types may be used because
-// this header is included after Xm/Xm.h
+class wxWindow;
// ----------------------------------------------------------------------------
// common callbacks
// ----------------------------------------------------------------------------
+#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 *);
+#endif
// ----------------------------------------------------------------------------
// we maintain a hash table which contains the mapping from Widget to wxWindow
// corresponding to the window for this widget
// ----------------------------------------------------------------------------
-extern void wxDeleteWindowFromTable(Widget w);
-extern wxWindow *wxGetWindowFromTable(Widget w);
-extern bool wxAddWindowToTable(Widget w, wxWindow *win);
+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 XmString wxFindAcceleratorText (const char *s);
extern int wxCharCodeXToWX(KeySym keySym);
extern KeySym wxCharCodeWXToX(int id);
// ----------------------------------------------------------------------------
// TranslateXXXEvent() functions - translate Motif event to wxWindow one
// ----------------------------------------------------------------------------
-extern bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent);
-extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent);
+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);
+extern Window wxGetWindowParent(Window window);
+
+// Set the window manager decorations according to the
+// given wxWindows 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 wxTOPS_INDEX 3
#define wxBOTS_INDEX 4
-// ----------------------------------------------------------------------------
-// utility classes
-// ----------------------------------------------------------------------------
+#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
-// XmString made easy to use in wxWindows (and has an added benefit of
-// cleaning up automatically)
-class wxXmString
-{
-public:
- wxXmString(const wxString& str)
- {
- m_string = XmStringCreateLtoR((char *)str.c_str(),
- XmSTRING_DEFAULT_CHARSET);
- }
-
- ~wxXmString() { XmStringFree(m_string); }
-
- // semi-implicit conversion to XmString (shouldn't rely on implicit
- // conversion because many of Motif functions are macros)
- XmString operator()() const { return m_string; }
-
-private:
- XmString m_string;
-};
+typedef struct wx_hsv {
+ int h,s,v;
+ } wxHSV;
-// ----------------------------------------------------------------------------
-// macros to avoid casting WXFOO to Foo all the time
-// ----------------------------------------------------------------------------
+#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))
-// argument is of type "wxWindow *"
-#define GetWidget(w) ((Widget)(w)->GetHandle())
+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();
+// extern "C" XtAppContext wxGetAppContext();
#endif
// _WX_PRIVATE_H_