]> git.saurik.com Git - wxWidgets.git/blame - include/wx/x11/privx.h
Explicitly send events for modifier keys in wxUIActionSimulator.
[wxWidgets.git] / include / wx / x11 / privx.h
CommitLineData
5e29f97a
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: privx.h
3// Purpose: Private declarations common to X11 and Motif ports
4// Author: Julian Smart
5// Modified by:
6// Created: 17/09/98
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
65571936 9// Licence: wxWindows licence
5e29f97a
JS
10/////////////////////////////////////////////////////////////////////////////
11
61aa560b
JS
12#ifndef _WX_PRIVX_H_
13#define _WX_PRIVX_H_
5e29f97a
JS
14
15#include "wx/defs.h"
16#include "wx/utils.h"
2b5f62a0
VZ
17#include "wx/colour.h"
18
d171743e
JJ
19#if defined( __cplusplus ) && defined( __VMS )
20#pragma message disable nosimpint
21#endif
5e29f97a
JS
22#include "X11/Xlib.h"
23#include "X11/Xatom.h"
24#include "X11/Xutil.h"
d171743e
JJ
25#if defined( __cplusplus ) && defined( __VMS )
26#pragma message enable nosimpint
27#endif
5e29f97a 28
b5dbe15d
VS
29class WXDLLIMPEXP_FWD_CORE wxMouseEvent;
30class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
31class WXDLLIMPEXP_FWD_CORE wxWindow;
32class WXDLLIMPEXP_FWD_CORE wxRegion;
5e29f97a
JS
33
34// ----------------------------------------------------------------------------
35// key events related functions
36// ----------------------------------------------------------------------------
37
3e0071d9 38WXPixel wxGetBestMatchingPixel(Display *display, XColor *desiredColor, Colormap cmap);
5e29f97a
JS
39Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap );
40
41extern XColor g_itemColors[];
f516d986 42extern int wxComputeColours (Display *display, const wxColour * back, const wxColour * fore);
5e29f97a
JS
43
44// For convenience
45inline Display* wxGlobalDisplay() { return (Display*) wxGetDisplay(); }
46
5e29f97a
JS
47#define wxMAX_RGB 0xff
48#define wxMAX_SV 1000
49#define wxSIGN(x) ((x < 0) ? -x : x)
50#define wxH_WEIGHT 4
51#define wxS_WEIGHT 1
52#define wxV_WEIGHT 2
53
54typedef struct wx_hsv {
55 int h,s,v;
56 } wxHSV;
57
58#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z))
59#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z))
60
61void wxHSVToXColor(wxHSV *hsv,XColor *xcolor);
62void wxXColorToHSV(wxHSV *hsv,XColor *xcolor);
63void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor);
64void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor);
65
45ff6421 66// For debugging
45ff6421 67wxString wxGetXEventName(XEvent& event);
45ff6421 68
3a0b23eb
JS
69// Is the window visible?
70bool wxWindowIsVisible(Window win);
71
c79a329d
JS
72#if wxUSE_NANOX
73#define XEventGetWindow(event) event->general.wid
461e93f9 74#define XEventGetType(event) event->general.type
c2c0dabf
RR
75#define XConfigureEventGetX(event) ((int) event->update.x)
76#define XConfigureEventGetY(event) ((int) event->update.y)
c79a329d
JS
77#define XConfigureEventGetWidth(event) ((int) event->update.width)
78#define XConfigureEventGetHeight(event) ((int) event->update.height)
79#define XExposeEventGetX(event) event->exposure.x
80#define XExposeEventGetY(event) event->exposure.y
81#define XExposeEventGetWidth(event) event->exposure.width
82#define XExposeEventGetHeight(event) event->exposure.height
461e93f9
JS
83#define XButtonEventGetTime(event) (wxGetLocalTime())
84#define XButtonEventLChanged(event) (event->button.changebuttons & GR_BUTTON_L)
85#define XButtonEventMChanged(event) (event->button.changebuttons & GR_BUTTON_M)
86#define XButtonEventRChanged(event) (event->button.changebuttons & GR_BUTTON_R)
87#define XButtonEventLIsDown(x) ((x)->button.buttons & GR_BUTTON_L)
88#define XButtonEventMIsDown(x) ((x)->button.buttons & GR_BUTTON_M)
89#define XButtonEventRIsDown(x) ((x)->button.buttons & GR_BUTTON_R)
90#define XButtonEventShiftIsDown(x) (x->button.modifiers & MWKMOD_SHIFT)
91#define XButtonEventCtrlIsDown(x) (x->button.modifiers & MWKMOD_CTRL)
92#define XButtonEventAltIsDown(x) (x->button.modifiers & MWKMOD_ALT)
93#define XButtonEventMetaIsDown(x) (x->button.modifiers & MWKMOD_META)
94#define XButtonEventGetX(event) (event->button.x)
95#define XButtonEventGetY(event) (event->button.y)
96#define XKeyEventGetTime(event) (wxGetLocalTime())
97#define XKeyEventGetX(event) (event->keystroke.x)
98#define XKeyEventGetY(event) (event->keystroke.y)
99#define XKeyEventShiftIsDown(x) (x->keystroke.modifiers & MWKMOD_SHIFT)
100#define XKeyEventCtrlIsDown(x) (x->keystroke.modifiers & MWKMOD_CTRL)
101#define XKeyEventAltIsDown(x) (x->keystroke.modifiers & MWKMOD_ALT)
102#define XKeyEventMetaIsDown(x) (x->keystroke.modifiers & MWKMOD_META)
788519c6 103#define XFontStructGetAscent(f) f->info.baseline
461e93f9 104
c79a329d 105#else
461e93f9 106
c79a329d 107#define XEventGetWindow(event) event->xany.window
461e93f9 108#define XEventGetType(event) event->xany.type
c2c0dabf
RR
109#define XConfigureEventGetX(event) event->xconfigure.x
110#define XConfigureEventGetY(event) event->xconfigure.y
c79a329d
JS
111#define XConfigureEventGetWidth(event) event->xconfigure.width
112#define XConfigureEventGetHeight(event) event->xconfigure.height
113#define XExposeEventGetX(event) event->xexpose.x
114#define XExposeEventGetY(event) event->xexpose.y
115#define XExposeEventGetWidth(event) event->xexpose.width
116#define XExposeEventGetHeight(event) event->xexpose.height
461e93f9
JS
117#define XButtonEventGetTime(event) (event->xbutton.time)
118#define XButtonEventLChanged(event) (event->xbutton.button == Button1)
119#define XButtonEventMChanged(event) (event->xbutton.button == Button2)
120#define XButtonEventRChanged(event) (event->xbutton.button == Button3)
121#define XButtonEventLIsDown(x) ((x)->xbutton.state & Button1Mask)
122#define XButtonEventMIsDown(x) ((x)->xbutton.state & Button2Mask)
123#define XButtonEventRIsDown(x) ((x)->xbutton.state & Button3Mask)
124#define XButtonEventShiftIsDown(x) (x->xbutton.state & ShiftMask)
125#define XButtonEventCtrlIsDown(x) (x->xbutton.state & ControlMask)
126#define XButtonEventAltIsDown(x) (x->xbutton.state & Mod3Mask)
127#define XButtonEventMetaIsDown(x) (x->xbutton.state & Mod1Mask)
128#define XButtonEventGetX(event) (event->xbutton.x)
129#define XButtonEventGetY(event) (event->xbutton.y)
130#define XKeyEventGetTime(event) (event->xkey.time)
131#define XKeyEventShiftIsDown(x) (x->xkey.state & ShiftMask)
132#define XKeyEventCtrlIsDown(x) (x->xkey.state & ControlMask)
133#define XKeyEventAltIsDown(x) (x->xkey.state & Mod3Mask)
134#define XKeyEventMetaIsDown(x) (x->xkey.state & Mod1Mask)
135#define XKeyEventGetX(event) (event->xkey.x)
136#define XKeyEventGetY(event) (event->xkey.y)
788519c6 137#define XFontStructGetAscent(f) f->ascent
c79a329d
JS
138#endif
139
f7f78039
MB
140// ----------------------------------------------------------------------------
141// Misc functions
142// ----------------------------------------------------------------------------
143
144bool wxDoSetShape( Display* xdisplay, Window xwindow, const wxRegion& region );
145
53a2db12 146class WXDLLIMPEXP_CORE wxXVisualInfo
9ce8d6a2
MB
147{
148public:
149 wxXVisualInfo();
150 ~wxXVisualInfo();
151 void Init( Display* dpy, XVisualInfo* visualInfo );
152
153 int m_visualType; // TrueColor, DirectColor etc.
154 int m_visualDepth;
155 int m_visualColormapSize;
156 void *m_visualColormap;
157 int m_visualScreen;
158 unsigned long m_visualRedMask;
159 unsigned long m_visualGreenMask;
160 unsigned long m_visualBlueMask;
161 int m_visualRedShift;
162 int m_visualGreenShift;
163 int m_visualBlueShift;
164 int m_visualRedPrec;
165 int m_visualGreenPrec;
166 int m_visualBluePrec;
03647350 167
9ce8d6a2
MB
168 unsigned char *m_colorCube;
169};
170
171bool wxFillXVisualInfo( wxXVisualInfo* vi, Display* dpy );
172
173#endif // _WX_PRIVX_H_