Update copyright statements and change license to LGPL
[alexxy/gromacs.git] / src / ngmx / Xstuff.h
1 /*
2  * This file is part of the GROMACS molecular simulation package.
3  *
4  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
5  * Copyright (c) 2001-2004, The GROMACS development team,
6  * check out http://www.gromacs.org for more information.
7  * Copyright (c) 2012, by the GROMACS development team, led by
8  * David van der Spoel, Berk Hess, Erik Lindahl, and including many
9  * others, as listed in the AUTHORS file in the top-level source
10  * directory and at http://www.gromacs.org.
11  *
12  * GROMACS is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU Lesser General Public License
14  * as published by the Free Software Foundation; either version 2.1
15  * of the License, or (at your option) any later version.
16  *
17  * GROMACS is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20  * Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with GROMACS; if not, see
24  * http://www.gnu.org/licenses, or write to the Free Software Foundation,
25  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
26  *
27  * If you want to redistribute modifications to GROMACS, please
28  * consider that scientific software is very special. Version
29  * control is crucial - bugs must be traceable. We will be happy to
30  * consider code for inclusion in the official distribution, but
31  * derived work must not be called official GROMACS. Details are found
32  * in the README & COPYING files - if they are missing, get the
33  * official version at http://www.gromacs.org.
34  *
35  * To help us fund GROMACS development, we humbly ask that you cite
36  * the research papers on the package. Check out http://www.gromacs.org.
37  */
38
39 #ifndef _Xstuff_h
40 #define _Xstuff_h
41
42 /* The altivec extensions for ppc define some stupid overlapping
43  * macros like pixel and vector - turn them off here, we only
44  * need them in the inner loops.
45  */
46 #ifdef __VEC__
47 #undef pixel
48 #endif
49
50 #include <X11/Xlib.h>
51 #include <X11/Xutil.h>
52 #include <X11/keysym.h>
53 #include <X11/cursorfont.h>
54 #include <X11/Xresource.h>
55
56 #ifdef _acc_
57 typedef unsigned char bmchar;
58 #else
59 typedef char bmchar;
60 #endif /* _acc */
61
62 #define XTextHeight(font) ((font)->max_bounds.ascent+(font)->max_bounds.descent)
63 #define XDrawCircle(disp,win,gc,x,y,rad) \
64   XDrawArc(disp,win,gc,x-rad,y-rad,2*rad,2*rad,0,64*360)
65 #define XFillCircle(disp,win,gc,x,y,rad) \
66   XFillArc(disp,win,gc,x-rad,y-rad,2*rad,2*rad,0,64*360)
67
68 #ifdef NEED_XSTUFF
69
70 extern  void    XSelectInput(Display *display,Window w,long event_mask);
71 extern  void    XChangeWindowAttributes(Display *display,Window w,
72                                         unsigned long valuemask,
73                                         XSetWindowAttributes *attributes);
74 extern  void    XSetWindowBackgroundPixmap(Display *disp,Drawable d,Pixmap pm);
75 extern  Status  XMatchVisualInfo(Display *display,int screen,int depth,
76                                  int class,XVisualInfo *vinfo_return);
77 extern  Status  XParseColor(Display *display,Colormap colormap,char *spec,
78                             XColor *exact_def_return);
79 extern  Status  XAllocColor(Display *display,Colormap colormap,
80                             XColor *screen_in_out);
81 extern  Status  XAllocNamedColor(Display *disp, Colormap cmap, char *colorname,
82                                  XColor *colorcell_def, XColor *rgb_db_def);
83 extern  Status  XQueryColor(Display *disp, Colormap cmap, 
84                             XColor *colorcell_def);
85 extern  void    XDrawArc(Display *display,Drawable d,GC gc,int x,int y,
86                          unsigned int width,unsigned int height,int angle1,
87                          int angle2);
88 extern  void    XFillArc(Display *display,Drawable d,GC gc,int x,int y,
89                          unsigned int width,unsigned int height,int angle1,
90                          int angle2);
91 extern  void    XDrawLine(Display *display,Drawable d,GC gc,int x1,int y1,
92                           int x2,int y2);
93 extern  void    XDrawLines(Display *display,Drawable d,GC gc,XPoint *points,
94                            int npoints, int mode);
95
96 extern  void    XMapWindow(Display *display,Window w);
97 extern  void    XMapSubwindows(Display *display,Window w);
98 extern  void    XUnmapSubwindows(Display *display, Window w);
99 extern  void    XUnmapWindow(Display *display, Window w);
100
101 extern  void    XNextEvent(Display *display,XEvent *report);
102 extern  Bool    XCheckTypedEvent(Display *display,int event_type,
103                                  XEvent *event_return);
104 extern  void    XSetForeground(Display *display,GC gc,
105                                unsigned long foreground);
106 extern  void    XClearWindow(Display *disp,Window w);
107 extern  void    XClearArea(Display *display,Window w,int x,int y,
108                            unsigned int width,unsigned int height,
109                            Bool exposures);
110 extern  void    XDrawRectangle(Display *display,Drawable d,GC gc,
111                                int x, int y, int width, int height);
112 extern  void    XDrawRectangles(Display *display,Drawable d,GC gc,
113                                 XRectangle rectangles[],int nrectangles);
114 extern  void    XDrawString(Display *display,Drawable d,GC gc,int x,int y,
115                             char *string,int length);
116 extern  void    XDrawLine(Display *display,Drawable d,GC gc,
117                           int x1,int y1,int x2,int y2);
118 extern  void    XSetStandardProperties(Display *display,Window w,
119                                        char *window_name,char *icon_name,
120                                        Pixmap icon_pixmap,char **argv,int argc,
121                                        XSizeHints *hints);
122 extern  int     XLookupString(XKeyEvent *event_struct,char *buffer_return,
123                               int bytes_buffer,KeySym *keysym_return,
124                               XComposeStatus *status_in_out);
125 extern  void    XSetGraphicsExposures(Display *display,GC gc,
126                                       Bool graphics_exposures);
127 extern  void    XMapRaised(Display *display,Window w);
128 extern  void    XSync(Display *display,Bool discard);
129 extern  void    XFlush(Display *display);
130 extern  void    XSetStandardProperties(Display *display,Window w,
131                                        char *window_name,char *icon_name,
132                                        Pixmap icon_pixmap,char **argv,int argc,
133                                        XSizeHints *hints);
134 extern  Status  XSendEvent(Display *display,Window w,Bool propagate,
135                            long event_mask,XEvent *event_send);
136 extern  void    XFreeGC(Display *display,GC gc);
137 extern  void    XCloseDisplay(Display *display);
138
139 extern  void    XNextEvent(Display *display,XEvent *report);
140 extern  Bool    XCheckTypedEvent(Display *display,int event_type,
141                                  XEvent *event_return);
142 extern  void    XSetForeground(Display *display,GC gc,
143                                unsigned long foreground);
144 extern  Bool    XCheckMaskEvent(Display *display,long event_mask,
145                                 XEvent *event_return);
146
147 extern  int     XResizeWindow(Display *display, Window w, 
148                               unsigned int width, unsigned int height);
149 extern  int     XMoveWindow(Display *display, Window w, 
150                             unsigned int x, unsigned int y);
151 extern  void    XFreePixmap(Display *display,Pixmap pixmap);
152 extern  void    XCopyGC(Display *display, GC src, long valuemask,
153                         GC dest);
154 extern  int     XTextWidth(XFontStruct *font_struct, char *string, int count);
155 extern  void    XSetDashes(Display *display, GC gc, int dash_offset,
156                            unsigned char dash_list[], int n);
157 extern  void    XBell(Display *disp,int volume);
158 extern  void    XDrawRectangle(Display *disp,Drawable d, GC gc,
159                                int x,int y, int w,int h);
160 extern  void    XFillRectangle(Display *disp,Drawable d, GC gc,
161                                int x,int y, int w,int h);
162
163 extern  void    XDestroySubwindows(Display *disp, Window Win);
164 extern  void    XDestroyWindow(Display *disp, Window Win);
165 extern  void    XQueryPointer(Display *disp,Window Win,Window *root, 
166                               Window *child,int *root_x,int *root_y,
167                               int *win_x,int *win_y, unsigned int *keybut);
168 extern  void    XWarpPointer(Display *disp, Window src, Window dest,
169                              int src_x, int src_y, unsigned int src_w, unsigned int src_h,
170                              int dest_x, int dest_y);
171 extern  void    XGetGeometry(Display *disp, Window w,Window *root, 
172                              int *x, int *y, unsigned int *width, unsigned int *height,
173                              unsigned int *border_width, unsigned int *depth);
174 #endif /* NEED_XSTUFF */
175
176 #endif  /* _Xstuff_h */