X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/34636400a0018eba4a1f63dda18cf32e944b959e..98c919483746ad0836f8f70a7d12f8e2d1e7d52b:/include/wx/motif/private.h diff --git a/include/wx/motif/private.h b/include/wx/motif/private.h index f8dbeba90d..9f0c237bf3 100644 --- a/include/wx/motif/private.h +++ b/include/wx/motif/private.h @@ -13,6 +13,7 @@ #define _WX_PRIVATE_H_ #include "wx/defs.h" +#include "X11/Xlib.h" class wxMouseEvent; class wxKeyEvent; @@ -39,9 +40,15 @@ extern void wxDeleteWindowFromTable(Widget w); extern wxWindow *wxGetWindowFromTable(Widget w); extern bool wxAddWindowToTable(Widget w, wxWindow *win); +// ---------------------------------------------------------------------------- +// key events related functions +// ---------------------------------------------------------------------------- + extern char wxFindMnemonic(const char* s); -extern char * wxFindAccelerator (char *s); -extern XmString wxFindAcceleratorText (char *s); + +extern char * wxFindAccelerator (const char *s); +extern XmString wxFindAcceleratorText (const char *s); + extern int wxCharCodeXToWX(KeySym keySym); extern KeySym wxCharCodeWXToX(int id); @@ -72,5 +79,62 @@ extern XColor itemColors[5] ; #define wxTOPS_INDEX 3 #define wxBOTS_INDEX 4 +// ---------------------------------------------------------------------------- +// utility classes +// ---------------------------------------------------------------------------- + +// 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; +}; + +// ---------------------------------------------------------------------------- +// macros to avoid casting WXFOO to Foo all the time +// ---------------------------------------------------------------------------- + +// argument is of type "wxWindow *" +#define GetWidget(w) ((Widget)(w)->GetHandle()) + +// ---------------------------------------------------------------------------- +// accessors for C modules +// ---------------------------------------------------------------------------- + +extern "C" XtAppContext wxGetAppContext(); + +#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); + #endif - // _WX_PRIVATE_H_ +// _WX_PRIVATE_H_