1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Private declarations common to X11 and Motif ports
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
17 #include "wx/colour.h"
19 #if defined( __cplusplus ) && defined( __VMS )
20 #pragma message disable nosimpint
23 #include "X11/Xatom.h"
24 #include "X11/Xutil.h"
25 #if defined( __cplusplus ) && defined( __VMS )
26 #pragma message enable nosimpint
29 class WXDLLIMPEXP_FWD_CORE wxMouseEvent
;
30 class WXDLLIMPEXP_FWD_CORE wxKeyEvent
;
31 class WXDLLIMPEXP_FWD_CORE wxWindow
;
32 class WXDLLIMPEXP_FWD_CORE wxRegion
;
34 // ----------------------------------------------------------------------------
35 // key events related functions
36 // ----------------------------------------------------------------------------
38 extern int wxCharCodeXToWX(KeySym keySym
);
39 extern KeySym
wxCharCodeWXToX(int id
);
41 WXPixel
wxGetBestMatchingPixel(Display
*display
, XColor
*desiredColor
, Colormap cmap
);
42 Pixmap
XCreateInsensitivePixmap( Display
*display
, Pixmap pixmap
);
44 extern XColor g_itemColors
[];
45 extern int wxComputeColours (Display
*display
, const wxColour
* back
, const wxColour
* fore
);
48 inline Display
* wxGlobalDisplay() { return (Display
*) wxGetDisplay(); }
50 #define wxMAX_RGB 0xff
52 #define wxSIGN(x) ((x < 0) ? -x : x)
57 typedef struct wx_hsv
{
61 #define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z))
62 #define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z))
64 void wxHSVToXColor(wxHSV
*hsv
,XColor
*xcolor
);
65 void wxXColorToHSV(wxHSV
*hsv
,XColor
*xcolor
);
66 void wxAllocNearestColor(Display
*display
,Colormap colormap
,XColor
*xcolor
);
67 void wxAllocColor(Display
*display
,Colormap colormap
,XColor
*xcolor
);
70 wxString
wxGetXEventName(XEvent
& event
);
72 // Is the window visible?
73 bool wxWindowIsVisible(Window win
);
76 #define XEventGetWindow(event) event->general.wid
77 #define XEventGetType(event) event->general.type
78 #define XConfigureEventGetX(event) ((int) event->update.x)
79 #define XConfigureEventGetY(event) ((int) event->update.y)
80 #define XConfigureEventGetWidth(event) ((int) event->update.width)
81 #define XConfigureEventGetHeight(event) ((int) event->update.height)
82 #define XExposeEventGetX(event) event->exposure.x
83 #define XExposeEventGetY(event) event->exposure.y
84 #define XExposeEventGetWidth(event) event->exposure.width
85 #define XExposeEventGetHeight(event) event->exposure.height
86 #define XButtonEventGetTime(event) (wxGetLocalTime())
87 #define XButtonEventLChanged(event) (event->button.changebuttons & GR_BUTTON_L)
88 #define XButtonEventMChanged(event) (event->button.changebuttons & GR_BUTTON_M)
89 #define XButtonEventRChanged(event) (event->button.changebuttons & GR_BUTTON_R)
90 #define XButtonEventLIsDown(x) ((x)->button.buttons & GR_BUTTON_L)
91 #define XButtonEventMIsDown(x) ((x)->button.buttons & GR_BUTTON_M)
92 #define XButtonEventRIsDown(x) ((x)->button.buttons & GR_BUTTON_R)
93 #define XButtonEventShiftIsDown(x) (x->button.modifiers & MWKMOD_SHIFT)
94 #define XButtonEventCtrlIsDown(x) (x->button.modifiers & MWKMOD_CTRL)
95 #define XButtonEventAltIsDown(x) (x->button.modifiers & MWKMOD_ALT)
96 #define XButtonEventMetaIsDown(x) (x->button.modifiers & MWKMOD_META)
97 #define XButtonEventGetX(event) (event->button.x)
98 #define XButtonEventGetY(event) (event->button.y)
99 #define XKeyEventGetTime(event) (wxGetLocalTime())
100 #define XKeyEventGetX(event) (event->keystroke.x)
101 #define XKeyEventGetY(event) (event->keystroke.y)
102 #define XKeyEventShiftIsDown(x) (x->keystroke.modifiers & MWKMOD_SHIFT)
103 #define XKeyEventCtrlIsDown(x) (x->keystroke.modifiers & MWKMOD_CTRL)
104 #define XKeyEventAltIsDown(x) (x->keystroke.modifiers & MWKMOD_ALT)
105 #define XKeyEventMetaIsDown(x) (x->keystroke.modifiers & MWKMOD_META)
106 #define XFontStructGetAscent(f) f->info.baseline
110 #define XEventGetWindow(event) event->xany.window
111 #define XEventGetType(event) event->xany.type
112 #define XConfigureEventGetX(event) event->xconfigure.x
113 #define XConfigureEventGetY(event) event->xconfigure.y
114 #define XConfigureEventGetWidth(event) event->xconfigure.width
115 #define XConfigureEventGetHeight(event) event->xconfigure.height
116 #define XExposeEventGetX(event) event->xexpose.x
117 #define XExposeEventGetY(event) event->xexpose.y
118 #define XExposeEventGetWidth(event) event->xexpose.width
119 #define XExposeEventGetHeight(event) event->xexpose.height
120 #define XButtonEventGetTime(event) (event->xbutton.time)
121 #define XButtonEventLChanged(event) (event->xbutton.button == Button1)
122 #define XButtonEventMChanged(event) (event->xbutton.button == Button2)
123 #define XButtonEventRChanged(event) (event->xbutton.button == Button3)
124 #define XButtonEventLIsDown(x) ((x)->xbutton.state & Button1Mask)
125 #define XButtonEventMIsDown(x) ((x)->xbutton.state & Button2Mask)
126 #define XButtonEventRIsDown(x) ((x)->xbutton.state & Button3Mask)
127 #define XButtonEventShiftIsDown(x) (x->xbutton.state & ShiftMask)
128 #define XButtonEventCtrlIsDown(x) (x->xbutton.state & ControlMask)
129 #define XButtonEventAltIsDown(x) (x->xbutton.state & Mod3Mask)
130 #define XButtonEventMetaIsDown(x) (x->xbutton.state & Mod1Mask)
131 #define XButtonEventGetX(event) (event->xbutton.x)
132 #define XButtonEventGetY(event) (event->xbutton.y)
133 #define XKeyEventGetTime(event) (event->xkey.time)
134 #define XKeyEventShiftIsDown(x) (x->xkey.state & ShiftMask)
135 #define XKeyEventCtrlIsDown(x) (x->xkey.state & ControlMask)
136 #define XKeyEventAltIsDown(x) (x->xkey.state & Mod3Mask)
137 #define XKeyEventMetaIsDown(x) (x->xkey.state & Mod1Mask)
138 #define XKeyEventGetX(event) (event->xkey.x)
139 #define XKeyEventGetY(event) (event->xkey.y)
140 #define XFontStructGetAscent(f) f->ascent
143 // ----------------------------------------------------------------------------
145 // ----------------------------------------------------------------------------
147 bool wxDoSetShape( Display
* xdisplay
, Window xwindow
, const wxRegion
& region
);
149 class WXDLLIMPEXP_CORE wxXVisualInfo
154 void Init( Display
* dpy
, XVisualInfo
* visualInfo
);
156 int m_visualType
; // TrueColor, DirectColor etc.
158 int m_visualColormapSize
;
159 void *m_visualColormap
;
161 unsigned long m_visualRedMask
;
162 unsigned long m_visualGreenMask
;
163 unsigned long m_visualBlueMask
;
164 int m_visualRedShift
;
165 int m_visualGreenShift
;
166 int m_visualBlueShift
;
168 int m_visualGreenPrec
;
169 int m_visualBluePrec
;
171 unsigned char *m_colorCube
;
174 bool wxFillXVisualInfo( wxXVisualInfo
* vi
, Display
* dpy
);
176 #endif // _WX_PRIVX_H_