Algunas Funciones y Estructuras de Datos XWindow Display *XOpenDisplay(display_name) char *display_name; char *ServerVendor(display) int XDisplayWidth(display,screen_number) int screen_number; int XDisplayHeight(display,screen_number) int screen_number; int XDefaultScreen(display) DefaultRootWindow(display) RootWindow(display,screen_number) int screen_number; XCloseDisplay(display) Window XCreateSimpleWindow(display,parent,x,y,width,height, border_width,border,background) Window parent; unsigned int width,height; unsigned int border_width; unsigned long border; unsigned long background; XMapWindow(display,w) XMapRaised(display,w)
XChangeWindowAttributes(display,w,valuemask,attributes) unsigned long valuemask; XSetWindowAttributes *attributes; typedef struct { Pixmap background_pixmap; unsigned long background_pixel; Pixmap border_pixmap; unsigned long border_pixel; int bit_gravity; int win_gravity; int backing_store; unsigned long backing_planes; unsigned long backing_pixel; Bool save_under; long event_mask; long do_not_propagate_mask; Bool override_redirect; Colormap colormap; Cursor cursor; } XSetWindowAttributes; #define CWBackPixmap (1L<<0) #define CWBackPixel (1L<<1) #define CWBorderPixmap (1L<<2) #define CWBitGravity (1L<<3) #define CWWinGravity (1L<<4) #define CWBackingStore (1L<<5) #define CWBackingPlanes (1L<<6) #define CWBackingPixel (1L<<7) #define CWOverrideRedirect (1L<<8) #define CWSaveUnder (1L<<9) #define CWEventMask (1L<<10) #define CWDontPropagate (1L<<11) #define CWColormap (1L<<12) #define CWCursor (1L<<13) XMapSubwindows(display,w) XUnMapWindow(display,w) 2
XUnMapSubwindows(display,w) XFlush(display) XMoveWindow(diplay,window,x,y) Window *window; XResizeWindow(display,window,width,height) Window window; unsigned int width,height; XMoveResizeWindow(diplay,window,x,y,width,height) Window *window; unsigned int width,height; XSetWindowBorderWidth(display,w,width) unsigned int width; XRaiseWindow(display,w) XLowerWindow(display,w) XCirculateSubwindows(display,w,direction) int direction; XCirculateSubwindowsUp(display,w) XCirculateSubwindowsDown(display,w) 3
XRestackWindows(display,windows,n) Window windows[]; XConfigureWindow(display,w,value_mask,values) unsigned int value_mask; XWindowChanges *values; typedef struct{ int width,height; int border_width; Window sibling; int stack_mode; } XWindowChanges; Gestión de eventos. typedef struct { int type; unsigned long serial; Bool send_event; Window window; Window root; Window subwindow; Time time; int x, y; int x_root, y_root; unsigned int state; unsigned int button; /* Button1, Button2, Button3 */ Bool same_screen; } XButtonEvent; typedef XButtonEvent XButtonPressedEvent; typedef XButtonEvent XButtonReleasedEvent; 4
typedef struct { int type; unsigned long serial; Bool send_event; Displar *display; Window window; }XAnyEvent; typedef union _Xevent { int type; XAnyEvent xany; XKeyEvent xkey; XButtonEvent xbutton; XMotionEvent xmotion; XcrossingEvent xcorssing; XFocusChangeEvent xexpose; XGraphicsExposeEvent xgraphicsexpose; XNoExposeEvent xnoexpose; XVisibilityEvent xvisibility; XcreateWindowEvent xcreatewindow; XDestroyWindowEvent xdestroywindow; XUnmapEvent xunmap; XMapEvent xmap; XMapRequestEvent xmaprequest; XReparentEvent xreparent; XConfigureEvent xconfigure; XGravityEvent xgravity; XResizeRequestEvent xresizerequest; XConfigureRequestEvent xconfigurerequest; XCirculateEvent xcirculate; XCirculateRequestEvent xcirculaterequest; XPropertyEvent xproperty; XSelectionClearEvent xselectionclear; XSelectionRequestEvent xselectionrequest; XSelectionEvent xselection; XColormapEvent xcolormap; XClientMessageEvent xclient; XMappingEvent xmapping; XErrorEvent xerror; XKeymapEvent xkeymap; long pad[24; } XEvent; 5
XSelectInput (display,w,event_mask) long event_mask; XNextEvent (display,event_return) XEvent *event_return; XMaskEvent (display,event_mask,event_return) long event_mask; XEvent *event_return; XWindowEvent (display,w,event_mask,event_return) Window *w; long event_return; XEvent *event_return; Bool XCheckMaskEvent (display,event_mask,event_return) long event_mask; XEvent *event_return; Bool XCheckWindowEvent (display,w,event_mask,event_return) Window *w; long event_mask; XEvent *event_return; Bool XCheckTypedEvent (display,event_type,event_return) int event_type; XEvent *event_return; Bool XCheckTypedWindowEvent (display,w,event_type,event_return) int event_type; XEvent *event_return; 6
Teclado int XLookupString (event,string,length,key,cs); XKeyevent *event; char *string; int length; Keysym *key; XComposeStatus *cs; char *XKeysymToString (keysym); KeySym XStringToKeysmy (string); char *string; KeySym XKeycodeToKeysym (display,keycode,index); KeyCode keycode; int index; KeySym XLookupKeysym (event,index); XKeyEvent *event; int index; KeyCode XKeysymToKeycode (display,keysym); XRebindKeysym (display,keysym,list,n,string,m) KeySym *list; unsigned char *string; int m; IsCursorKey (keysym); IsFunctionKey (keysym); IsKeypadKey (keysym); IsMiscFunctionKey (keysym); 7
IsModifierKey (keysym); IsPFKey (keysym); Eventos Expose typedef struct { int type; unsigned long serial; Bool send_event; Window window; int width, height; int count; } XExposeEvent; Mapas de color Colormarp DefaultColormap (display,screen) int screen; Colormap XdefaultColormap (display,screen) int screen, typedef struct{ unsigned long pixel; unsigned short red,green blue; char flag; chard pad; } XColor; Status XAllocColor (display,cmap,&color) Colormap cmap; XColor color; Status XAllocNamedColor (display,cmap,name,&color,&exat) Colormap cmap; char *name; XColor color,exact; 8
XSetWindowBackground (diplay,w,pixel) unsigned long pixel; XSetWindowBorder (display,w,pixel) unsigned long pixel; Contextos Gráficos GC XCreateGC (display,drw,mask,values) Drawable dru; unsigned long mask; XGCValues *values; XChangeGC (display, gc, mask, values) unsigned long mask; XGCValues *values; XSetForeground (display,gc,foreground) unsigned long foreground; XSetBackground (display,gc,background) unsigned long foreground; Creación de pixmaps Pixmap XCreatePixmap(display,drawable,width,height,depth) Drawable drawable; unsigned int width, height; unsigned int depth; 9
XCopyArea(display,src_drawable,dest_drawable,gc,src_x,src_y, width,height,dest_x,dest_y) Drawable src_drawable,dest_drawable; int src_x,src_y; unsigned int width, height; int dest_x, dest_y; XCopyPlane(display,src_drawable,dest_drawable,gc,src_x,src_y, width,height,dest_x,dest_y,plane) Drawable src_drawable,dest_drawable; int src_x,src_y; unsigned int width, height; int dest_x, dest_y; unsigned long plane; XFreePixmap(display,pixmap) Pixmap pixmap; Primitivas gráficas XDrawPoints (display,drw,gc,points,n,mode) XPoint *points; int mode; typedef struct { short x,y; }XPoint; XDrawPoint (display,drw,gc,x,y) Display *display 10
XDrawSegments (display,drw,gc,segments,n) XSegment *segments; XDrawLines (display,drw gc,points,n,mode) XPoint *points; int mode; typedef structure{ short x1,y1,x2,y2; }XSegment; XDrawLine (display,drw,gc,x1,y1,x2,y2) int x1,y1,x2,y2; XSetLineAttributes (display,gc,line_width,line_style,cap_style,join_style) unsigned int line_width; int line_style; int cap_style; int join_style; XSetDashes (display,gc,offset,dash_list,n); int offset; char dash_list[]; XDrawRectangle (display,drw,gc,x,y,width,height) unsigned int width,height; 11
XDrawRectangles (display,drw,gc,rectangles,n) XRectangle rectangles[]; XDrawArc (display,drw,gc,x,y,width,height,angle1,angle2) unsigned int width,height; int angle1,angle2; XDrawArcs (display,drw,gc,arcs,n) XArc *arcs; typedef struct { short x,y; unsigned short width,height; short angle1,angle2; }XArc; XFillRectangle (display,drw,gc,x,y,width,height) unsigned int width,height; XFillRectangles (display,drw,gc,rectangles,n) XRectangle rectangles[]; 12
XFillArc (display,drw,gc,x,y,width,height,angle1,angle2) unsigned int width,height; int angle1,angle2; XFillArcs (display,drw,gc,arcs,n) XArc *arcs; XSetArcMode display,gc,arc_mode) int arc_mode; XFillPolygon (display,drw,gc,points,n,shape,mode) XPoint *points; int shape; int mode; XSetFillRule (display,gc,fill_rule) int fill_rule Primitivas para dibujar texto Font XLoadFont (display,name) char *name; XSetFont (display,gc,font) Font font; 13
XDrawString (display,drw,gc,x,y,string,l) char *string; int l; XDrawImageString (display,drw,gc,x,y,string, 1) int x,y,; char *string; int l; XFontStruct *XQueryFont(display,fid) Display *display, Font fid; XFontStruct *XLoadQueryFont(display,name) Display *display, char *name; int XTextWidth(font_struc,string,n) XFontStruc *font_struct; char *string; XTextExtents(font_struct,string,n,dir,ascent,descent,overall) XFontStruct *font_struct; char *string; int *dir; int *ascent,*descent; XCharStruct *overall; 14
Algunas Funciones y Estructuras de Datos OSF/Motif y XtIntrinsics Creación del contexto de la aplicación. Widget XtAppInitialize(app_context_return,application_class, options, num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) XtAppContext app_context_return; String application_class; XrmOptionDescList options; Cardinal num_options; Cardinal *argc_in_out; String *argv_in_out; String *fallback_resources; Arglist args; Cardinal num_args Creación y gestión de Widgets. Widget XmCreate<WidgetClass>(parent, name, args, argcount) Widget parent; String name; ArgList args; Cardinal argcount; void XtManageChild(child) Widget child; XtRealizeWidget(w) Widget w; Gestión del bucle de eventos. void XtAppMainLoop(app_context) XtAppContext app_context; 15
Configuración de recursos. typedef struct { String name; XtArgVal value; } Arg; XtSetArg(arg, resource, value) Arg arg; String resource; XtArgVal value; Llamadas de retorno y gestores de eventos Xwindow. void XtAddEventHandler(w, mask, nonmask, proc, client_data) Widget w; EventMask mask; Boolean nonmask; XtEventHandler proc; XtPointer client_data; XtEventHandler proc(w, client_data, pevent) Widget w; XtPinter client_data; Xevent *pevent; void XtAddCallback(w, callback_name, proc, client_data) Widget w; String callback_name; XtCallbackProc proc; XtPointer client_data; XtCallbackProc proc(w, client_data, call_data) Widget w; XtPointer client_data; XtPointer call_data; Gestión de XmString s. XmString XmStringCreateSimple(text) char *text; 16
XmString XmStringCreate(text, charset) char *text; XmStringCharSet charset; void XmStringFree(string) XmString string; 17