📄 basex11.h
字号:
/* $Id: basex11.h,v 1.2 2004/08/18 20:45:50 chan Exp $ *//* (C) 2001 by Argonne National Laboratory. See COPYRIGHT in top-level directory.*//* This file contains a basic X11 data structure that may be used within other structures for basic graphics operations. */#if !defined(_BASEX11)#define _BASEX11/* AIX assumes that sys/types is included before Xutil is (when it defines function prototypes) */#include <sys/types.h>#include <X11/Xlib.h>#include <X11/Xutil.h>typedef unsigned long PixVal;/* Our rule on GC is that the current pixel value is remembered so that we don't contsantly call a routine to change it when it is already the value that we want. */typedef struct { GC set; PixVal cur_pix; } GCCache; /* Many routines need the display, window, and a GC; occasionally, routines need the visual and the colormap (particularly those doing scientific imaging). For scaling information, the region of the window is also needed (note that many XBWindow structures can use the same Window) */typedef struct { Display *disp; int screen; Window win; GCCache gc; Visual *vis; /* Graphics visual */ int depth; /* Depth of visual */ int numcolors, /* Number of available colors */ maxcolors; /* Current number in use */ Colormap cmap; PixVal foreground, background; PixVal cmapping[256]; int x, y, w, h; /* Size and location of window */ /* The following permit double buffering; by making this part of the XBWindow structure, everyone can utilize double buffering without any special arrangements. If buf is not null, all routines draw to it instead, and XBFlush does a copyarea. NOT YET IMPLEMENTED */ Drawable drw; } XBWindow;/* This definition picks the drawable to use for an X operation. This should be used for all drawing routines (note that some routines need a Window, not just a drawable). */#define XBDrawable(w) ((w)->drw ? (w)->drw : (w)->win)/* There are a number of properties that we'd like to have on hand about a font; in particular, a bound on the size of a character */typedef struct { Font fnt; int font_w, font_h; int font_descent; PixVal font_pix; } XBFont;/* This is a user-defined coordinates region */typedef struct { double xmin,xmax,ymin,ymax,zmin,zmax ; } XBAppRegion;typedef struct { int x, y, xh, yh, w, h; } XBRegion;/* This is the "decoration" structure. This could later involve patterns to be used outside the frame, as well as a "background" (interior) decoration */typedef struct { XBRegion Box; int width, HasColor, is_in; PixVal Hi, Lo; } XBDecoration; #define XBSetPixVal( xbwin, pixval ) \if (xbwin->gc.cur_pix != pixval) { \ XSetForeground( xbwin->disp, xbwin->gc.set, pixval ); \ xbwin->gc.cur_pix = pixval;\ }/* Error returns */#define ERR_CAN_NOT_OPEN_DISPLAY 0x10001#define ERR_NO_DISPLAY 0x10002#define ERR_CAN_NOT_OPEN_WINDOW 0x10003#define ERR_ILLEGAL_SIZE 0x10004/* Routines */extern PixVal XBGetColor (XBWindow *, char *, int);/* xwmap */extern int XB_wait_map ( XBWindow *, void (*)( XBWindow *, int, int, int, int ) );extern void XBSync ( XBWindow * );/* xinit */extern XBWindow *XBWinCreate (void);extern void XBWinDestroy (XBWindow *);extern int XBOpenDisplay ( XBWindow *, char * );extern int XBSetVisual ( XBWindow *, int, Colormap, int );extern int XBSetGC ( XBWindow *, PixVal );extern int XBOpenWindow ( XBWindow * );extern int XBDisplayWindow ( XBWindow *, char *, int, int, int, int, PixVal );extern void XBGetArgs ( int *, char **, int, int *, int *, int *, int * );extern void XBGetArgsDisplay ( int *, char **, int, int, char * );extern int XBiQuickWindow ( XBWindow *, char *, char *, int, int, int, int, int );extern int XBQuickWindow (XBWindow *, char *, char *, int,int,int,int);extern int XBQuickWindowFromWindow ( XBWindow *, char *, Window );extern void XBFlush ( XBWindow * );extern void XBSetWindowLabel ( XBWindow *, char * );extern void XBCaptureWindowToFile ( XBWindow *, char * );/* xframe */extern int XBFrameColors ( XBWindow *, XBDecoration *, char *, char * );extern int XBDrawFrame ( XBWindow *, XBDecoration * );extern void XBClearWindow ( XBWindow *, int, int, int, int );extern void XBFrameColorsByName ( XBWindow *, char *, char * );/* xcolor */extern void XBInitColors ( XBWindow *, Colormap, int );extern int XBInitCmap ( XBWindow * );extern int XBCmap ( unsigned char [], unsigned char [], unsigned char [], int, XBWindow * );extern int XBSetVisualClass ( XBWindow * );extern int XBGetVisualClass ( XBWindow * );extern Colormap XBCreateColormap ( Display *, int, Visual * );extern int XBSetColormap ( XBWindow * );extern int XBAllocBW ( XBWindow *, PixVal *, PixVal * );extern int XBGetBaseColor ( XBWindow *, PixVal *, PixVal * );extern int XBSetGamma ( double );extern int XBSetCmapHue ( unsigned char *, unsigned char *, unsigned char *, int );extern int XBFindColor ( XBWindow *, char *, PixVal * );extern int XBAddCmap ( unsigned char [], unsigned char [], unsigned char [], int, XBWindow * );extern PixVal XBGetColor ( XBWindow *, char *, int );extern PixVal XBSimColor ( XBWindow *, PixVal, int, int );extern void XBUniformHues ( XBWindow *, int );extern void XBSetCmapLight ( unsigned char *, unsigned char *, unsigned char *, int );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -