X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83df96d63a52ebb08b9e32549dc255354b4a18d0..6a44bffd1ac68163e4c1cfe8aa8fe4f7f98a02e7:/include/wx/x11/private.h?ds=sidebyside diff --git a/include/wx/x11/private.h b/include/wx/x11/private.h index 0a9bfe6823..d5514db7b9 100644 --- a/include/wx/x11/private.h +++ b/include/wx/x11/private.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: private.h -// Purpose: Private declarations for wxMotif port +// Purpose: Private declarations for X11 port // Author: Julian Smart // Modified by: // Created: 17/09/98 @@ -13,31 +13,33 @@ #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 @@ -46,7 +48,7 @@ extern bool wxAddWindowToTable(Widget w, wxWindow *win); 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); @@ -54,8 +56,8 @@ 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 ); @@ -63,8 +65,15 @@ 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 @@ -78,43 +87,30 @@ extern XColor itemColors[5] ; #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_