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 
  34 // ---------------------------------------------------------------------------- 
  35 // key events related functions 
  36 // ---------------------------------------------------------------------------- 
  38 extern int wxCharCodeXToWX(KeySym keySym
); 
  39 extern KeySym 
wxCharCodeWXToX(int id
); 
  41 int 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
, wxColour 
* back
, 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
); 
  71 wxString 
wxGetXEventName(XEvent
& event
); 
  74 // Is the window visible? 
  75 bool wxWindowIsVisible(Window win
); 
  78 #define XEventGetWindow(event) event->general.wid 
  79 #define XEventGetType(event) event->general.type 
  80 #define XConfigureEventGetX(event) ((int) event->update.x) 
  81 #define XConfigureEventGetY(event) ((int) event->update.y) 
  82 #define XConfigureEventGetWidth(event) ((int) event->update.width) 
  83 #define XConfigureEventGetHeight(event) ((int) event->update.height) 
  84 #define XExposeEventGetX(event) event->exposure.x 
  85 #define XExposeEventGetY(event) event->exposure.y 
  86 #define XExposeEventGetWidth(event) event->exposure.width 
  87 #define XExposeEventGetHeight(event) event->exposure.height 
  88 #define XButtonEventGetTime(event) (wxGetLocalTime()) 
  89 #define XButtonEventLChanged(event) (event->button.changebuttons & GR_BUTTON_L) 
  90 #define XButtonEventMChanged(event) (event->button.changebuttons & GR_BUTTON_M) 
  91 #define XButtonEventRChanged(event) (event->button.changebuttons & GR_BUTTON_R) 
  92 #define XButtonEventLIsDown(x) ((x)->button.buttons & GR_BUTTON_L) 
  93 #define XButtonEventMIsDown(x) ((x)->button.buttons & GR_BUTTON_M) 
  94 #define XButtonEventRIsDown(x) ((x)->button.buttons & GR_BUTTON_R) 
  95 #define XButtonEventShiftIsDown(x) (x->button.modifiers & MWKMOD_SHIFT) 
  96 #define XButtonEventCtrlIsDown(x) (x->button.modifiers & MWKMOD_CTRL) 
  97 #define XButtonEventAltIsDown(x) (x->button.modifiers & MWKMOD_ALT) 
  98 #define XButtonEventMetaIsDown(x) (x->button.modifiers & MWKMOD_META) 
  99 #define XButtonEventGetX(event) (event->button.x) 
 100 #define XButtonEventGetY(event) (event->button.y) 
 101 #define XKeyEventGetTime(event) (wxGetLocalTime()) 
 102 #define XKeyEventGetX(event) (event->keystroke.x) 
 103 #define XKeyEventGetY(event) (event->keystroke.y) 
 104 #define XKeyEventShiftIsDown(x) (x->keystroke.modifiers & MWKMOD_SHIFT) 
 105 #define XKeyEventCtrlIsDown(x) (x->keystroke.modifiers & MWKMOD_CTRL) 
 106 #define XKeyEventAltIsDown(x) (x->keystroke.modifiers & MWKMOD_ALT) 
 107 #define XKeyEventMetaIsDown(x) (x->keystroke.modifiers & MWKMOD_META) 
 108 #define XFontStructGetAscent(f) f->info.baseline 
 112 #define XEventGetWindow(event) event->xany.window 
 113 #define XEventGetType(event) event->xany.type 
 114 #define XConfigureEventGetX(event) event->xconfigure.x 
 115 #define XConfigureEventGetY(event) event->xconfigure.y 
 116 #define XConfigureEventGetWidth(event) event->xconfigure.width 
 117 #define XConfigureEventGetHeight(event) event->xconfigure.height 
 118 #define XExposeEventGetX(event) event->xexpose.x 
 119 #define XExposeEventGetY(event) event->xexpose.y 
 120 #define XExposeEventGetWidth(event) event->xexpose.width 
 121 #define XExposeEventGetHeight(event) event->xexpose.height 
 122 #define XButtonEventGetTime(event) (event->xbutton.time) 
 123 #define XButtonEventLChanged(event) (event->xbutton.button == Button1) 
 124 #define XButtonEventMChanged(event) (event->xbutton.button == Button2) 
 125 #define XButtonEventRChanged(event) (event->xbutton.button == Button3) 
 126 #define XButtonEventLIsDown(x) ((x)->xbutton.state & Button1Mask) 
 127 #define XButtonEventMIsDown(x) ((x)->xbutton.state & Button2Mask) 
 128 #define XButtonEventRIsDown(x) ((x)->xbutton.state & Button3Mask) 
 129 #define XButtonEventShiftIsDown(x) (x->xbutton.state & ShiftMask) 
 130 #define XButtonEventCtrlIsDown(x) (x->xbutton.state & ControlMask) 
 131 #define XButtonEventAltIsDown(x) (x->xbutton.state & Mod3Mask) 
 132 #define XButtonEventMetaIsDown(x) (x->xbutton.state & Mod1Mask) 
 133 #define XButtonEventGetX(event) (event->xbutton.x) 
 134 #define XButtonEventGetY(event) (event->xbutton.y) 
 135 #define XKeyEventGetTime(event) (event->xkey.time) 
 136 #define XKeyEventShiftIsDown(x) (x->xkey.state & ShiftMask) 
 137 #define XKeyEventCtrlIsDown(x) (x->xkey.state & ControlMask) 
 138 #define XKeyEventAltIsDown(x) (x->xkey.state & Mod3Mask) 
 139 #define XKeyEventMetaIsDown(x) (x->xkey.state & Mod1Mask) 
 140 #define XKeyEventGetX(event) (event->xkey.x) 
 141 #define XKeyEventGetY(event) (event->xkey.y) 
 142 #define XFontStructGetAscent(f) f->ascent 
 145 // ---------------------------------------------------------------------------- 
 147 // ---------------------------------------------------------------------------- 
 149 bool wxDoSetShape( Display
* xdisplay
, Window xwindow
, const wxRegion
& region 
); 
 151 class WXDLLEXPORT wxXVisualInfo
 
 156     void Init( Display
* dpy
, XVisualInfo
* visualInfo 
); 
 158     int                   m_visualType
;   // TrueColor, DirectColor etc. 
 160     int                   m_visualColormapSize
; 
 161     void                 *m_visualColormap
; 
 163     unsigned long         m_visualRedMask
; 
 164     unsigned long         m_visualGreenMask
; 
 165     unsigned long         m_visualBlueMask
; 
 166     int                   m_visualRedShift
; 
 167     int                   m_visualGreenShift
; 
 168     int                   m_visualBlueShift
; 
 170     int                   m_visualGreenPrec
; 
 171     int                   m_visualBluePrec
; 
 173     unsigned char        *m_colorCube
; 
 176 bool wxFillXVisualInfo( wxXVisualInfo
* vi
, Display
* dpy 
); 
 178 #endif // _WX_PRIVX_H_