Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/trunk/mw/doc
- from Rev 673 to Rev 1765
- ↔ Reverse comparison
Rev 673 → Rev 1765
<SECTION> |
<FILE>general</FILE> |
GrFlush |
GrOpen |
GrClose |
GrMainLoop |
GrGetScreenInfo |
GrSetErrorHandler |
GrDefaultErrorHandler |
</SECTION> |
<SECTION> |
<FILE>window</FILE> |
GrNewWindow |
GrNewPixmap |
GrNewInputWindow |
GrDestroyWindow |
GrMapWindow |
GrUnmapWindow |
GrRaiseWindow |
GrLowerWindow |
GrMoveWindow |
GrResizeWindow |
GrReparentWindow |
GrGetWindowInfo |
GrSetWMProperties |
GrGetWMProperties |
GrSetFocus |
GrGetFocus |
GrSetBorderColor |
GrSetBackgroundPixmap |
GrClearWindow |
GrCloseWindow |
GrKillWindow |
</SECTION> |
<SECTION> |
<FILE>graphics</FILE> |
GrNewGC |
GrCopyGC |
GrGetGCInfo |
GrDestroyGC |
GrLine |
GrPoint |
GrPoints |
GrRect |
GrFillRect |
GrPoly |
GrFillPoly |
GrEllipse |
GrFillEllipse |
GrArc |
GrArcAngle |
GrSetGCForeground |
GrSetGCBackground |
GrSetGCUseBackground |
GrSetGCMode |
GrSetGCFont |
GrGetGCTextSize |
GrReadArea |
GrArea |
GrCopyArea |
GrBitmap |
GrFreeImage |
GrGetImageInfo |
GrDrawImageFromFile |
GrLoadImageFromFile |
GrDrawImageToFit |
GrDrawImageBits |
GrText |
</SECTION> |
<SECTION> |
<FILE>events</FILE> |
GrSelectEvents |
GrGetNextEvent |
GrGetNextEventTimeout |
GrCheckNextEvent |
GrPeekEvent |
</SECTION> |
<SECTION> |
<FILE>fonts</FILE> |
GrCreateFont |
GrSetFontSize |
GrSetFontRotation |
GrSetFontAttr |
GrDestroyFont |
GrGetFontInfo |
</SECTION> |
<SECTION> |
<FILE>pointer</FILE> |
GrSetCursor |
GrMoveCursor |
GrInjectPointerEvent |
</SECTION> |
<SECTION> |
<FILE>colours</FILE> |
GrGetSystemPalette |
GrSetSystemPalette |
GrFindColor |
GrGetSysColor |
</SECTION> |
<SECTION> |
<FILE>regions</FILE> |
GrNewRegion |
GrDestroyRegion |
GrUnionRectWithRegion |
GrUnionRegion |
GrSubtractRegion |
GrXorRegion |
GrIntersectRegion |
GrSetGCRegion |
GrPointInRegion |
GrRectInRegion |
GrEmptyRegion |
GrEqualRegion |
GrOffsetRegion |
GrGetRegionBox |
GrNewPolygonRegion |
</SECTION> |
<SECTION> |
<FILE>selections</FILE> |
GrSetSelectionOwner |
GrGetSelectionOwner |
GrRequestClientData |
GrSendClientData |
</SECTION> |
<SECTION> |
<FILE>misc</FILE> |
GrRegisterDragAndDropWindow |
GrReqShmCmds |
GrInjectKeyboardEvent |
GrRegisterInput |
GrPrepareSelect |
GrServiceSelect |
GrBell |
GrSetScreenSaverTimeout |
</SECTION> |
<HTML |
><HEAD |
><TITLE |
>graphics</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="window" |
HREF="nano-x-window.html"><LINK |
REL="NEXT" |
TITLE="events" |
HREF="nano-x-events.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-window.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-events.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>graphics</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN707" |
></A |
><H2 |
>Name</H2 |
>graphics — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN710" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> <A |
HREF="nano-x-graphics.html#GRNEWGC" |
>GrNewGC</A |
> (void); |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> <A |
HREF="nano-x-graphics.html#GRCOPYGC" |
>GrCopyGC</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc); |
void <A |
HREF="nano-x-graphics.html#GRGETGCINFO" |
>GrGetGCInfo</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-GC-INFO-CAPS" |
>GR_GC_INFO</GTKDOCLINK |
> *gcip); |
void <A |
HREF="nano-x-graphics.html#GRDESTROYGC" |
>GrDestroyGC</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc); |
void <A |
HREF="nano-x-graphics.html#GRLINE" |
>GrLine</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x2, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y2); |
void <A |
HREF="nano-x-graphics.html#GRPOINT" |
>GrPoint</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y); |
void <A |
HREF="nano-x-graphics.html#GRPOINTS" |
>GrPoints</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable); |
void <A |
HREF="nano-x-graphics.html#GRRECT" |
>GrRect</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height); |
void <A |
HREF="nano-x-graphics.html#GRFILLRECT" |
>GrFillRect</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height); |
void <A |
HREF="nano-x-graphics.html#GRPOLY" |
>GrPoly</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable); |
void <A |
HREF="nano-x-graphics.html#GRFILLPOLY" |
>GrFillPoly</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable); |
void <A |
HREF="nano-x-graphics.html#GRELLIPSE" |
>GrEllipse</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry); |
void <A |
HREF="nano-x-graphics.html#GRFILLELLIPSE" |
>GrFillEllipse</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry); |
void <A |
HREF="nano-x-graphics.html#GRARC" |
>GrArc</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> ax, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> ay, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> bx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> by, |
int type); |
void <A |
HREF="nano-x-graphics.html#GRARCANGLE" |
>GrArcAngle</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> angle1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> angle2, |
int type); |
void <A |
HREF="nano-x-graphics.html#GRSETGCFOREGROUND" |
>GrSetGCForeground</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> foreground); |
void <A |
HREF="nano-x-graphics.html#GRSETGCBACKGROUND" |
>GrSetGCBackground</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background); |
void <A |
HREF="nano-x-graphics.html#GRSETGCUSEBACKGROUND" |
>GrSetGCUseBackground</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> flag); |
void <A |
HREF="nano-x-graphics.html#GRSETGCMODE" |
>GrSetGCMode</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
int mode); |
void <A |
HREF="nano-x-graphics.html#GRSETGCFONT" |
>GrSetGCFont</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> font); |
void <A |
HREF="nano-x-graphics.html#GRGETGCTEXTSIZE" |
>GrGetGCTextSize</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
void *str, |
int count, |
int flags, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retwidth, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retheight, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retbase); |
void <A |
HREF="nano-x-graphics.html#GRREADAREA" |
>GrReadArea</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-PIXELVAL-CAPS" |
>GR_PIXELVAL</GTKDOCLINK |
> *pixels); |
void <A |
HREF="nano-x-graphics.html#GRAREA" |
>GrArea</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
void *pixels, |
int pixtype); |
void <A |
HREF="nano-x-graphics.html#GRCOPYAREA" |
>GrCopyArea</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> srcid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> srcx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> srcy, |
int op); |
void <A |
HREF="nano-x-graphics.html#GRBITMAP" |
>GrBitmap</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *imagebits); |
void <A |
HREF="nano-x-graphics.html#GRFREEIMAGE" |
>GrFreeImage</A |
> (<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> id); |
void <A |
HREF="nano-x-graphics.html#GRGETIMAGEINFO" |
>GrGetImageInfo</A |
> (<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-IMAGE-INFO-CAPS" |
>GR_IMAGE_INFO</GTKDOCLINK |
> *iip); |
void <A |
HREF="nano-x-graphics.html#GRDRAWIMAGEFROMFILE" |
>GrDrawImageFromFile</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
char *path, |
int flags); |
<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> <A |
HREF="nano-x-graphics.html#GRLOADIMAGEFROMFILE" |
>GrLoadImageFromFile</A |
> (char *path, |
int flags); |
void <A |
HREF="nano-x-graphics.html#GRDRAWIMAGETOFIT" |
>GrDrawImageToFit</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> imageid); |
void <A |
HREF="nano-x-graphics.html#GRDRAWIMAGEBITS" |
>GrDrawImageBits</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-IMAGE-HDR-CAPS" |
>GR_IMAGE_HDR</GTKDOCLINK |
> *pimage); |
void <A |
HREF="nano-x-graphics.html#GRTEXT" |
>GrText</A |
> (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
void *str, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
int flags);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN883" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN886" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN888" |
></A |
><H3 |
><A |
NAME="GRNEWGC" |
></A |
>GrNewGC ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> GrNewGC (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Creates a new graphics context structure and returns the ID used to refer |
to it. The structure is initialised with a set of default parameters.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created graphics context or 0 on error</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN904" |
></A |
><H3 |
><A |
NAME="GRCOPYGC" |
></A |
>GrCopyGC ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> GrCopyGC (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Creates a new graphics context structure and fills it in with the values |
from the specified already existing graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the already existing graphics context to copy the parameters from</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created graphics context or 0 on error</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN925" |
></A |
><H3 |
><A |
NAME="GRGETGCINFO" |
></A |
>GrGetGCInfo ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetGCInfo (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-GC-INFO-CAPS" |
>GR_GC_INFO</GTKDOCLINK |
> *gcip);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified GR_GC_INFO structure with information regarding the |
specified graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> a graphics context</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gcip</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_GC_INFO structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN946" |
></A |
><H3 |
><A |
NAME="GRDESTROYGC" |
></A |
>GrDestroyGC ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDestroyGC (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Destroys the graphics context structure with the specified ID.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context structure to destroy</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN962" |
></A |
><H3 |
><A |
NAME="GRLINE" |
></A |
>GrLine ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrLine (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x2, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws a line using the specified graphics context on the specified drawable |
from (x1, y1) to (x2, y2), with coordinates given relative to the drawable.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the line on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the line</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the start of the line relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the start of the line relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the end of the line relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the end of the line relative to the drawable</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1003" |
></A |
><H3 |
><A |
NAME="GRPOINT" |
></A |
>GrPoint ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrPoint (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws a point using the specified graphics context at the specified position |
on the specified drawable.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw a point on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the point</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the point at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the point at relative to the drawable</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1034" |
></A |
><H3 |
><A |
NAME="GRPOINTS" |
></A |
>GrPoints ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrPoints (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws a set of points using the specified graphics context at the positions |
specified by the point table on the specified drawable.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw a point on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the point</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of points in the point table</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pointtable</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_POINT array which lists the points to draw</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1065" |
></A |
><H3 |
><A |
NAME="GRRECT" |
></A |
>GrRect ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrRect (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draw the boundary of a rectangle of the specified dimensions and position |
on the specified drawable using the specified graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the rectangle on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the rectangle</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the rectangle relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the rectangle relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the rectangle</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the rectangle</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1106" |
></A |
><H3 |
><A |
NAME="GRFILLRECT" |
></A |
>GrFillRect ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFillRect (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draw a filled rectangle of the specified dimensions and position on the |
specified drawable using the specified graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the rectangle on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the rectangle</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the rectangle relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the rectangle relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the rectangle</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the rectangle</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1147" |
></A |
><H3 |
><A |
NAME="GRPOLY" |
></A |
>GrPoly ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrPoly (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws an unfilled polygon on the specified drawable using the specified |
graphics context. The polygon is specified by an array of point structures. |
The polygon is not automatically closed- if a closed polygon is desired, |
the last point must be the same as the first.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the polygon onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the polygon</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of points in the point array</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pointtable</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to an array of points describing the polygon</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1178" |
></A |
><H3 |
><A |
NAME="GRFILLPOLY" |
></A |
>GrFillPoly ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFillPoly (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *pointtable);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws a filled polygon on the specified drawable using the specified |
graphics context. The polygon is specified by an array of point structures. |
The polygon is automatically closed- the last point need not be the same as |
the first in order for the polygon to be closed.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the polygon onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the polygon</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of points in the point array</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pointtable</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to an array of points describing the polygon</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1209" |
></A |
><H3 |
><A |
NAME="GRELLIPSE" |
></A |
>GrEllipse ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrEllipse (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the boundary of ellipse at the specified position using the specified |
dimensions and graphics context on the specified drawable.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the ellipse on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the ellipse</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the ellipse at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the ellipse at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the ellipse on the X axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ry</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the ellipse on the Y axis</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1250" |
></A |
><H3 |
><A |
NAME="GRFILLELLIPSE" |
></A |
>GrFillEllipse ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFillEllipse (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws a filled ellipse at the specified position using the specified |
dimensions and graphics context on the specified drawable.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the filled ellipse on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the ellipse</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the ellipse at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the ellipse at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the ellipse on the X axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ry</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the ellipse on the Y axis</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1291" |
></A |
><H3 |
><A |
NAME="GRARC" |
></A |
>GrArc ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrArc (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> ax, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> ay, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> bx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> by, |
int type);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws an arc with the specified dimensions at the specified position |
on the specified drawable using the specified graphics context. |
The type specifies the fill type. Possible values include GR_ARC and |
GR_PIE.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the arc on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the graphics context to use when drawing the arc</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the arc at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the arc at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the arc on the X axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ry</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the arc on the Y axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ax</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the start of the arc relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ay</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the start of the arc relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>bx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the end of the arc relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>by</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the end of the arc relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>type</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the fill style to use when drawing the arc</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1356" |
></A |
><H3 |
><A |
NAME="GRARCANGLE" |
></A |
>GrArcAngle ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrArcAngle (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> rx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> ry, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> angle1, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> angle2, |
int type);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws an arc with the specified dimensions at the specified position |
on the specified drawable using the specified graphics context. |
The type specifies the fill type. Possible values include GR_ARC and |
GR_PIE. This function requires floating point support, and is slightly |
slower than the <A |
HREF="nano-x-graphics.html#GRARC" |
>GrArc</A |
>() function which does not require floating point.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the arc on</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the graphics context to use when drawing the arc</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the arc at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the arc at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the arc on the X axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ry</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the radius of the arc on the Y axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>angle1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the angle of the start of the arc</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>angle2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the angle of the end of the arc</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>type</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the fill style to use when drawing the arc</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1412" |
></A |
><H3 |
><A |
NAME="GRSETGCFOREGROUND" |
></A |
>GrSetGCForeground ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCForeground (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> foreground);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the foreground colour of the specified graphics context to the |
specified colour.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to set the foreground colour of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>foreground</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour to use as the new foreground colour</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1433" |
></A |
><H3 |
><A |
NAME="GRSETGCBACKGROUND" |
></A |
>GrSetGCBackground ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCBackground (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the background colour of the specified graphics context to the |
specified colour.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to set the background colour of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>background</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour to use as the new background colour</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1454" |
></A |
><H3 |
><A |
NAME="GRSETGCUSEBACKGROUND" |
></A |
>GrSetGCUseBackground ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCUseBackground (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> flag);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the flag which chooses whether or not the background colour is used |
when drawing bitmaps and text using the specified graphics context to the |
specified value.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to change the "use background" flag of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flag</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> flag specifying whether to use the background colour or not</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1475" |
></A |
><H3 |
><A |
NAME="GRSETGCMODE" |
></A |
>GrSetGCMode ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCMode (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
int mode);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the drawing mode (SET, XOR, OR, AND, etc.) of the specified |
graphics context to the specified mode.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to set the drawing mode of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>mode</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the new drawing mode</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1495" |
></A |
><H3 |
><A |
NAME="GRSETGCFONT" |
></A |
>GrSetGCFont ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCFont (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> font);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the font to be used for text drawing in the specified graphics |
context to the specified font ID.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to set the font of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>font</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the font</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1516" |
></A |
><H3 |
><A |
NAME="GRGETGCTEXTSIZE" |
></A |
>GrGetGCTextSize ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetGCTextSize (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
void *str, |
int count, |
int flags, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retwidth, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retheight, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> *retbase);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Calculates the dimensions of the specified text string using the current font |
and flags in the specified graphics context. The count argument can be -1 |
if the string is null terminated.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the graphics context</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>str</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a text string</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the length of the string</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> text rendering flags (GR_TF*)</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>retwidth</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the variable the width will be returned in</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>retheight</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the variable the height will be returned in</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>retbase</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the variable the baseline height will be returned in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1559" |
></A |
><H3 |
><A |
NAME="GRREADAREA" |
></A |
>GrReadArea ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrReadArea (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-PIXELVAL-CAPS" |
>GR_PIXELVAL</GTKDOCLINK |
> *pixels);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Reads the pixel data of the specified size from the specified position on |
the specified drawable into the specified pixel array. If the drawable is |
a window, the data returned will be the pixel values from the relevant |
position on the screen regardless of whether the window is obscured by other |
windows. If the window is unmapped, or partially or fully outside a window |
boundary, black pixel values will be returned.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to read an area from</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to read the area from relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to read the area from relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the area to read</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the area to read</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pixels</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to an area of memory to place the pixel data in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1600" |
></A |
><H3 |
><A |
NAME="GRAREA" |
></A |
>GrArea ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrArea (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
void *pixels, |
int pixtype);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the specified pixel array of the specified size and format onto the |
specified drawable using the specified graphics context at the specified |
position. Note that colour conversion is currently only performed when using |
the GR_PF_RGB format, which is an unsigned long containing RGBX data.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the area onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the area</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the area at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the area at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the area</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the area</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pixels</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to an array containing the pixel data</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pixtype</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the format of the pixel data</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1649" |
></A |
><H3 |
><A |
NAME="GRCOPYAREA" |
></A |
>GrCopyArea ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrCopyArea (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> srcid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> srcx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> srcy, |
int op);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Copies the specified area of the specified size between the specified |
drawables at the specified positions using the specified graphics context |
and ROP codes. 0 is a sensible default ROP code in most cases.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to copy the area to</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when copying the area</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to copy the area to within the destination drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to copy the area to within the destination drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the area to copy</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the area to copy</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>srcid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to copy the area from</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>srcx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to copy the area from within the source drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>srcy</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to copy the area from within the source drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>op</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ROP codes to pass to the blitter when performing the copy</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1709" |
></A |
><H3 |
><A |
NAME="GRBITMAP" |
></A |
>GrBitmap ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrBitmap (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *imagebits);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the monochrome bitmap data provided in the bitmaptable argument |
at the specified position on the specified drawable using the specified |
graphics context. Note that the bitmap data should be an array of aligned |
16 bit words. The usebackground flag in the graphics context specifies |
whether to draw the background colour wherever a bit value is zero.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the bitmap onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the bitmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the bitmap at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the bitmap at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the bitmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the bitmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>imagebits</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1755" |
></A |
><H3 |
><A |
NAME="GRFREEIMAGE" |
></A |
>GrFreeImage ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFreeImage (<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> id);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Destroys the specified image buffer and reclaims the memory used by it.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of the image buffer to free</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1771" |
></A |
><H3 |
><A |
NAME="GRGETIMAGEINFO" |
></A |
>GrGetImageInfo ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetImageInfo (<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-IMAGE-INFO-CAPS" |
>GR_IMAGE_INFO</GTKDOCLINK |
> *iip);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified image information structure with the details of the |
specified image buffer.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of an image buffer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>iip</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_IMAGE_INFO structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1792" |
></A |
><H3 |
><A |
NAME="GRDRAWIMAGEFROMFILE" |
></A |
>GrDrawImageFromFile ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDrawImageFromFile (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
char *path, |
int flags);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Loads the specified image file and draws it at the specified position |
on the specified drawable using the specified graphics context. The |
width and height values specify the size of the image to draw- if the |
actual image is a different size, it will be scaled to fit. The image type |
is automatically detected using the magic numbers in the image header (ie. |
the filename extension is irrelevant). The currently supported image types |
include GIF, JPEG, Windows BMP, PNG, XPM, and both ascii and binary |
variants of PBM, PGM, and PPM. However the image types supported by a |
particular server depend on which image types were enabled in the server |
configuration at build time.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the image onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the image</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the maximum image width</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the maximum image height</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>path</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> string containing the filename of the image to load</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> flags specific to the particular image loader</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1841" |
></A |
><H3 |
><A |
NAME="GRLOADIMAGEFROMFILE" |
></A |
>GrLoadImageFromFile ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> GrLoadImageFromFile (char *path, |
int flags);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Loads the specified image file into a newly created server image buffer |
and returns the ID of the buffer. The image type is automatically detected |
using the magic numbers in the image header (ie. the filename extension is |
irrelevant). The currently supported image types include GIF, JPEG, Windows |
BMP, PNG, XPM, and both ascii and binary variants of PBM, PGM, and PPM. |
However the image types supported by a particular server depend on which |
image types were enabled in the server configuration at build time.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>path</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> string containing the filename of the image to load</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> flags specific to the particular image loader</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of the image buffer the image was loaded into</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1865" |
></A |
><H3 |
><A |
NAME="GRDRAWIMAGETOFIT" |
></A |
>GrDrawImageToFit ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDrawImageToFit (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-IMAGE-ID-CAPS" |
>GR_IMAGE_ID</GTKDOCLINK |
> imageid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the image from the specified image buffer at the specified position |
on the specified drawable using the specified graphics context. The |
width and height values specify the size of the image to draw- if the |
actual image is a different size, it will be scaled to fit.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the image onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the image</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the maximum image width</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the maximum image height</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>imageid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the image buffer containing the image to display</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1911" |
></A |
><H3 |
><A |
NAME="GRDRAWIMAGEBITS" |
></A |
>GrDrawImageBits ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDrawImageBits (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-IMAGE-HDR-CAPS" |
>GR_IMAGE_HDR</GTKDOCLINK |
> *pimage);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the image contained in the specified image structure onto the |
specified drawable at the specified coordinates using the specified |
graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the image onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the image</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the image at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pimage</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the image structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN1947" |
></A |
><H3 |
><A |
NAME="GRTEXT" |
></A |
>GrText ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrText (<GTKDOCLINK |
HREF="GR-DRAW-ID-CAPS" |
>GR_DRAW_ID</GTKDOCLINK |
> id, |
<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
void *str, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
int flags);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Draws the specified text string at the specified position on the specified |
drawable using the specified graphics context and flags. The default flags |
specify ASCII encoding and baseline alignment.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>id</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the drawable to draw the text string onto</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to use when drawing the text string</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to draw the string at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to draw the string at relative to the drawable</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>str</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the text string to draw</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of characters (not bytes) in the string</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> flags specifying text encoding, alignment, etc.</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-window.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-events.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>window</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>events</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>pointer</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="fonts" |
HREF="nano-x-fonts.html"><LINK |
REL="NEXT" |
TITLE="colours" |
HREF="nano-x-colours.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-fonts.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-colours.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>pointer</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN2286" |
></A |
><H2 |
>Name</H2 |
>pointer — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN2289" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-pointer.html#GRSETCURSOR" |
>GrSetCursor</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> hotx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> hoty, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> foreground, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *fbbitmap, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *bgbitmap); |
void <A |
HREF="nano-x-pointer.html#GRMOVECURSOR" |
>GrMoveCursor</A |
> (<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y); |
void <A |
HREF="nano-x-pointer.html#GRINJECTPOINTEREVENT" |
>GrInjectPointerEvent</A |
> (<GTKDOCLINK |
HREF="MWCOORD-CAPS" |
>MWCOORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="MWCOORD-CAPS" |
>MWCOORD</GTKDOCLINK |
> y, |
int button, |
int visible);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2308" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2311" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2313" |
></A |
><H3 |
><A |
NAME="GRSETCURSOR" |
></A |
>GrSetCursor ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetCursor (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> hotx, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> hoty, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> foreground, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *fbbitmap, |
<GTKDOCLINK |
HREF="GR-BITMAP-CAPS" |
>GR_BITMAP</GTKDOCLINK |
> *bgbitmap);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Specifies a cursor (mouse pointer graphic) to display when the mouse |
pointer is over the specified window and subsequently created children. |
Points in the bitmap which have neither the foreground or background bits |
set are not painted.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the cursor of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the pointer bitmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the pointer bitmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>hotx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate within the bitmap used as the target of the pointer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>hoty</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate within the bitmap used as the target of the pointer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>foreground</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour to use for the foreground of the pointer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>background</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour to use for the background of the pointer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fbbitmap</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>bgbitmap</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to bitmap data specifying the background of the pointer</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2369" |
></A |
><H3 |
><A |
NAME="GRMOVECURSOR" |
></A |
>GrMoveCursor ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrMoveCursor (<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Moves the cursor (mouse pointer) to the specified coordinates. |
The coordinates are relative to the root window, where (0,0) is the upper |
left hand corner of the screen. The reference point used for the pointer |
is that of the "hot spot". After moving the pointer, the graphic used for |
the pointer will change to the graphic defined for use in the window which |
it is over.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to move the pointer to</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to move the pointer to</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2390" |
></A |
><H3 |
><A |
NAME="GRINJECTPOINTEREVENT" |
></A |
>GrInjectPointerEvent ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrInjectPointerEvent (<GTKDOCLINK |
HREF="MWCOORD-CAPS" |
>MWCOORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="MWCOORD-CAPS" |
>MWCOORD</GTKDOCLINK |
> y, |
int button, |
int visible);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the pointer invisible if the visible parameter is GR_FALSE, or visible |
if it is GR_TRUE, then moves the pointer to the specified position and |
generates a mouse event with the specified button status. Also performs |
a <A |
HREF="nano-x-general.html#GRFLUSH" |
>GrFlush</A |
>() so that the event takes effect immediately.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the pointer event relevant to the root window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the pointer event relevant to the root window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>button</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the pointer button status</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>visible</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> whether to display the pointer after the event</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-fonts.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-colours.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>fonts</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>colours</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>events</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="graphics" |
HREF="nano-x-graphics.html"><LINK |
REL="NEXT" |
TITLE="fonts" |
HREF="nano-x-fonts.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-graphics.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-fonts.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>events</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN1996" |
></A |
><H2 |
>Name</H2 |
>events — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN1999" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-events.html#GRSELECTEVENTS" |
>GrSelectEvents</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-EVENT-MASK-CAPS" |
>GR_EVENT_MASK</GTKDOCLINK |
> eventmask); |
void <A |
HREF="nano-x-events.html#GRGETNEXTEVENT" |
>GrGetNextEvent</A |
> (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep); |
void <A |
HREF="nano-x-events.html#GRGETNEXTEVENTTIMEOUT" |
>GrGetNextEventTimeout</A |
> (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep, |
<GTKDOCLINK |
HREF="GR-TIMEOUT-CAPS" |
>GR_TIMEOUT</GTKDOCLINK |
> timeout); |
void <A |
HREF="nano-x-events.html#GRCHECKNEXTEVENT" |
>GrCheckNextEvent</A |
> (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep); |
int <A |
HREF="nano-x-events.html#GRPEEKEVENT" |
>GrPeekEvent</A |
> (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2014" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2017" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2019" |
></A |
><H3 |
><A |
NAME="GRSELECTEVENTS" |
></A |
>GrSelectEvents ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSelectEvents (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-EVENT-MASK-CAPS" |
>GR_EVENT_MASK</GTKDOCLINK |
> eventmask);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Select the event types which should be returned for the specified window.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the event mask of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>eventmask</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> a bit field specifying the desired event mask</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2040" |
></A |
><H3 |
><A |
NAME="GRGETNEXTEVENT" |
></A |
>GrGetNextEvent ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetNextEvent (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Gets the next event from the event queue and places it in the specified |
GR_EVENT structure. If the queue is currently empty, we sleep until the |
next event arrives from the server or input is read on a file descriptor |
previously specified by <A |
HREF="nano-x-misc.html#GRREGISTERINPUT" |
>GrRegisterInput</A |
>().</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ep</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the GR_EVENT structure to return the event in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2057" |
></A |
><H3 |
><A |
NAME="GRGETNEXTEVENTTIMEOUT" |
></A |
>GrGetNextEventTimeout ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetNextEventTimeout (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep, |
<GTKDOCLINK |
HREF="GR-TIMEOUT-CAPS" |
>GR_TIMEOUT</GTKDOCLINK |
> timeout);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Gets the next event from the event queue and places it in the specified |
GR_EVENT structure. If the queue is currently empty, we sleep until the |
next event arrives from the server, input is read on a file descriptor |
previously specified by <A |
HREF="nano-x-misc.html#GRREGISTERINPUT" |
>GrRegisterInput</A |
>(), or a timeout occurs. Note |
that a value of 0 for the timeout parameter doesn't mean "timeout after 0 |
milliseconds" but is in fact a magic number meaning "never time out".</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ep</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the GR_EVENT structure to return the event in</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>timeout</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of milliseconds to wait before timing out</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2079" |
></A |
><H3 |
><A |
NAME="GRCHECKNEXTEVENT" |
></A |
>GrCheckNextEvent ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrCheckNextEvent (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Gets the next event from the event queue if there is one, or returns |
immediately with an event type of GR_EVENT_TYPE_NONE if it is empty.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ep</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the GR_EVENT structure to return the event in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2095" |
></A |
><H3 |
><A |
NAME="GRPEEKEVENT" |
></A |
>GrPeekEvent ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>int GrPeekEvent (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified event structure with a copy of the next event on the |
queue, without actually removing it from the queue. An event type of |
GR_EVENT_TYPE_NONE is given if the queue is empty.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ep</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the GR_EVENT structure to return the event in</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> 1 if an event was returned, or 0 if the queue was empty</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-graphics.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-fonts.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>graphics</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>fonts</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>regions</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="colours" |
HREF="nano-x-colours.html"><LINK |
REL="NEXT" |
TITLE="selections" |
HREF="nano-x-selections.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-colours.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-selections.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>regions</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN2529" |
></A |
><H2 |
>Name</H2 |
>regions — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN2532" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> <A |
HREF="nano-x-regions.html#GRNEWREGION" |
>GrNewRegion</A |
> (void); |
void <A |
HREF="nano-x-regions.html#GRDESTROYREGION" |
>GrDestroyRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region); |
void <A |
HREF="nano-x-regions.html#GRUNIONRECTWITHREGION" |
>GrUnionRectWithRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-RECT-CAPS" |
>GR_RECT</GTKDOCLINK |
> *rect); |
void <A |
HREF="nano-x-regions.html#GRUNIONREGION" |
>GrUnionRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2); |
void <A |
HREF="nano-x-regions.html#GRSUBTRACTREGION" |
>GrSubtractRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2); |
void <A |
HREF="nano-x-regions.html#GRXORREGION" |
>GrXorRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2); |
void <A |
HREF="nano-x-regions.html#GRINTERSECTREGION" |
>GrIntersectRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2); |
void <A |
HREF="nano-x-regions.html#GRSETGCREGION" |
>GrSetGCRegion</A |
> (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region); |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> <A |
HREF="nano-x-regions.html#GRPOINTINREGION" |
>GrPointInRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y); |
int <A |
HREF="nano-x-regions.html#GRRECTINREGION" |
>GrRectInRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> w, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> h); |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> <A |
HREF="nano-x-regions.html#GREMPTYREGION" |
>GrEmptyRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region); |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> <A |
HREF="nano-x-regions.html#GREQUALREGION" |
>GrEqualRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> rgn2); |
void <A |
HREF="nano-x-regions.html#GROFFSETREGION" |
>GrOffsetRegion</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> dx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> dy); |
int <A |
HREF="nano-x-regions.html#GRGETREGIONBOX" |
>GrGetRegionBox</A |
> (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-RECT-CAPS" |
>GR_RECT</GTKDOCLINK |
> *rect); |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> <A |
HREF="nano-x-regions.html#GRNEWPOLYGONREGION" |
>GrNewPolygonRegion</A |
> (int mode, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *points);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2590" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2593" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2595" |
></A |
><H3 |
><A |
NAME="GRNEWREGION" |
></A |
>GrNewRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> GrNewRegion (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Creates a new region structure and returns the ID used to refer to it. |
The structure is initialised with a set of default parameters.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2611" |
></A |
><H3 |
><A |
NAME="GRDESTROYREGION" |
></A |
>GrDestroyRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDestroyRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Destroys the region structure with the specified ID.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region structure to destroy</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2627" |
></A |
><H3 |
><A |
NAME="GRUNIONRECTWITHREGION" |
></A |
>GrUnionRectWithRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrUnionRectWithRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-RECT-CAPS" |
>GR_RECT</GTKDOCLINK |
> *rect);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Makes a union of the specified region and the specified rectangle and |
places the result back in the source region.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to modify</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rect</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> a pointer to the rectangle to add to the region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2648" |
></A |
><H3 |
><A |
NAME="GRUNIONREGION" |
></A |
>GrUnionRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrUnionRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Makes a union of the specified source regions and places the result in the |
specified destination region.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dst_rgn</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the destination region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the first source region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the second source region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2674" |
></A |
><H3 |
><A |
NAME="GRSUBTRACTREGION" |
></A |
>GrSubtractRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSubtractRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Subtracts the second source region from the first source region and places |
the result in the specified destination region.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dst_rgn</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the destination region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the first source region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the second source region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2700" |
></A |
><H3 |
><A |
NAME="GRXORREGION" |
></A |
>GrXorRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrXorRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Performs a logical exclusive OR operation on the specified source regions |
and places the result in the destination region. The destination region |
will contain only the parts of the source regions which do not overlap.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dst_rgn</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the destination region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the first source region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the second source region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2726" |
></A |
><H3 |
><A |
NAME="GRINTERSECTREGION" |
></A |
>GrIntersectRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrIntersectRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> dst_rgn, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> src_rgn2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Calculates the intersection of the two specified source regions and places |
the result in the specified destination region. The destination region |
will contain only the parts of the source regions which overlap each other.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dst_rgn</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the destination region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the first source region</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>src_rgn2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the second source region</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2752" |
></A |
><H3 |
><A |
NAME="GRSETGCREGION" |
></A |
>GrSetGCRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetGCRegion (<GTKDOCLINK |
HREF="GR-GC-ID-CAPS" |
>GR_GC_ID</GTKDOCLINK |
> gc, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the clip mask of the specified graphics context to the specified |
region. Subsequent drawing operations using this graphics context will not |
draw outside the specified region. The region ID can be set to 0 to remove |
the clipping region from the specified graphics context.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>gc</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the graphics context to set the clip mask of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to use as the clip mask</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2773" |
></A |
><H3 |
><A |
NAME="GRPOINTINREGION" |
></A |
>GrPointInRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> GrPointInRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Tests whether the specified point is within the specified region, and |
then returns either True or False depending on the result.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to examine</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the point to test for</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the point to test for</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> True if the point is within the region, or False otherwise</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2804" |
></A |
><H3 |
><A |
NAME="GRRECTINREGION" |
></A |
>GrRectInRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>int GrRectInRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> w, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> h);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Tests whether the specified rectangle is contained within the specified |
region. Returns GR_RECT_OUT if it is not inside it at all, GR_RECT_ALLIN |
if it is completely contained within the region, or GR_RECT_PARTIN if |
it is partially contained within the region.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to examine</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinates of the rectangle to test</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinates of the rectangle to test</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>w</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the rectangle to test</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>h</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the rectangle to test</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> GR_RECT_PARTIN, GR_RECT_ALLIN, or GR_RECT_OUT</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2844" |
></A |
><H3 |
><A |
NAME="GREMPTYREGION" |
></A |
>GrEmptyRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> GrEmptyRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Determines whether the specified region is empty, and returns GR_TRUE |
if it is, or GR_FALSE otherwise.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to examine</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> GR_TRUE if the region is empty, or GR_FALSE if it is not</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2865" |
></A |
><H3 |
><A |
NAME="GREQUALREGION" |
></A |
>GrEqualRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> GrEqualRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> rgn1, |
<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> rgn2);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Determines whether the specified regions are identical, and returns GR_TRUE |
if it is, or GR_FALSE otherwise.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rgn1</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the first region to examine</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rgn2</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the second region to examine</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> GR_TRUE if the regions are equal, or GR_FALSE otherwise</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2891" |
></A |
><H3 |
><A |
NAME="GROFFSETREGION" |
></A |
>GrOffsetRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrOffsetRegion (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> dx, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> dy);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Offsets the specified region by the specified distance.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to offset</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dx</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the distance to offset the region by in the X axis</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>dy</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the distance to offset the region by in the Y axis</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2917" |
></A |
><H3 |
><A |
NAME="GRGETREGIONBOX" |
></A |
>GrGetRegionBox ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>int GrGetRegionBox (<GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> region, |
<GTKDOCLINK |
HREF="GR-RECT-CAPS" |
>GR_RECT</GTKDOCLINK |
> *rect);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified rectangle structure with a bounding box that would |
completely enclose the specified region, and also returns the type of the |
specified region.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>region</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the region to get the bounding box of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rect</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a rectangle structure</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the region type</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2942" |
></A |
><H3 |
><A |
NAME="GRNEWPOLYGONREGION" |
></A |
>GrNewPolygonRegion ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-REGION-ID-CAPS" |
>GR_REGION_ID</GTKDOCLINK |
> GrNewPolygonRegion (int mode, |
<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> count, |
<GTKDOCLINK |
HREF="GR-POINT-CAPS" |
>GR_POINT</GTKDOCLINK |
> *points);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Creates a new region structure, fills it with the region described by the |
specified polygon, and returns the ID used to refer to it.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>mode</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the polygon mode to use (GR_POLY_EVENODD or GR_POLY_WINDING)</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>count</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of points in the polygon</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>points</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to an array of point structures describing the polygon</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly allocated region structure, or 0 on error</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-colours.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-selections.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>colours</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>selections</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>colours</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="pointer" |
HREF="nano-x-pointer.html"><LINK |
REL="NEXT" |
TITLE="regions" |
HREF="nano-x-regions.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-pointer.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-regions.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>colours</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN2425" |
></A |
><H2 |
>Name</H2 |
>colours — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN2428" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-colours.html#GRGETSYSTEMPALETTE" |
>GrGetSystemPalette</A |
> (<GTKDOCLINK |
HREF="GR-PALETTE-CAPS" |
>GR_PALETTE</GTKDOCLINK |
> *pal); |
void <A |
HREF="nano-x-colours.html#GRSETSYSTEMPALETTE" |
>GrSetSystemPalette</A |
> (<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> first, |
<GTKDOCLINK |
HREF="GR-PALETTE-CAPS" |
>GR_PALETTE</GTKDOCLINK |
> *pal); |
void <A |
HREF="nano-x-colours.html#GRFINDCOLOR" |
>GrFindColor</A |
> (<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> c, |
<GTKDOCLINK |
HREF="GR-PIXELVAL-CAPS" |
>GR_PIXELVAL</GTKDOCLINK |
> *retpixel); |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> <A |
HREF="nano-x-colours.html#GRGETSYSCOLOR" |
>GrGetSysColor</A |
> (int index);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2441" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2444" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2446" |
></A |
><H3 |
><A |
NAME="GRGETSYSTEMPALETTE" |
></A |
>GrGetSystemPalette ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetSystemPalette (<GTKDOCLINK |
HREF="GR-PALETTE-CAPS" |
>GR_PALETTE</GTKDOCLINK |
> *pal);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Retrieves the system palette and places it in the specified palette |
structure.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pal</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a palette structure to fill in with the system palette</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2462" |
></A |
><H3 |
><A |
NAME="GRSETSYSTEMPALETTE" |
></A |
>GrSetSystemPalette ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetSystemPalette (<GTKDOCLINK |
HREF="GR-COUNT-CAPS" |
>GR_COUNT</GTKDOCLINK |
> first, |
<GTKDOCLINK |
HREF="GR-PALETTE-CAPS" |
>GR_PALETTE</GTKDOCLINK |
> *pal);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the system palette to the values stored in the specified palette |
structure. The values before the specified first value are not set.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>first</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the first palette value to set</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pal</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a palette structure containing the new values</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2483" |
></A |
><H3 |
><A |
NAME="GRFINDCOLOR" |
></A |
>GrFindColor ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFindColor (<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> c, |
<GTKDOCLINK |
HREF="GR-PIXELVAL-CAPS" |
>GR_PIXELVAL</GTKDOCLINK |
> *retpixel);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Calculates the pixel value to use to display the specified colour value. |
The colour value is specified as a GR_COLOR, which is a 32 bit truecolour |
value stored as RGBX. The pixel value size depends on the architecture.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>c</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour value to find</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>retpixel</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the returned pixel value</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2504" |
></A |
><H3 |
><A |
NAME="GRGETSYSCOLOR" |
></A |
>GrGetSysColor ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> GrGetSysColor (int index);</PRE |
></TD |
></TR |
></TABLE |
><P |
></P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>index</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> an index into the server's colour look up table</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour found at the specified index</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-pointer.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-regions.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>pointer</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>regions</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>window</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="general" |
HREF="nano-x-general.html"><LINK |
REL="NEXT" |
TITLE="graphics" |
HREF="nano-x-graphics.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-general.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-graphics.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>window</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN137" |
></A |
><H2 |
>Name</H2 |
>window — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN140" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> <A |
HREF="nano-x-window.html#GRNEWWINDOW" |
>GrNewWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> parent, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> bordersize, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> bordercolor); |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> <A |
HREF="nano-x-window.html#GRNEWPIXMAP" |
>GrNewPixmap</A |
> (<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
void *addr); |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> <A |
HREF="nano-x-window.html#GRNEWINPUTWINDOW" |
>GrNewInputWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> parent, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height); |
void <A |
HREF="nano-x-window.html#GRDESTROYWINDOW" |
>GrDestroyWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRMAPWINDOW" |
>GrMapWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRUNMAPWINDOW" |
>GrUnmapWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRRAISEWINDOW" |
>GrRaiseWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRLOWERWINDOW" |
>GrLowerWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRMOVEWINDOW" |
>GrMoveWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y); |
void <A |
HREF="nano-x-window.html#GRRESIZEWINDOW" |
>GrResizeWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height); |
void <A |
HREF="nano-x-window.html#GRREPARENTWINDOW" |
>GrReparentWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> pwid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y); |
void <A |
HREF="nano-x-window.html#GRGETWINDOWINFO" |
>GrGetWindowInfo</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-INFO-CAPS" |
>GR_WINDOW_INFO</GTKDOCLINK |
> *infoptr); |
void <A |
HREF="nano-x-window.html#GRSETWMPROPERTIES" |
>GrSetWMProperties</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WM-PROPERTIES-CAPS" |
>GR_WM_PROPERTIES</GTKDOCLINK |
> *props); |
void <A |
HREF="nano-x-window.html#GRGETWMPROPERTIES" |
>GrGetWMProperties</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WM-PROPERTIES-CAPS" |
>GR_WM_PROPERTIES</GTKDOCLINK |
> *props); |
void <A |
HREF="nano-x-window.html#GRSETFOCUS" |
>GrSetFocus</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> <A |
HREF="nano-x-window.html#GRGETFOCUS" |
>GrGetFocus</A |
> (void); |
void <A |
HREF="nano-x-window.html#GRSETBORDERCOLOR" |
>GrSetBorderColor</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> color); |
void <A |
HREF="nano-x-window.html#GRSETBACKGROUNDPIXMAP" |
>GrSetBackgroundPixmap</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> pixmap, |
int flags); |
void <A |
HREF="nano-x-window.html#GRCLEARWINDOW" |
>GrClearWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> exposeflag); |
void <A |
HREF="nano-x-window.html#GRCLOSEWINDOW" |
>GrCloseWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid); |
void <A |
HREF="nano-x-window.html#GRKILLWINDOW" |
>GrKillWindow</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN213" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN216" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN218" |
></A |
><H3 |
><A |
NAME="GRNEWWINDOW" |
></A |
>GrNewWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> GrNewWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> parent, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> bordersize, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> background, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> bordercolor);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Create a new window with the specified parent and window attributes.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>parent</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the new window relative to the parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the new window relative to the parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the new window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the new window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>bordersize</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the window border</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>background</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour of the window background</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>bordercolor</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the colour of the window border</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created window</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN274" |
></A |
><H3 |
><A |
NAME="GRNEWPIXMAP" |
></A |
>GrNewPixmap ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> GrNewPixmap (<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height, |
void *addr);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Create a new server side pixmap (an offscreen drawing area which can be |
copied into a window using a GrCopyArea call) of the specified width and |
height.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the pixmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the pixmap</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>addr</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> currently unused in client/server mode</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created pixmap</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN304" |
></A |
><H3 |
><A |
NAME="GRNEWINPUTWINDOW" |
></A |
>GrNewInputWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> GrNewInputWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> parent, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Create a new input-only window with the specified dimensions which is a |
child of the specified parent window.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>parent</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to use as the parent of the new window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate of the new window relative to the parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate of the new window relative to the parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width of the new window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height of the new window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the newly created window</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN345" |
></A |
><H3 |
><A |
NAME="GRDESTROYWINDOW" |
></A |
>GrDestroyWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDestroyWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Recursively unmaps and frees the data structures associated with the |
specified window and all of its children.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to destroy</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN361" |
></A |
><H3 |
><A |
NAME="GRMAPWINDOW" |
></A |
>GrMapWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrMapWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Recursively maps (makes visible) the specified window and all of the |
child windows which have a sufficient map count. The border and background |
of the window are painted, and an exposure event is generated for the |
window and every child which becomes visible.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to map</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN377" |
></A |
><H3 |
><A |
NAME="GRUNMAPWINDOW" |
></A |
>GrUnmapWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrUnmapWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Recursively unmaps (makes invisible) the specified window and all of the |
child windows.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to unmap</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN393" |
></A |
><H3 |
><A |
NAME="GRRAISEWINDOW" |
></A |
>GrRaiseWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrRaiseWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Places the specified window at the top of its parents drawing stack, above |
all of its sibling windows.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to raise</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN409" |
></A |
><H3 |
><A |
NAME="GRLOWERWINDOW" |
></A |
>GrLowerWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrLowerWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Places the specified window at the bottom of its parents drawing stack, |
below all of its sibling windows.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to lower</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN425" |
></A |
><H3 |
><A |
NAME="GRMOVEWINDOW" |
></A |
>GrMoveWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrMoveWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Moves the specified window to the specified position relative to its |
parent window.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to move</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to move the window to relative to its parent.</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to move the window to relative to its parent.</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN451" |
></A |
><H3 |
><A |
NAME="GRRESIZEWINDOW" |
></A |
>GrResizeWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrResizeWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> width, |
<GTKDOCLINK |
HREF="GR-SIZE-CAPS" |
>GR_SIZE</GTKDOCLINK |
> height);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Resizes the specified window to be the specified width and height.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to resize</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>width</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the width to resize the window to</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the height to resize the window to</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN477" |
></A |
><H3 |
><A |
NAME="GRREPARENTWINDOW" |
></A |
>GrReparentWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrReparentWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> pwid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> x, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> y);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the parent window of the specified window to the specified parent |
window and places it at the specified coordinates relative to the new |
parent.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to reparent</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pwid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the new parent window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>x</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the X coordinate to place the window at relative to the new parent</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>y</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the Y coordinate to place the window at relative to the new parent</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN508" |
></A |
><H3 |
><A |
NAME="GRGETWINDOWINFO" |
></A |
>GrGetWindowInfo ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetWindowInfo (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-INFO-CAPS" |
>GR_WINDOW_INFO</GTKDOCLINK |
> *infoptr);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in a GR_WINDOW_INFO structure with information regarding the window |
with the specified window ID.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to retrieve information about</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>infoptr</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_WINDOW_INFO structure to return the information in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN529" |
></A |
><H3 |
><A |
NAME="GRSETWMPROPERTIES" |
></A |
>GrSetWMProperties ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetWMProperties (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WM-PROPERTIES-CAPS" |
>GR_WM_PROPERTIES</GTKDOCLINK |
> *props);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Copies the provided GR_WM_PROPERTIES structure into the the GR_WM_PROPERTIES |
structure of the specified window id.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the WM properties of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>props</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_WM_PROPERTIES structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN550" |
></A |
><H3 |
><A |
NAME="GRGETWMPROPERTIES" |
></A |
>GrGetWMProperties ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetWMProperties (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WM-PROPERTIES-CAPS" |
>GR_WM_PROPERTIES</GTKDOCLINK |
> *props);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Reads the GR_WM_PROPERTIES structure for the window with the specified |
id and fills in the provided structure with the information. |
It is the callers responsibility to free the title member as it is allocated |
dynamically. The title field will be set to NULL if the window has no title.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to retreive the WM properties of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>props</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_WM_PROPERTIES structure to fill in</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN571" |
></A |
><H3 |
><A |
NAME="GRSETFOCUS" |
></A |
>GrSetFocus ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetFocus (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the keyboard focus to the specified window.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the focus to</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN587" |
></A |
><H3 |
><A |
NAME="GRGETFOCUS" |
></A |
>GrGetFocus ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> GrGetFocus (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
></P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window which currently has the keyboard focus</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN603" |
></A |
><H3 |
><A |
NAME="GRSETBORDERCOLOR" |
></A |
>GrSetBorderColor ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetBorderColor (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-COLOR-CAPS" |
>GR_COLOR</GTKDOCLINK |
> color);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the border colour of the specified window to the specified colour.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the border colour of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>color</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN624" |
></A |
><H3 |
><A |
NAME="GRSETBACKGROUNDPIXMAP" |
></A |
>GrSetBackgroundPixmap ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetBackgroundPixmap (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> pixmap, |
int flags);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the background of the specified window to the specified pixmap. |
The flags which specify how to draw the pixmap (in the top left of the |
window, in the centre of the window, tiled, etc.) are those which start with |
GR_BACKGROUND_ in nano-X.h. If the pixmap value is 0, the server will |
disable the background pixmap and return to using a solid colour fill.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of the window to set the background of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>pixmap</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of the pixmap to use as the background</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> flags specifying how to draw the pixmap onto the window</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN649" |
></A |
><H3 |
><A |
NAME="GRCLEARWINDOW" |
></A |
>GrClearWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrClearWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-BOOL-CAPS" |
>GR_BOOL</GTKDOCLINK |
> exposeflag);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Clears the specified window by setting it to its background color. |
If the exposeflag parameter is non zero, an exposure event is generated for |
the window after it has been cleared.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to clear</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>exposeflag</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> a flag indicating whether to also generate an exposure event</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN670" |
></A |
><H3 |
><A |
NAME="GRCLOSEWINDOW" |
></A |
>GrCloseWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrCloseWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sends a CLOSE_REQ event to the specified window if the client has selected |
to receive CLOSE_REQ events on this window. Used to request an application |
to shut down but not force it to do so immediately, so the application can |
ask whether to save changed files before shutting down cleanly.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to send the CLOSE_REQ event to</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN686" |
></A |
><H3 |
><A |
NAME="GRKILLWINDOW" |
></A |
>GrKillWindow ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrKillWindow (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Forcibly disconnects the client which owns this window with the specified |
ID number. Used to kill an application which has locked up and is not |
responding to CLOSE_REQ events.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to kill</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-general.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-graphics.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>general</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>graphics</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<ANCHOR id ="NANO-X-GENERAL" href="--module=nano-X/nano-x-general.html"> |
<ANCHOR id ="GRFLUSH" href="--module=nano-X/nano-x-general.html#GRFLUSH"> |
<ANCHOR id ="GROPEN" href="--module=nano-X/nano-x-general.html#GROPEN"> |
<ANCHOR id ="GRCLOSE" href="--module=nano-X/nano-x-general.html#GRCLOSE"> |
<ANCHOR id ="GRMAINLOOP" href="--module=nano-X/nano-x-general.html#GRMAINLOOP"> |
<ANCHOR id ="GRGETSCREENINFO" href="--module=nano-X/nano-x-general.html#GRGETSCREENINFO"> |
<ANCHOR id ="GRSETERRORHANDLER" href="--module=nano-X/nano-x-general.html#GRSETERRORHANDLER"> |
<ANCHOR id ="GRDEFAULTERRORHANDLER" href="--module=nano-X/nano-x-general.html#GRDEFAULTERRORHANDLER"> |
<ANCHOR id ="NANO-X-WINDOW" href="--module=nano-X/nano-x-window.html"> |
<ANCHOR id ="GRNEWWINDOW" href="--module=nano-X/nano-x-window.html#GRNEWWINDOW"> |
<ANCHOR id ="GRNEWPIXMAP" href="--module=nano-X/nano-x-window.html#GRNEWPIXMAP"> |
<ANCHOR id ="GRNEWINPUTWINDOW" href="--module=nano-X/nano-x-window.html#GRNEWINPUTWINDOW"> |
<ANCHOR id ="GRDESTROYWINDOW" href="--module=nano-X/nano-x-window.html#GRDESTROYWINDOW"> |
<ANCHOR id ="GRMAPWINDOW" href="--module=nano-X/nano-x-window.html#GRMAPWINDOW"> |
<ANCHOR id ="GRUNMAPWINDOW" href="--module=nano-X/nano-x-window.html#GRUNMAPWINDOW"> |
<ANCHOR id ="GRRAISEWINDOW" href="--module=nano-X/nano-x-window.html#GRRAISEWINDOW"> |
<ANCHOR id ="GRLOWERWINDOW" href="--module=nano-X/nano-x-window.html#GRLOWERWINDOW"> |
<ANCHOR id ="GRMOVEWINDOW" href="--module=nano-X/nano-x-window.html#GRMOVEWINDOW"> |
<ANCHOR id ="GRRESIZEWINDOW" href="--module=nano-X/nano-x-window.html#GRRESIZEWINDOW"> |
<ANCHOR id ="GRREPARENTWINDOW" href="--module=nano-X/nano-x-window.html#GRREPARENTWINDOW"> |
<ANCHOR id ="GRGETWINDOWINFO" href="--module=nano-X/nano-x-window.html#GRGETWINDOWINFO"> |
<ANCHOR id ="GRSETWMPROPERTIES" href="--module=nano-X/nano-x-window.html#GRSETWMPROPERTIES"> |
<ANCHOR id ="GRGETWMPROPERTIES" href="--module=nano-X/nano-x-window.html#GRGETWMPROPERTIES"> |
<ANCHOR id ="GRSETFOCUS" href="--module=nano-X/nano-x-window.html#GRSETFOCUS"> |
<ANCHOR id ="GRGETFOCUS" href="--module=nano-X/nano-x-window.html#GRGETFOCUS"> |
<ANCHOR id ="GRSETBORDERCOLOR" href="--module=nano-X/nano-x-window.html#GRSETBORDERCOLOR"> |
<ANCHOR id ="GRSETBACKGROUNDPIXMAP" href="--module=nano-X/nano-x-window.html#GRSETBACKGROUNDPIXMAP"> |
<ANCHOR id ="GRCLEARWINDOW" href="--module=nano-X/nano-x-window.html#GRCLEARWINDOW"> |
<ANCHOR id ="GRCLOSEWINDOW" href="--module=nano-X/nano-x-window.html#GRCLOSEWINDOW"> |
<ANCHOR id ="GRKILLWINDOW" href="--module=nano-X/nano-x-window.html#GRKILLWINDOW"> |
<ANCHOR id ="NANO-X-GRAPHICS" href="--module=nano-X/nano-x-graphics.html"> |
<ANCHOR id ="GRNEWGC" href="--module=nano-X/nano-x-graphics.html#GRNEWGC"> |
<ANCHOR id ="GRCOPYGC" href="--module=nano-X/nano-x-graphics.html#GRCOPYGC"> |
<ANCHOR id ="GRGETGCINFO" href="--module=nano-X/nano-x-graphics.html#GRGETGCINFO"> |
<ANCHOR id ="GRDESTROYGC" href="--module=nano-X/nano-x-graphics.html#GRDESTROYGC"> |
<ANCHOR id ="GRLINE" href="--module=nano-X/nano-x-graphics.html#GRLINE"> |
<ANCHOR id ="GRPOINT" href="--module=nano-X/nano-x-graphics.html#GRPOINT"> |
<ANCHOR id ="GRPOINTS" href="--module=nano-X/nano-x-graphics.html#GRPOINTS"> |
<ANCHOR id ="GRRECT" href="--module=nano-X/nano-x-graphics.html#GRRECT"> |
<ANCHOR id ="GRFILLRECT" href="--module=nano-X/nano-x-graphics.html#GRFILLRECT"> |
<ANCHOR id ="GRPOLY" href="--module=nano-X/nano-x-graphics.html#GRPOLY"> |
<ANCHOR id ="GRFILLPOLY" href="--module=nano-X/nano-x-graphics.html#GRFILLPOLY"> |
<ANCHOR id ="GRELLIPSE" href="--module=nano-X/nano-x-graphics.html#GRELLIPSE"> |
<ANCHOR id ="GRFILLELLIPSE" href="--module=nano-X/nano-x-graphics.html#GRFILLELLIPSE"> |
<ANCHOR id ="GRARC" href="--module=nano-X/nano-x-graphics.html#GRARC"> |
<ANCHOR id ="GRARCANGLE" href="--module=nano-X/nano-x-graphics.html#GRARCANGLE"> |
<ANCHOR id ="GRSETGCFOREGROUND" href="--module=nano-X/nano-x-graphics.html#GRSETGCFOREGROUND"> |
<ANCHOR id ="GRSETGCBACKGROUND" href="--module=nano-X/nano-x-graphics.html#GRSETGCBACKGROUND"> |
<ANCHOR id ="GRSETGCUSEBACKGROUND" href="--module=nano-X/nano-x-graphics.html#GRSETGCUSEBACKGROUND"> |
<ANCHOR id ="GRSETGCMODE" href="--module=nano-X/nano-x-graphics.html#GRSETGCMODE"> |
<ANCHOR id ="GRSETGCFONT" href="--module=nano-X/nano-x-graphics.html#GRSETGCFONT"> |
<ANCHOR id ="GRGETGCTEXTSIZE" href="--module=nano-X/nano-x-graphics.html#GRGETGCTEXTSIZE"> |
<ANCHOR id ="GRREADAREA" href="--module=nano-X/nano-x-graphics.html#GRREADAREA"> |
<ANCHOR id ="GRAREA" href="--module=nano-X/nano-x-graphics.html#GRAREA"> |
<ANCHOR id ="GRCOPYAREA" href="--module=nano-X/nano-x-graphics.html#GRCOPYAREA"> |
<ANCHOR id ="GRBITMAP" href="--module=nano-X/nano-x-graphics.html#GRBITMAP"> |
<ANCHOR id ="GRFREEIMAGE" href="--module=nano-X/nano-x-graphics.html#GRFREEIMAGE"> |
<ANCHOR id ="GRGETIMAGEINFO" href="--module=nano-X/nano-x-graphics.html#GRGETIMAGEINFO"> |
<ANCHOR id ="GRDRAWIMAGEFROMFILE" href="--module=nano-X/nano-x-graphics.html#GRDRAWIMAGEFROMFILE"> |
<ANCHOR id ="GRLOADIMAGEFROMFILE" href="--module=nano-X/nano-x-graphics.html#GRLOADIMAGEFROMFILE"> |
<ANCHOR id ="GRDRAWIMAGETOFIT" href="--module=nano-X/nano-x-graphics.html#GRDRAWIMAGETOFIT"> |
<ANCHOR id ="GRDRAWIMAGEBITS" href="--module=nano-X/nano-x-graphics.html#GRDRAWIMAGEBITS"> |
<ANCHOR id ="GRTEXT" href="--module=nano-X/nano-x-graphics.html#GRTEXT"> |
<ANCHOR id ="NANO-X-EVENTS" href="--module=nano-X/nano-x-events.html"> |
<ANCHOR id ="GRSELECTEVENTS" href="--module=nano-X/nano-x-events.html#GRSELECTEVENTS"> |
<ANCHOR id ="GRGETNEXTEVENT" href="--module=nano-X/nano-x-events.html#GRGETNEXTEVENT"> |
<ANCHOR id ="GRGETNEXTEVENTTIMEOUT" href="--module=nano-X/nano-x-events.html#GRGETNEXTEVENTTIMEOUT"> |
<ANCHOR id ="GRCHECKNEXTEVENT" href="--module=nano-X/nano-x-events.html#GRCHECKNEXTEVENT"> |
<ANCHOR id ="GRPEEKEVENT" href="--module=nano-X/nano-x-events.html#GRPEEKEVENT"> |
<ANCHOR id ="NANO-X-FONTS" href="--module=nano-X/nano-x-fonts.html"> |
<ANCHOR id ="GRCREATEFONT" href="--module=nano-X/nano-x-fonts.html#GRCREATEFONT"> |
<ANCHOR id ="GRSETFONTSIZE" href="--module=nano-X/nano-x-fonts.html#GRSETFONTSIZE"> |
<ANCHOR id ="GRSETFONTROTATION" href="--module=nano-X/nano-x-fonts.html#GRSETFONTROTATION"> |
<ANCHOR id ="GRSETFONTATTR" href="--module=nano-X/nano-x-fonts.html#GRSETFONTATTR"> |
<ANCHOR id ="GRDESTROYFONT" href="--module=nano-X/nano-x-fonts.html#GRDESTROYFONT"> |
<ANCHOR id ="GRGETFONTINFO" href="--module=nano-X/nano-x-fonts.html#GRGETFONTINFO"> |
<ANCHOR id ="NANO-X-POINTER" href="--module=nano-X/nano-x-pointer.html"> |
<ANCHOR id ="GRSETCURSOR" href="--module=nano-X/nano-x-pointer.html#GRSETCURSOR"> |
<ANCHOR id ="GRMOVECURSOR" href="--module=nano-X/nano-x-pointer.html#GRMOVECURSOR"> |
<ANCHOR id ="GRINJECTPOINTEREVENT" href="--module=nano-X/nano-x-pointer.html#GRINJECTPOINTEREVENT"> |
<ANCHOR id ="NANO-X-COLOURS" href="--module=nano-X/nano-x-colours.html"> |
<ANCHOR id ="GRGETSYSTEMPALETTE" href="--module=nano-X/nano-x-colours.html#GRGETSYSTEMPALETTE"> |
<ANCHOR id ="GRSETSYSTEMPALETTE" href="--module=nano-X/nano-x-colours.html#GRSETSYSTEMPALETTE"> |
<ANCHOR id ="GRFINDCOLOR" href="--module=nano-X/nano-x-colours.html#GRFINDCOLOR"> |
<ANCHOR id ="GRGETSYSCOLOR" href="--module=nano-X/nano-x-colours.html#GRGETSYSCOLOR"> |
<ANCHOR id ="NANO-X-REGIONS" href="--module=nano-X/nano-x-regions.html"> |
<ANCHOR id ="GRNEWREGION" href="--module=nano-X/nano-x-regions.html#GRNEWREGION"> |
<ANCHOR id ="GRDESTROYREGION" href="--module=nano-X/nano-x-regions.html#GRDESTROYREGION"> |
<ANCHOR id ="GRUNIONRECTWITHREGION" href="--module=nano-X/nano-x-regions.html#GRUNIONRECTWITHREGION"> |
<ANCHOR id ="GRUNIONREGION" href="--module=nano-X/nano-x-regions.html#GRUNIONREGION"> |
<ANCHOR id ="GRSUBTRACTREGION" href="--module=nano-X/nano-x-regions.html#GRSUBTRACTREGION"> |
<ANCHOR id ="GRXORREGION" href="--module=nano-X/nano-x-regions.html#GRXORREGION"> |
<ANCHOR id ="GRINTERSECTREGION" href="--module=nano-X/nano-x-regions.html#GRINTERSECTREGION"> |
<ANCHOR id ="GRSETGCREGION" href="--module=nano-X/nano-x-regions.html#GRSETGCREGION"> |
<ANCHOR id ="GRPOINTINREGION" href="--module=nano-X/nano-x-regions.html#GRPOINTINREGION"> |
<ANCHOR id ="GRRECTINREGION" href="--module=nano-X/nano-x-regions.html#GRRECTINREGION"> |
<ANCHOR id ="GREMPTYREGION" href="--module=nano-X/nano-x-regions.html#GREMPTYREGION"> |
<ANCHOR id ="GREQUALREGION" href="--module=nano-X/nano-x-regions.html#GREQUALREGION"> |
<ANCHOR id ="GROFFSETREGION" href="--module=nano-X/nano-x-regions.html#GROFFSETREGION"> |
<ANCHOR id ="GRGETREGIONBOX" href="--module=nano-X/nano-x-regions.html#GRGETREGIONBOX"> |
<ANCHOR id ="GRNEWPOLYGONREGION" href="--module=nano-X/nano-x-regions.html#GRNEWPOLYGONREGION"> |
<ANCHOR id ="NANO-X-SELECTIONS" href="--module=nano-X/nano-x-selections.html"> |
<ANCHOR id ="GRSETSELECTIONOWNER" href="--module=nano-X/nano-x-selections.html#GRSETSELECTIONOWNER"> |
<ANCHOR id ="GRGETSELECTIONOWNER" href="--module=nano-X/nano-x-selections.html#GRGETSELECTIONOWNER"> |
<ANCHOR id ="GRREQUESTCLIENTDATA" href="--module=nano-X/nano-x-selections.html#GRREQUESTCLIENTDATA"> |
<ANCHOR id ="GRSENDCLIENTDATA" href="--module=nano-X/nano-x-selections.html#GRSENDCLIENTDATA"> |
<ANCHOR id ="NANO-X-MISC" href="--module=nano-X/nano-x-misc.html"> |
<ANCHOR id ="GRREQSHMCMDS" href="--module=nano-X/nano-x-misc.html#GRREQSHMCMDS"> |
<ANCHOR id ="GRINJECTKEYBOARDEVENT" href="--module=nano-X/nano-x-misc.html#GRINJECTKEYBOARDEVENT"> |
<ANCHOR id ="GRREGISTERINPUT" href="--module=nano-X/nano-x-misc.html#GRREGISTERINPUT"> |
<ANCHOR id ="GRPREPARESELECT" href="--module=nano-X/nano-x-misc.html#GRPREPARESELECT"> |
<ANCHOR id ="GRSERVICESELECT" href="--module=nano-X/nano-x-misc.html#GRSERVICESELECT"> |
<ANCHOR id ="GRBELL" href="--module=nano-X/nano-x-misc.html#GRBELL"> |
<ANCHOR id ="GRSETSCREENSAVERTIMEOUT" href="--module=nano-X/nano-x-misc.html#GRSETSCREENSAVERTIMEOUT"> |
<HTML |
><HEAD |
><TITLE |
>selections</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="regions" |
HREF="nano-x-regions.html"><LINK |
REL="NEXT" |
TITLE="misc" |
HREF="nano-x-misc.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-regions.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-misc.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>selections</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN2977" |
></A |
><H2 |
>Name</H2 |
>selections — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN2980" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-selections.html#GRSETSELECTIONOWNER" |
>GrSetSelectionOwner</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> *typelist); |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> <A |
HREF="nano-x-selections.html#GRGETSELECTIONOWNER" |
>GrGetSelectionOwner</A |
> (<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> **typelist); |
void <A |
HREF="nano-x-selections.html#GRREQUESTCLIENTDATA" |
>GrRequestClientData</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> rid, |
<GTKDOCLINK |
HREF="GR-SERIALNO-CAPS" |
>GR_SERIALNO</GTKDOCLINK |
> serial, |
<GTKDOCLINK |
HREF="GR-MIMETYPE-CAPS" |
>GR_MIMETYPE</GTKDOCLINK |
> mimetype); |
void <A |
HREF="nano-x-selections.html#GRSENDCLIENTDATA" |
>GrSendClientData</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> did, |
<GTKDOCLINK |
HREF="GR-SERIALNO-CAPS" |
>GR_SERIALNO</GTKDOCLINK |
> serial, |
<GTKDOCLINK |
HREF="GR-LENGTH-CAPS" |
>GR_LENGTH</GTKDOCLINK |
> len, |
<GTKDOCLINK |
HREF="GR-LENGTH-CAPS" |
>GR_LENGTH</GTKDOCLINK |
> thislen, |
void *data);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN3000" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN3003" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3005" |
></A |
><H3 |
><A |
NAME="GRSETSELECTIONOWNER" |
></A |
>GrSetSelectionOwner ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetSelectionOwner (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> *typelist);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the current selection (otherwise known as the clipboard) ownership |
to the specified window. Specifying an owner of 0 disowns the selection. |
The typelist argument is a list of mime types (seperated by space |
characters) which the window is able to supply the data as. At least one |
type must be specified unless you are disowning the selection (typically |
text/plain for plain ASCII text or text/uri-list for a filename).</P |
><P |
>The window which owns the current selection must be prepared to handle |
SELECTION_LOST events (received when another window takes ownership of the |
selection) and CLIENT_DATA_REQ events (received when a client wishes to |
retreive the selection data).</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to set the selection owner to</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>typelist</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> list of mime types selection data can be supplied as</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3027" |
></A |
><H3 |
><A |
NAME="GRGETSELECTIONOWNER" |
></A |
>GrGetSelectionOwner ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> GrGetSelectionOwner (<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> **typelist);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Finds the window which currently owns the selection and returns its ID, |
or 0 if no window currently owns the selection. A pointer to the list of |
mime types the selection owner is capable of supplying is placed in the |
pointer specified by the typelist argument. The typelist is null terminated, |
and the fields are seperated by space characters. It is the callers |
responsibility to free the typelist string, as it is allocated dynamically. |
If the allocation fails, it will be set to a NULL pointer, so remember to |
check the value of it before using it.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>typelist</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer used to return the list of available mime types </TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window which currently owns the selection, or 0</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3048" |
></A |
><H3 |
><A |
NAME="GRREQUESTCLIENTDATA" |
></A |
>GrRequestClientData ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrRequestClientData (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> rid, |
<GTKDOCLINK |
HREF="GR-SERIALNO-CAPS" |
>GR_SERIALNO</GTKDOCLINK |
> serial, |
<GTKDOCLINK |
HREF="GR-MIMETYPE-CAPS" |
>GR_MIMETYPE</GTKDOCLINK |
> mimetype);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sends a CLIENT_DATA_REQ event to the specified window. Used for requesting |
both selection and "drag and drop" data. The mimetype argument specifies |
the format of the data you would like to receive, as an index into the list |
returned by GrGetSelectionOwner (the first type in the list is index 0). |
The server makes no guarantees as to when, or even if, the client will |
reply to the request. If the client does reply, the reply will take the |
form of one or more CLIENT_DATA events. The request serial number is |
typically a unique ID which the client can assign to a request in order for |
it to be able to keep track of transfers (CLIENT_DATA events contain the |
same number in the sid field). Remember to free the data field of the |
CLIENT_DATA events as they are dynamically allocated. Also note that if |
the allocation fails the data field will be set to NULL, so you should |
check the value before using it.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window requesting the data</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window to request the data from</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>serial</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the serial number of the request</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>mimetype</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of the desired mime type to request</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3079" |
></A |
><H3 |
><A |
NAME="GRSENDCLIENTDATA" |
></A |
>GrSendClientData ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSendClientData (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> did, |
<GTKDOCLINK |
HREF="GR-SERIALNO-CAPS" |
>GR_SERIALNO</GTKDOCLINK |
> serial, |
<GTKDOCLINK |
HREF="GR-LENGTH-CAPS" |
>GR_LENGTH</GTKDOCLINK |
> len, |
<GTKDOCLINK |
HREF="GR-LENGTH-CAPS" |
>GR_LENGTH</GTKDOCLINK |
> thislen, |
void *data);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Used as the response to a CLIENT_DATA_REQ event. Sends the specified data |
of the specified length to the specified window using the specified source |
window ID and transfer serial number. Any fragmentation of the data into |
multiple CLIENT_DATA events which is required is handled automatically. |
The serial number should always be set to the value supplied by the |
CLIENT_DATA_REQ event. The thislen parameter is used internally to split |
the data up into packets. It should be set to the same value as the len |
parameter.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the window sending the data</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>did</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the destination window</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>serial</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>len</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of bytes of data to transfer</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>thislen</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of bytes in this packet</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>data</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the data to transfer</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-regions.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-misc.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>regions</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>misc</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>Nano-X API Reference Manual</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="NEXT" |
TITLE="libnano-X" |
HREF="libnano-x.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="BOOK" |
><DIV |
CLASS="TITLEPAGE" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
ALIGN="center" |
VALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="7" |
><P |
CLASS="TITLE" |
><A |
NAME="AEN2" |
>Nano-X API Reference Manual</A |
></P |
></FONT |
></TH |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="TOC" |
><DL |
><DT |
><B |
>Table of Contents</B |
></DT |
><DT |
><A |
HREF="libnano-x.html" |
>libnano-X</A |
></DT |
><DD |
><DL |
><DT |
><A |
HREF="nano-x-general.html" |
>general</A |
> — </DT |
><DT |
><A |
HREF="nano-x-window.html" |
>window</A |
> — </DT |
><DT |
><A |
HREF="nano-x-graphics.html" |
>graphics</A |
> — </DT |
><DT |
><A |
HREF="nano-x-events.html" |
>events</A |
> — </DT |
><DT |
><A |
HREF="nano-x-fonts.html" |
>fonts</A |
> — </DT |
><DT |
><A |
HREF="nano-x-pointer.html" |
>pointer</A |
> — </DT |
><DT |
><A |
HREF="nano-x-colours.html" |
>colours</A |
> — </DT |
><DT |
><A |
HREF="nano-x-regions.html" |
>regions</A |
> — </DT |
><DT |
><A |
HREF="nano-x-selections.html" |
>selections</A |
> — </DT |
><DT |
><A |
HREF="nano-x-misc.html" |
>misc</A |
> — </DT |
></DL |
></DD |
></DL |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
> </TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
> </B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
> </B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
> </TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>libnano-X</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>libnano-X</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="PREVIOUS" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="NEXT" |
TITLE="general" |
HREF="nano-x-general.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
> </B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-general.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="CHAPTER" |
><H1 |
><A |
NAME="LIBNANO-X" |
>libnano-X</A |
></H1 |
><DIV |
CLASS="TOC" |
><DL |
><DT |
><B |
>Table of Contents</B |
></DT |
><DT |
><A |
HREF="nano-x-general.html" |
>general</A |
> — </DT |
><DT |
><A |
HREF="nano-x-window.html" |
>window</A |
> — </DT |
><DT |
><A |
HREF="nano-x-graphics.html" |
>graphics</A |
> — </DT |
><DT |
><A |
HREF="nano-x-events.html" |
>events</A |
> — </DT |
><DT |
><A |
HREF="nano-x-fonts.html" |
>fonts</A |
> — </DT |
><DT |
><A |
HREF="nano-x-pointer.html" |
>pointer</A |
> — </DT |
><DT |
><A |
HREF="nano-x-colours.html" |
>colours</A |
> — </DT |
><DT |
><A |
HREF="nano-x-regions.html" |
>regions</A |
> — </DT |
><DT |
><A |
HREF="nano-x-selections.html" |
>selections</A |
> — </DT |
><DT |
><A |
HREF="nano-x-misc.html" |
>misc</A |
> — </DT |
></DL |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
> </B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-general.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Nano-X API Reference Manual</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>general</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>fonts</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="events" |
HREF="nano-x-events.html"><LINK |
REL="NEXT" |
TITLE="pointer" |
HREF="nano-x-pointer.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-events.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-pointer.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>fonts</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN2120" |
></A |
><H2 |
>Name</H2 |
>fonts — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN2123" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> <A |
HREF="nano-x-fonts.html#GRCREATEFONT" |
>GrCreateFont</A |
> (<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> *name, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-LOGFONT-CAPS" |
>GR_LOGFONT</GTKDOCLINK |
> *plogfont); |
void <A |
HREF="nano-x-fonts.html#GRSETFONTSIZE" |
>GrSetFontSize</A |
> (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> size); |
void <A |
HREF="nano-x-fonts.html#GRSETFONTROTATION" |
>GrSetFontRotation</A |
> (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
int tenthsdegrees); |
void <A |
HREF="nano-x-fonts.html#GRSETFONTATTR" |
>GrSetFontAttr</A |
> (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
int setflags, |
int clrflags); |
void <A |
HREF="nano-x-fonts.html#GRDESTROYFONT" |
>GrDestroyFont</A |
> (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid); |
void <A |
HREF="nano-x-fonts.html#GRGETFONTINFO" |
>GrGetFontInfo</A |
> (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> font, |
<GTKDOCLINK |
HREF="GR-FONT-INFO-CAPS" |
>GR_FONT_INFO</GTKDOCLINK |
> *fip);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2143" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN2146" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2148" |
></A |
><H3 |
><A |
NAME="GRCREATEFONT" |
></A |
>GrCreateFont ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> GrCreateFont (<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> *name, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> height, |
<GTKDOCLINK |
HREF="GR-LOGFONT-CAPS" |
>GR_LOGFONT</GTKDOCLINK |
> *plogfont);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Attempts to locate a font with the desired attributes and returns a font |
ID number which can be used to refer to it. If the plogfont argument is |
not NULL, the values in that structure will be used to choose a font. |
Otherwise, if the height is non zero, the built in font with the closest |
height to that specified will be used. If the height is zero, the built |
in font with the specified name will be used. If the desired font is not |
found, the first built in font will be returned as a last resort.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>name</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> string containing the name of a built in font to look for</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>height</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the desired height of the font</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>plogfont</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a LOGFONT structure</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> a font ID number which can be used to refer to the font</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2179" |
></A |
><H3 |
><A |
NAME="GRSETFONTSIZE" |
></A |
>GrSetFontSize ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetFontSize (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
<GTKDOCLINK |
HREF="GR-COORD-CAPS" |
>GR_COORD</GTKDOCLINK |
> size);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the size of the specified font to the specified size.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fontid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID number of the font to change the size of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>size</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2200" |
></A |
><H3 |
><A |
NAME="GRSETFONTROTATION" |
></A |
>GrSetFontRotation ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetFontRotation (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
int tenthsdegrees);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the rotation of the specified font to the specified angle.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fontid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID number of the font to rotate</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>tenthsdegrees</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2220" |
></A |
><H3 |
><A |
NAME="GRSETFONTATTR" |
></A |
>GrSetFontAttr ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetFontAttr (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid, |
int setflags, |
int clrflags);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Changes the attributes (GR_TFKERNING, GR_TFANTIALIAS, GR_TFUNDERLINE, etc.) |
of the specified font according to the set and clear mask arguments.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fontid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the font to set the attributes of</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>setflags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> mask specifying attribute flags to set</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>clrflags</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> mask specifying attribute flags to clear</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2244" |
></A |
><H3 |
><A |
NAME="GRDESTROYFONT" |
></A |
>GrDestroyFont ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDestroyFont (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> fontid);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Frees all resources associated with the specified font ID, and if the font |
is a non built in type and this is the last ID referring to it, unloads the |
font from memory.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fontid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the ID of the font to destroy</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN2260" |
></A |
><H3 |
><A |
NAME="GRGETFONTINFO" |
></A |
>GrGetFontInfo ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetFontInfo (<GTKDOCLINK |
HREF="GR-FONT-ID-CAPS" |
>GR_FONT_ID</GTKDOCLINK |
> font, |
<GTKDOCLINK |
HREF="GR-FONT-INFO-CAPS" |
>GR_FONT_INFO</GTKDOCLINK |
> *fip);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified GR_FONT_INFO structure with information regarding |
the specified font.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>font</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fip</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_FONT_INFO structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-events.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-pointer.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>events</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>pointer</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>misc</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="selections" |
HREF="nano-x-selections.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-selections.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
> </TD |
></TR |
></TABLE |
></DIV |
><H1 |
>misc</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN3124" |
></A |
><H2 |
>Name</H2 |
>misc — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN3127" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-misc.html#GRREQSHMCMDS" |
>GrReqShmCmds</A |
> (<GTKDOCLINK |
HREF="LONG" |
>long</GTKDOCLINK |
> shmsize); |
void <A |
HREF="nano-x-misc.html#GRINJECTKEYBOARDEVENT" |
>GrInjectKeyboardEvent</A |
> (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-UNICODE-CAPS" |
>GR_UNICODE</GTKDOCLINK |
> uch, |
<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> ch, |
int modif, |
int special, |
unsigned char content); |
void <A |
HREF="nano-x-misc.html#GRREGISTERINPUT" |
>GrRegisterInput</A |
> (int fd); |
void <A |
HREF="nano-x-misc.html#GRPREPARESELECT" |
>GrPrepareSelect</A |
> (int *maxfd, |
void *rfdset); |
void <A |
HREF="nano-x-misc.html#GRSERVICESELECT" |
>GrServiceSelect</A |
> (void *rfdset, |
<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb); |
void <A |
HREF="nano-x-misc.html#GRBELL" |
>GrBell</A |
> (void); |
void <A |
HREF="nano-x-misc.html#GRSETSCREENSAVERTIMEOUT" |
>GrSetScreenSaverTimeout</A |
> (<GTKDOCLINK |
HREF="GR-TIMEOUT-CAPS" |
>GR_TIMEOUT</GTKDOCLINK |
> timeout);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN3143" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN3146" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3148" |
></A |
><H3 |
><A |
NAME="GRREQSHMCMDS" |
></A |
>GrReqShmCmds ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrReqShmCmds (<GTKDOCLINK |
HREF="LONG" |
>long</GTKDOCLINK |
> shmsize);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Requests a shared memory area of the specified size to use for transferring |
command arguments. This is faster but less portable than the standard BSD |
sockets method of communication (and of course will only work if the client |
and server are on the same machine). Apart from the initial allocation of |
the area using this call, the use of shared memory is completely |
transparent. Additionally, if the allocation fails we silently and |
automatically fall back on socket communication. It is safe to call this |
function even if shared memory support is not compiled in; it will simply |
do nothing.</P |
><P |
>FIXME: how does the user decide what size of shared memory area to allocate?</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>shmsize</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the size of the shared memory area to allocate</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3165" |
></A |
><H3 |
><A |
NAME="GRINJECTKEYBOARDEVENT" |
></A |
>GrInjectKeyboardEvent ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrInjectKeyboardEvent (<GTKDOCLINK |
HREF="GR-WINDOW-ID-CAPS" |
>GR_WINDOW_ID</GTKDOCLINK |
> wid, |
<GTKDOCLINK |
HREF="GR-UNICODE-CAPS" |
>GR_UNICODE</GTKDOCLINK |
> uch, |
<GTKDOCLINK |
HREF="GR-CHAR-CAPS" |
>GR_CHAR</GTKDOCLINK |
> ch, |
int modif, |
int special, |
unsigned char content);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sends a keyboard event to the specified window, or to the window with the |
current keyboard focus if 0 is used as the ID. The other arguments |
correspond directly to the fields of the same names in the keyboard event |
structure.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>wid</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> ID of the window to send the event to, or 0</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>uch</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> 32 bit Unicode keystroke value to inject</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ch</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> 8 bit ascii keystroke value to inject</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>modif</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>special</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> special keys to inject</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>content</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> mask specifying which arguments are valid</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3203" |
></A |
><H3 |
><A |
NAME="GRREGISTERINPUT" |
></A |
>GrRegisterInput ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrRegisterInput (int fd);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Register an extra file descriptor to monitor in the main <GTKDOCLINK |
HREF="SELECT" |
>select</GTKDOCLINK |
>() call. |
An event will be returned when the fd has data waiting to be read if that |
event has been selected for.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fd</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the file descriptor to monitor</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3219" |
></A |
><H3 |
><A |
NAME="GRPREPARESELECT" |
></A |
>GrPrepareSelect ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrPrepareSelect (int *maxfd, |
void *rfdset);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Prepare for a GrServiceSelect function by asking the server to send the next |
event but not waiting around for it to arrive and initialising the |
specified fd_set structure with the client/server socket descriptor and any |
previously registered external file descriptors. Also compares the current |
contents of maxfd, the client/server socket descriptor, and the previously |
registered external file descriptors, and returns the highest of them in |
maxfd.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>maxfd</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a variable which the highest in use fd will be written to</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rfdset</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the file descriptor set structure to use</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3238" |
></A |
><H3 |
><A |
NAME="GRSERVICESELECT" |
></A |
>GrServiceSelect ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrServiceSelect (void *rfdset, |
<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Used by <A |
HREF="nano-x-general.html#GRMAINLOOP" |
>GrMainLoop</A |
>() to call the specified callback function when an |
event arrives or there is data waiting on an external fd specified by |
<A |
HREF="nano-x-misc.html#GRREGISTERINPUT" |
>GrRegisterInput</A |
>().</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>rfdset</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the file descriptor set to monitor</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fncb</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to the function to call when an event needs handling</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3260" |
></A |
><H3 |
><A |
NAME="GRBELL" |
></A |
>GrBell ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrBell (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Asks the server to ring the console bell on behalf of the client (intended |
for terminal apps to be able to ring the bell on the server even if they |
are running remotely).</P |
><P |
></P |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN3266" |
></A |
><H3 |
><A |
NAME="GRSETSCREENSAVERTIMEOUT" |
></A |
>GrSetScreenSaverTimeout ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrSetScreenSaverTimeout (<GTKDOCLINK |
HREF="GR-TIMEOUT-CAPS" |
>GR_TIMEOUT</GTKDOCLINK |
> timeout);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets the number of seconds of inactivity before a screen saver activate |
event is sent to the root window ID. A value of 0 activates the |
screen saver immediately, and a value of -1 disables the screen saver |
function.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>timeout</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the number of seconds of inactivity before screen saver activates</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="nano-x-selections.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
> </TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>selections</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
> </TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
<HTML |
><HEAD |
><TITLE |
>general</TITLE |
><META |
NAME="GENERATOR" |
CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK |
REL="HOME" |
TITLE="Nano-X API Reference Manual" |
HREF="index.html"><LINK |
REL="UP" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="PREVIOUS" |
TITLE="libnano-X" |
HREF="libnano-x.html"><LINK |
REL="NEXT" |
TITLE="window" |
HREF="nano-x-window.html"></HEAD |
><BODY |
BGCOLOR="#FFFFFF" |
TEXT="#000000" |
><DIV |
CLASS="NAVHEADER" |
><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TH |
COLSPAN="4" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="5" |
>Nano-X API Reference Manual</FONT |
></TH |
></TR |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-window.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
></TABLE |
></DIV |
><H1 |
>general</H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN11" |
></A |
><H2 |
>Name</H2 |
>general — </DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN14" |
></A |
><H2 |
>Synopsis</H2 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="SYNOPSIS" |
> |
|
void <A |
HREF="nano-x-general.html#GRFLUSH" |
>GrFlush</A |
> (void); |
int <A |
HREF="nano-x-general.html#GROPEN" |
>GrOpen</A |
> (void); |
void <A |
HREF="nano-x-general.html#GRCLOSE" |
>GrClose</A |
> (void); |
void <A |
HREF="nano-x-general.html#GRMAINLOOP" |
>GrMainLoop</A |
> (<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb); |
void <A |
HREF="nano-x-general.html#GRGETSCREENINFO" |
>GrGetScreenInfo</A |
> (<GTKDOCLINK |
HREF="GR-SCREEN-INFO-CAPS" |
>GR_SCREEN_INFO</GTKDOCLINK |
> *sip); |
<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> <A |
HREF="nano-x-general.html#GRSETERRORHANDLER" |
>GrSetErrorHandler</A |
> (<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb); |
void <A |
HREF="nano-x-general.html#GRDEFAULTERRORHANDLER" |
>GrDefaultErrorHandler</A |
> (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN29" |
></A |
><H2 |
>Description</H2 |
><P |
></P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN32" |
></A |
><H2 |
>Details</H2 |
><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN34" |
></A |
><H3 |
><A |
NAME="GRFLUSH" |
></A |
>GrFlush ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrFlush (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Flush the message buffer of any messages it may contain.</P |
><P |
></P |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN40" |
></A |
><H3 |
><A |
NAME="GROPEN" |
></A |
>GrOpen ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>int GrOpen (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Open a connection to the graphics server.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the fd of the connection to the server or -1 on failure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN55" |
></A |
><H3 |
><A |
NAME="GRCLOSE" |
></A |
>GrClose ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrClose (void);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Close the graphics device, flushing any waiting messages.</P |
><P |
></P |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN61" |
></A |
><H3 |
><A |
NAME="GRMAINLOOP" |
></A |
>GrMainLoop ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrMainLoop (<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb);</PRE |
></TD |
></TR |
></TABLE |
><P |
>A convenience function which calls the specified callback function whenever |
an event arrives or there is data to be read on a file descriptor previously |
specified by <A |
HREF="nano-x-misc.html#GRREGISTERINPUT" |
>GrRegisterInput</A |
>(). Currently never returns.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fncb</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> </TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN78" |
></A |
><H3 |
><A |
NAME="GRGETSCREENINFO" |
></A |
>GrGetScreenInfo ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrGetScreenInfo (<GTKDOCLINK |
HREF="GR-SCREEN-INFO-CAPS" |
>GR_SCREEN_INFO</GTKDOCLINK |
> *sip);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Fills in the specified GR_SCREEN_INFO structure.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>sip</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> pointer to a GR_SCREEN_INFO structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN94" |
></A |
><H3 |
><A |
NAME="GRSETERRORHANDLER" |
></A |
>GrSetErrorHandler ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
><GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> GrSetErrorHandler (<GTKDOCLINK |
HREF="GR-FNCALLBACKEVENT-CAPS" |
>GR_FNCALLBACKEVENT</GTKDOCLINK |
> fncb);</PRE |
></TD |
></TR |
></TABLE |
><P |
>Sets an error handling routine that will be called on any errors from |
the server (assuming the client has asked to receive them). If zero is |
used as the argument, errors will be returned as regular events instead.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>fncb</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the function to call to handle error events</TD |
></TR |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><I |
CLASS="EMPHASIS" |
>Returns</I |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the address of the previous error handler</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
><HR><DIV |
CLASS="REFSECT2" |
><A |
NAME="AEN115" |
></A |
><H3 |
><A |
NAME="GRDEFAULTERRORHANDLER" |
></A |
>GrDefaultErrorHandler ()</H3 |
><TABLE |
BORDER="0" |
BGCOLOR="#D6E8FF" |
WIDTH="100%" |
CELLPADDING="6" |
><TR |
><TD |
><PRE |
CLASS="PROGRAMLISTING" |
>void GrDefaultErrorHandler (<GTKDOCLINK |
HREF="GR-EVENT-CAPS" |
>GR_EVENT</GTKDOCLINK |
> *ep);</PRE |
></TD |
></TR |
></TABLE |
><P |
>The default error handler which is called when the server reports an error |
event and the client hasn't set up a handler of it's own.</P |
><P |
>Generates a human readable error message on stderr describing what error |
occurred and what function it occured in, then exits.</P |
><P |
></P |
><DIV |
CLASS="INFORMALTABLE" |
><P |
></P |
><TABLE |
BORDER="0" |
WIDTH="100%" |
BGCOLOR="#FFD0D0" |
CELLSPACING="0" |
CELLPADDING="4" |
CLASS="CALSTABLE" |
><TR |
><TD |
WIDTH="20%" |
ALIGN="RIGHT" |
VALIGN="TOP" |
><TT |
CLASS="PARAMETER" |
><I |
>ep</I |
></TT |
> :</TD |
><TD |
WIDTH="80%" |
ALIGN="LEFT" |
VALIGN="TOP" |
> the error event structure</TD |
></TR |
></TABLE |
><P |
></P |
></DIV |
></DIV |
></DIV |
><DIV |
CLASS="NAVFOOTER" |
><BR |
CLEAR="all"><BR><TABLE |
WIDTH="100%" |
BORDER="0" |
BGCOLOR="#000000" |
CELLPADDING="1" |
CELLSPACING="0" |
><TR |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="left" |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><<< Previous Page</B |
></FONT |
></A |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#0000C0" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="index.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Home</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#00C000" |
ALIGN="center" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
><A |
HREF="libnano-x.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Up</B |
></FONT |
></A |
></B |
></FONT |
></TD |
><TD |
WIDTH="25%" |
BGCOLOR="#C00000" |
ALIGN="right" |
><A |
HREF="nano-x-window.html" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>Next Page >>></B |
></FONT |
></A |
></TD |
></TR |
><TR |
><TD |
COLSPAN="2" |
ALIGN="left" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>libnano-X</B |
></FONT |
></TD |
><TD |
COLSPAN="2" |
ALIGN="right" |
><FONT |
COLOR="#FFFFFF" |
SIZE="3" |
><B |
>window</B |
></FONT |
></TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |
%!PS-Adobe-2.0 |
%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) |
%%Title: nano-X-docs.dvi |
%%Pages: 70 |
%%PageOrder: Ascend |
%%BoundingBox: 0 0 596 842 |
%%DocumentFonts: Helvetica-Bold Times-Bold Times-Roman Times-Italic |
%%+ Courier Courier-Oblique |
%%EndComments |
%DVIPSCommandLine: dvips nano-X-docs.dvi -o nano-X-docs.ps |
%DVIPSParameters: dpi=600, compressed |
%DVIPSSource: TeX output 2000.12.13:0008 |
%%BeginProcSet: texc.pro |
%! |
/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N |
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 |
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} |
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale |
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div |
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul |
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} |
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B |
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B |
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ |
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N |
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N |
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ |
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] |
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup |
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ |
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub |
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data |
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N |
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup |
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx |
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff |
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff |
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N |
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id |
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp |
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add |
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ |
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 |
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 |
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string |
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval |
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} |
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ |
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 |
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] |
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup |
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ |
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin |
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul |
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict |
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook |
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X |
/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn |
put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N |
/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley |
X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[ |
(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup |
length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} |
forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false |
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 |
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform |
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg |
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail |
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} |
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ |
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ |
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p |
a}B /bos{/SS save N}B /eos{SS restore}B end |
|
%%EndProcSet |
%%BeginProcSet: 8r.enc |
% @@psencodingfile@{ |
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", |
% version = "0.6", |
% date = "22 June 1996", |
% filename = "8r.enc", |
% email = "kb@@mail.tug.org", |
% address = "135 Center Hill Rd. // Plymouth, MA 02360", |
% codetable = "ISO/ASCII", |
% checksum = "119 662 4424", |
% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." |
% @} |
% |
% Idea is to have all the characters normally included in Type 1 fonts |
% available for typesetting. This is effectively the characters in Adobe |
% Standard Encoding + ISO Latin 1 + extra characters from Lucida. |
% |
% Character code assignments were made as follows: |
% |
% (1) the Windows ANSI characters are almost all in their Windows ANSI |
% positions, because some Windows users cannot easily reencode the |
% fonts, and it makes no difference on other systems. The only Windows |
% ANSI characters not available are those that make no sense for |
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen |
% (173). quotesingle and grave are moved just because it's such an |
% irritation not having them in TeX positions. |
% |
% (2) Remaining characters are assigned arbitrarily to the lower part |
% of the range, avoiding 0, 10 and 13 in case we meet dumb software. |
% |
% (3) Y&Y Lucida Bright includes some extra text characters; in the |
% hopes that other PostScript fonts, perhaps created for public |
% consumption, will include them, they are included starting at 0x12. |
% |
% (4) Remaining positions left undefined are for use in (hopefully) |
% upward-compatible revisions, if someday more characters are generally |
% available. |
% |
% (5) hyphen appears twice for compatibility with both ASCII and Windows. |
% |
/TeXBase1Encoding [ |
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) |
/.notdef /dotaccent /fi /fl |
/fraction /hungarumlaut /Lslash /lslash |
/ogonek /ring /.notdef |
/breve /minus /.notdef |
% These are the only two remaining unencoded characters, so may as |
% well include them. |
/Zcaron /zcaron |
% 0x10 |
/caron /dotlessi |
% (unusual TeX characters available in, e.g., Lucida Bright) |
/dotlessj /ff /ffi /ffl |
/.notdef /.notdef /.notdef /.notdef |
/.notdef /.notdef /.notdef /.notdef |
% very contentious; it's so painful not having quoteleft and quoteright |
% at 96 and 145 that we move the things normally found there down to here. |
/grave /quotesingle |
% 0x20 (ASCII begins) |
/space /exclam /quotedbl /numbersign |
/dollar /percent /ampersand /quoteright |
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash |
% 0x30 |
/zero /one /two /three /four /five /six /seven |
/eight /nine /colon /semicolon /less /equal /greater /question |
% 0x40 |
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O |
% 0x50 |
/P /Q /R /S /T /U /V /W |
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore |
% 0x60 |
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o |
% 0x70 |
/p /q /r /s /t /u /v /w |
/x /y /z /braceleft /bar /braceright /asciitilde |
/.notdef % rubout; ASCII ends |
% 0x80 |
/.notdef /.notdef /quotesinglbase /florin |
/quotedblbase /ellipsis /dagger /daggerdbl |
/circumflex /perthousand /Scaron /guilsinglleft |
/OE /.notdef /.notdef /.notdef |
% 0x90 |
/.notdef /.notdef /.notdef /quotedblleft |
/quotedblright /bullet /endash /emdash |
/tilde /trademark /scaron /guilsinglright |
/oe /.notdef /.notdef /Ydieresis |
% 0xA0 |
/.notdef % nobreakspace |
/exclamdown /cent /sterling |
/currency /yen /brokenbar /section |
/dieresis /copyright /ordfeminine /guillemotleft |
/logicalnot |
/hyphen % Y&Y (also at 45); Windows' softhyphen |
/registered |
/macron |
% 0xD0 |
/degree /plusminus /twosuperior /threesuperior |
/acute /mu /paragraph /periodcentered |
/cedilla /onesuperior /ordmasculine /guillemotright |
/onequarter /onehalf /threequarters /questiondown |
% 0xC0 |
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla |
/Egrave /Eacute /Ecircumflex /Edieresis |
/Igrave /Iacute /Icircumflex /Idieresis |
% 0xD0 |
/Eth /Ntilde /Ograve /Oacute |
/Ocircumflex /Otilde /Odieresis /multiply |
/Oslash /Ugrave /Uacute /Ucircumflex |
/Udieresis /Yacute /Thorn /germandbls |
% 0xE0 |
/agrave /aacute /acircumflex /atilde |
/adieresis /aring /ae /ccedilla |
/egrave /eacute /ecircumflex /edieresis |
/igrave /iacute /icircumflex /idieresis |
% 0xF0 |
/eth /ntilde /ograve /oacute |
/ocircumflex /otilde /odieresis /divide |
/oslash /ugrave /uacute /ucircumflex |
/udieresis /yacute /thorn /ydieresis |
] def |
|
%%EndProcSet |
%%BeginProcSet: texps.pro |
%! |
TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 |
index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll |
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics |
exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub |
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} |
ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict |
end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant |
{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 |
roll mul exch}def /ReEncodeFont{/Encoding exch def}def end |
|
%%EndProcSet |
%%BeginProcSet: special.pro |
%! |
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N |
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen |
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B |
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit |
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ |
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ |
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B |
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale |
true def end /@MacSetUp{userdict /md known{userdict /md get type |
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup |
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} |
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath |
clippath mark{transform{itransform moveto}}{transform{itransform lineto} |
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ |
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ |
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 |
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N |
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 |
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get |
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip |
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 |
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR |
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 |
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg |
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg |
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr |
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add |
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp |
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 |
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} |
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict |
maxlength dict begin /magscale true def normalscale currentpoint TR |
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts |
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx |
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy |
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR |
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ |
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 |
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath |
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict |
begin /SpecialSave save N gsave normalscale currentpoint TR |
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial |
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto |
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx |
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR |
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse |
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury |
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath |
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ |
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} |
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ |
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX |
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X |
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad |
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end |
|
%%EndProcSet |
%%BeginProcSet: color.pro |
%! |
TeXDict begin /setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop |
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll |
}repeat setrgbcolor pop}ifelse}B}ifelse /TeXcolorcmyk{setcmykcolor}def |
/TeXcolorrgb{setrgbcolor}def /TeXcolorgrey{setgray}def /TeXcolorgray{ |
setgray}def /TeXcolorhsb{sethsbcolor}def /currentcmykcolor where{pop}{ |
/currentcmykcolor{currentrgbcolor 10}B}ifelse /DC{exch dup userdict exch |
known{pop pop}{X}ifelse}B /GreenYellow{0.15 0 0.69 0 setcmykcolor}DC |
/Yellow{0 0 1 0 setcmykcolor}DC /Goldenrod{0 0.10 0.84 0 setcmykcolor} |
DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC /Apricot{0 0.32 0.52 0 |
setcmykcolor}DC /Peach{0 0.50 0.70 0 setcmykcolor}DC /Melon{0 0.46 0.50 |
0 setcmykcolor}DC /YellowOrange{0 0.42 1 0 setcmykcolor}DC /Orange{0 |
0.61 0.87 0 setcmykcolor}DC /BurntOrange{0 0.51 1 0 setcmykcolor}DC |
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC /RedOrange{0 0.77 0.87 0 |
setcmykcolor}DC /Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC /Maroon{0 |
0.87 0.68 0.32 setcmykcolor}DC /BrickRed{0 0.89 0.94 0.28 setcmykcolor} |
DC /Red{0 1 1 0 setcmykcolor}DC /OrangeRed{0 1 0.50 0 setcmykcolor}DC |
/RubineRed{0 1 0.13 0 setcmykcolor}DC /WildStrawberry{0 0.96 0.39 0 |
setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC /CarnationPink{0 |
0.63 0 0 setcmykcolor}DC /Magenta{0 1 0 0 setcmykcolor}DC /VioletRed{0 |
0.81 0 0 setcmykcolor}DC /Rhodamine{0 0.82 0 0 setcmykcolor}DC /Mulberry |
{0.34 0.90 0 0.02 setcmykcolor}DC /RedViolet{0.07 0.90 0 0.34 |
setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC /Lavender{0 |
0.48 0 0 setcmykcolor}DC /Thistle{0.12 0.59 0 0 setcmykcolor}DC /Orchid{ |
0.32 0.64 0 0 setcmykcolor}DC /DarkOrchid{0.40 0.80 0.20 0 setcmykcolor} |
DC /Purple{0.45 0.86 0 0 setcmykcolor}DC /Plum{0.50 1 0 0 setcmykcolor} |
DC /Violet{0.79 0.88 0 0 setcmykcolor}DC /RoyalPurple{0.75 0.90 0 0 |
setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC /Periwinkle |
{0.57 0.55 0 0 setcmykcolor}DC /CadetBlue{0.62 0.57 0.23 0 setcmykcolor} |
DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC /MidnightBlue{0.98 0.13 |
0 0.43 setcmykcolor}DC /NavyBlue{0.94 0.54 0 0 setcmykcolor}DC |
/RoyalBlue{1 0.50 0 0 setcmykcolor}DC /Blue{1 1 0 0 setcmykcolor}DC |
/Cerulean{0.94 0.11 0 0 setcmykcolor}DC /Cyan{1 0 0 0 setcmykcolor}DC |
/ProcessBlue{0.96 0 0 0 setcmykcolor}DC /SkyBlue{0.62 0 0.12 0 |
setcmykcolor}DC /Turquoise{0.85 0 0.20 0 setcmykcolor}DC /TealBlue{0.86 |
0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC |
/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC /Emerald{1 0 0.50 0 |
setcmykcolor}DC /JungleGreen{0.99 0 0.52 0 setcmykcolor}DC /SeaGreen{ |
0.69 0 0.50 0 setcmykcolor}DC /Green{1 0 1 0 setcmykcolor}DC |
/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 |
0.25 setcmykcolor}DC /LimeGreen{0.50 0 1 0 setcmykcolor}DC /YellowGreen{ |
0.44 0 0.74 0 setcmykcolor}DC /SpringGreen{0.26 0 0.76 0 setcmykcolor} |
DC /OliveGreen{0.64 0 0.95 0.40 setcmykcolor}DC /RawSienna{0 0.72 1 0.45 |
setcmykcolor}DC /Sepia{0 0.83 1 0.70 setcmykcolor}DC /Brown{0 0.81 1 |
0.60 setcmykcolor}DC /Tan{0.14 0.42 0.56 0 setcmykcolor}DC /Gray{0 0 0 |
0.50 setcmykcolor}DC /Black{0 0 0 1 setcmykcolor}DC /White{0 0 0 0 |
setcmykcolor}DC end |
|
%%EndProcSet |
TeXDict begin 39158280 55380996 1000 600 600 (nano-X-docs.dvi) |
@start /Fa 133[60 60 60 60 60 60 60 60 60 1[60 60 60 |
60 60 60 1[60 60 60 60 60 60 60 60 60 1[60 44[60 60 3[60 |
45[{TeXBase1Encoding ReEncodeFont}28 99.6264 /Courier-Oblique |
rf /Fb 133[60 66 66 93 66 73 40 66 47 73 73 73 73 106 |
33 66 33 33 73 73 40 66 73 66 73 66 8[80 113 1[86 73 |
80 86 1[80 93 86 100 73 86 1[33 86 93 73 80 86 86 86 |
86 23[40 40 40[{TeXBase1Encoding ReEncodeFont}49 119.552 |
/Helvetica-Bold rf /Fc 133[54 54 54 54 54 54 54 54 54 |
54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 1[54 |
4[54 54 54 54 54 54 54 54 54 1[54 54 54 54 54 54 1[54 |
54 54 54 54 54 54 54 54 5[54 8[54 54 3[54 54 1[54 54 |
54 40[{TeXBase1Encoding ReEncodeFont}59 89.6638 /Courier |
rf /Fd 136[60 60 60 60 60 60 1[60 60 60 60 60 2[60 60 |
60 60 60 60 60 1[60 97[{TeXBase1Encoding ReEncodeFont}19 |
99.6264 /Courier rf /Fe 134[80 4[48 80 56 1[88 88 88 |
128 40 2[40 3[80 1[80 1[80 13[96 4[104 9[104 68[{ |
TeXBase1Encoding ReEncodeFont}16 143.462 /Helvetica-Bold |
rf /Ff 136[134 96 105 57 96 67 1[105 105 105 153 48 2[48 |
105 105 57 96 105 96 1[96 45[96 9[57 57 40[{ |
TeXBase1Encoding ReEncodeFont}22 172.154 /Helvetica-Bold |
rf /Fg 138[50 28 39 39 1[50 50 50 1[28 2[28 50 2[44 2[50 |
50 8[61 5[61 14[66 9[50 50 50 50 50 50 50 50 50 50 1[25 |
33 45[{TeXBase1Encoding ReEncodeFont}28 99.6264 /Times-Italic |
rf /Fh 104[100 28[44 50 50 72 50 50 28 39 33 50 50 50 |
50 78 28 50 28 28 50 50 33 44 50 44 50 44 1[50 5[72 72 |
94 72 72 61 55 66 72 55 72 72 89 61 72 39 33 72 72 55 |
61 72 66 66 72 1[44 3[28 28 1[50 50 50 50 50 50 50 50 |
50 28 25 33 25 1[50 33 33 33 4[41 30[55 55 2[{ |
TeXBase1Encoding ReEncodeFont}76 99.6264 /Times-Roman |
rf /Fi 144[50 55 1[28 2[28 6[55 50 8[72 35[50 2[50 2[25 |
33 45[{TeXBase1Encoding ReEncodeFont}11 99.6264 /Times-Bold |
rf /Fj 139[69 115 80 1[126 126 126 1[57 2[57 126 1[69 |
115 2[126 115 8[138 3[126 16[149 17[115 2[57 69 45[{ |
TeXBase1Encoding ReEncodeFont}19 206.584 /Helvetica-Bold |
rf /Fk 138[61 2[39 2[61 61 1[28 5[33 55 1[55 1[55 8[66 |
5[72 1[66 1[72 83 3[28 7[72 19[33 45[{TeXBase1Encoding ReEncodeFont}17 |
99.6264 /Helvetica-Bold rf /Fl 138[151 2[96 2[151 151 |
1[69 5[83 138 1[138 1[138 8[165 5[179 1[165 1[179 206 |
3[69 7[179 19[83 45[{TeXBase1Encoding ReEncodeFont}17 |
247.895 /Helvetica-Bold rf end |
%%EndProlog |
%%BeginSetup |
%%Feature: *Resolution 600dpi |
TeXDict begin |
%%PaperSize: A4 |
|
%%EndSetup |
%%Page: 1 1 |
1 0 bop Black Black 173 677 a Fl(Nano-X)69 b(API)h(Ref)n(erence)e(Man)n |
(ual)p Black Black eop |
%%Page: 2 2 |
2 1 bop Black Black -2 579 a Fk(Nano-X)28 b(API)g(Ref)o(erence)h(Man)o |
(ual)p Black Black eop |
%%Page: 3 3 |
3 2 bop Black Black -2 647 a Fj(T)-17 b(ab)n(le)58 b(of)g(Contents)396 |
879 y Fi(1.)31 b(libnano-X)p Black 16 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black(4)596 1029 y Fh(general)p Black 6 w(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black(4)596 1158 y(windo)n(w)p Black 5 w(.)p |
Black Black -2 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black(7)596 |
1288 y(graphics)p Black 11 w(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black(17)596 1417 y(e)n(v)o(ents)p |
Black 21 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black(41)596 |
1547 y(fonts)p Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black(44)596 1676 y(pointer)p Black 15 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black(47)596 1806 y(colours)p Black 6 w(.)p Black Black |
-2 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black(50)596 1935 y(re)o(gions)p Black 7 w(.)p |
Black Black -2 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black(52)596 2065 y(selections)p |
Black 6 w(.)p Black Black -2 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black(61)596 2194 y(misc)p |
Black 11 w(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black -1 w(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black -1 w(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black |
-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black -1 w(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black -1 w(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black -1 w(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black |
Black -1 w(.)p Black Black(.)p Black Black(.)p Black |
Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p |
Black Black(.)p Black Black(.)p Black Black(.)p Black(65)p |
Black 3833 5278 a Fg(3)p Black eop |
%%Page: 4 4 |
4 3 bop Black Black -2 647 a Fj(Chapter)58 b(1.)71 b(libnano-X)-2 |
1167 y Ff(g)r(eneral)47 b(\(3\))396 1647 y Fe(Name)396 |
1848 y Fd(general)24 b Fh(\227)396 2242 y Fe(Synopsis)396 |
2691 y Fc(void)430 b(GrFlush)1343 b(\(void\);)396 2808 |
y(int)484 b(GrOpen)1397 b(\(void\);)396 2925 y(void)430 |
b(GrClose)1343 b(\(void\);)396 3041 y(void)430 b(GrMain-)396 |
3158 y(Loop)1183 b(\(GR_FNCALLBACKEVENT)50 b(fncb\);)396 |
3274 y(void)430 b(GrGetScreen-)396 3391 y(Info)914 b(\(GR_SCREEN_INFO) |
51 b(*sip\);)396 3507 y(GR_FNCALLBACKEVENT)f(GrSetErrorHan-)396 |
3624 y(dler)430 b(\(GR_FNCALLBACKEVENT)50 b(fncb\);)396 |
3741 y(void)430 b(GrDefaultErrorHandler)587 b(\(GR_EVENT)52 |
b(*ep\);)396 4234 y Fe(Description)p Black 3833 5278 |
a Fg(4)p Black eop |
%%Page: 5 5 |
5 4 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 601 a Fe(Details)396 945 y Fb(GrFlush)k(\(\))396 |
1161 y Fc(void)430 b(GrFlush)1343 b(\(void\);)396 1391 |
y Fh(Flush)25 b(the)f(message)h(b)n(uf)n(fer)g(of)f(an)o(y)h(messages)f |
(it)g(may)h(contain.)396 1845 y Fb(GrOpen)34 b(\(\))396 |
2061 y Fc(int)484 b(GrOpen)1397 b(\(void\);)396 2290 |
y Fh(Open)25 b(a)g(connection)f(to)h(the)f(graphics)h(serv)o(er)-5 |
b(.)706 2602 y Fg(Returns)24 b Fh(:)50 b(the)24 b(fd)h(of)g(the)g |
(connection)f(to)g(the)h(serv)o(er)g(or)f(-1)h(on)g(f)o(ailure)396 |
3098 y Fb(GrClose)35 b(\(\))396 3314 y Fc(void)430 b(GrClose)1343 |
b(\(void\);)396 3544 y Fh(Close)25 b(the)g(graphics)f(de)n(vice,)h |
(\003ushing)f(an)o(y)g(w)o(aiting)g(messages.)396 3998 |
y Fb(GrMainLoop)34 b(\(\))396 4214 y Fc(void)430 b(GrMain-)396 |
4331 y(Loop)1183 b(\(GR_FNCALLBACKEVENT)50 b(fncb\);)396 |
4560 y Fh(A)25 b(con)l(v)o(enience)f(function)g(which)h(calls)f(the)h |
(speci\002ed)g(callback)g(function)f(whene)n(v)o(er)g(an)h(e)n(v)o(ent) |
396 4689 y(arri)n(v)o(es)f(or)h(there)g(is)g(data)f(to)h(be)g(read)g |
(on)g(a)g(\002le)g(descriptor)f(pre)n(viously)f(speci\002ed)j(by)396 |
4819 y(GrRe)o(gisterInput\(\).)k(Currently)25 b(ne)n(v)o(er)f(returns.) |
p Black 3833 5278 a Fg(5)p Black eop |
%%Page: 6 6 |
6 5 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 775 587 a Fa(fncb)26 b Fh(:)396 1083 y Fb(GrGetScreenInf)n(o)34 |
b(\(\))396 1299 y Fc(void)430 b(GrGetScreen-)396 1416 |
y(Info)914 b(\(GR_SCREEN_INFO)51 b(*sip\);)396 1645 y |
Fh(Fills)24 b(in)h(the)f(speci\002ed)i(GR_SCREEN_INFO)g(structure.)836 |
1956 y Fa(sip)f Fh(:)50 b(pointer)24 b(to)g(a)h(GR_SCREEN_INFO)i |
(structure)396 2453 y Fb(GrSetErr)n(orHandler)32 b(\(\))396 |
2669 y Fc(GR_FNCALLBACKEVENT)50 b(GrSetErrorHan-)396 |
2786 y(dler)430 b(\(GR_FNCALLBACKEVENT)50 b(fncb\);)396 |
3015 y Fh(Sets)25 b(an)g(error)h(handling)d(routine)h(that)h(will)f(be) |
h(called)f(on)h(an)o(y)f(errors)h(from)g(the)g(serv)o(er)396 |
3144 y(\(assuming)f(the)g(client)h(has)f(ask)o(ed)h(to)g(recei)n(v)o(e) |
f(them\).)30 b(If)c(zero)f(is)f(used)h(as)g(the)f(ar)n(gument,)h |
(errors)396 3274 y(will)f(be)h(returned)g(as)g(re)o(gular)f(e)n(v)o |
(ents)g(instead.)775 3585 y Fa(fncb)i Fh(:)50 b(the)24 |
b(function)g(to)h(call)f(to)h(handle)f(error)i(e)n(v)o(ents)706 |
3740 y Fg(Returns)e Fh(:)50 b(the)24 b(address)h(of)g(the)f(pre)n |
(vious)g(error)h(handler)396 4236 y Fb(GrDefaultErr)n(orHandler)33 |
b(\(\))396 4452 y Fc(void)430 b(GrDefaultErrorHandler)587 |
b(\(GR_EVENT)52 b(*ep\);)396 4681 y Fh(The)25 b(def)o(ault)g(error)g |
(handler)g(which)f(is)h(called)f(when)h(the)g(serv)o(er)g(reports)f(an) |
h(error)h(e)n(v)o(ent)d(and)i(the)396 4811 y(client)g(hasn')n(t)f(set)h |
(up)f(a)h(handler)g(of)g(it')-5 b(s)24 b(o)n(wn.)p Black |
-2 5278 a Fg(6)p Black eop |
%%Page: 7 7 |
7 6 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(Generates)25 b(a)h(human)e(readable)h(error)h |
(message)e(on)g(stderr)h(describing)f(what)h(error)g(occurred)396 |
708 y(and)g(what)g(function)f(it)g(occured)h(in,)f(then)h(e)o(xits.)896 |
1013 y Fa(ep)g Fh(:)50 b(the)24 b(error)i(e)n(v)o(ent)d(structure)-2 |
1814 y Ff(windo)m(w)48 b(\(3\))396 2293 y Fe(Name)396 |
2495 y Fd(window)24 b Fh(\227)396 2888 y Fe(Synopsis)396 |
3338 y Fc(GR_WINDOW_ID)52 b(GrNewWin-)396 3454 y(dow)1076 |
b(\(GR_WINDOW_ID)51 b(parent,)2817 3571 y(GR_COORD)h(x,)2817 |
3687 y(GR_COORD)g(y,)2817 3804 y(GR_SIZE)h(width,)2817 |
3920 y(GR_SIZE)g(height,)2817 4037 y(GR_SIZE)g(bordersize,)2817 |
4154 y(GR_COLOR)f(background,)2817 4270 y(GR_COLOR)g(bordercolor\);)396 |
4387 y(GR_WINDOW_ID)g(GrNewPixmap)1073 b(\(GR_SIZE)53 |
b(width,)2817 4503 y(GR_SIZE)g(height,)2817 4620 y(void)g(*addr\);)396 |
4736 y(GR_WINDOW_ID)f(GrNewInputWin-)396 4853 y(dow)807 |
b(\(GR_WINDOW_ID)51 b(parent,)p Black 3830 5278 a Fg(7)p |
Black eop |
%%Page: 8 8 |
8 7 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(GR_COORD)52 b(x,)2817 695 y(GR_COORD)g(y,)2817 |
812 y(GR_SIZE)h(width,)2817 929 y(GR_SIZE)g(height\);)396 |
1045 y(void)430 b(GrDestroyWindow)911 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1162 y(void)430 b(GrMapWindow)1127 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1278 y(void)430 b(GrUnmapWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1395 y(void)430 b(GrRaiseWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1511 y(void)430 b(GrLowerWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1628 y(void)430 b(GrMoveWindow)1073 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 1745 y(GR_COORD)g(x,)2817 1861 y(GR_COORD)g(y\);)396 |
1978 y(void)430 b(GrResizeWindow)965 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 2094 y(GR_SIZE)h(width,)2817 2211 y(GR_SIZE)g(height\);)396 |
2327 y(void)430 b(GrReparentWindow)857 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 2444 y(GR_WINDOW_ID)g(pwid,)2817 2560 y(GR_COORD)g(x,)2817 |
2677 y(GR_COORD)g(y\);)396 2794 y(void)430 b(GrGetWindowInfo)911 |
b(\(GR_WINDOW_ID)52 b(wid,)2817 2910 y(GR_WINDOW_INFO)f(*infoptr\);)396 |
3027 y(void)430 b(GrSetWMProperties)803 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 3143 y(GR_WM_PROPERTIES)f(*props\);)396 3260 |
y(void)430 b(GrGetWMProperties)803 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 3376 y(GR_WM_PROPERTIES)f(*props\);)396 3493 |
y(void)430 b(GrSetFocus)1181 b(\(GR_WINDOW_ID)52 b(wid\);)396 |
3610 y(GR_WINDOW_ID)g(GrGetFocus)1127 b(\(void\);)396 |
3726 y(void)430 b(GrSetBorderColor)857 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 3843 y(GR_COLOR)g(color\);)396 3959 y(void)430 |
b(GrSetBackgroundPixmap)587 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
4076 y(GR_WINDOW_ID)g(pixmap,)2817 4192 y(int)h(flags\);)396 |
4309 y(void)430 b(GrClearWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 4425 y(GR_BOOL)h(exposeflag\);)396 4542 y(void)430 |
b(GrCloseWindow)1019 b(\(GR_WINDOW_ID)52 b(wid\);)396 |
4659 y(void)430 b(GrKillWindow)1073 b(\(GR_WINDOW_ID)52 |
b(wid\);)p Black -2 5278 a Fg(8)p Black eop |
%%Page: 9 9 |
9 8 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 601 a Fe(Description)396 1116 y(Details)396 |
1461 y Fb(GrNe)n(wWindo)n(w)k(\(\))396 1677 y Fc(GR_WINDOW_ID)52 |
b(GrNewWindow)1073 b(\(GR_WINDOW_ID)52 b(par-)396 1793 |
y(ent,)2817 1910 y(GR_COORD)g(x,)2817 2026 y(GR_COORD)g(y,)2817 |
2143 y(GR_SIZE)h(width,)2817 2260 y(GR_SIZE)g(height,)2817 |
2376 y(GR_SIZE)g(bordersize,)2817 2493 y(GR_COLOR)f(background,)2817 |
2609 y(GR_COLOR)g(border-)396 2726 y(color\);)396 2955 |
y Fh(Create)26 b(a)f(ne)n(w)g(windo)n(w)e(with)h(the)h(speci\002ed)g |
(parent)g(and)g(windo)n(w)e(attrib)n(utes.)657 3266 y |
Fa(parent)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g(parent)g(windo)n(w)951 |
3421 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(ne)n(w) |
f(windo)n(w)g(relati)n(v)o(e)g(to)g(the)h(parent)f(windo)n(w)948 |
3575 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(ne)n(w) |
f(windo)n(w)g(relati)n(v)o(e)g(to)g(the)h(parent)f(windo)n(w)717 |
3730 y Fa(width)g Fh(:)50 b(the)24 b(width)g(of)h(the)g(ne)n(w)f(windo) |
n(w)657 3884 y Fa(height)g Fh(:)50 b(the)24 b(height)g(of)h(the)g(ne)n |
(w)f(windo)n(w)443 4039 y Fa(bordersize)f Fh(:)i(the)f(width)g(of)h |
(the)g(windo)n(w)e(border)439 4298 y Fa(background)k |
Fh(:)e(the)f(colour)h(of)g(the)f(windo)n(w)g(background)675 |
4557 y Fa(border-)396 4686 y(color)k Fh(:)1119 4557 y(the)c(colour)h |
(of)g(the)f(windo)n(w)g(border)p Black 3833 5278 a Fg(9)p |
Black eop |
%%Page: 10 10 |
10 9 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 706 587 a(Returns)24 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(ne)n |
(wly)f(created)h(windo)n(w)396 1083 y Fb(GrNe)n(wPixmap)35 |
b(\(\))396 1299 y Fc(GR_WINDOW_ID)52 b(GrNewPixmap)1073 |
b(\(GR_SIZE)53 b(width,)2817 1416 y(GR_SIZE)g(height,)2817 |
1532 y(void)g(*addr\);)396 1761 y Fh(Create)26 b(a)f(ne)n(w)g(serv)o |
(er)g(side)f(pixmap)g(\(an)h(of)n(fscreen)g(dra)o(wing)f(area)i(which)e |
(can)h(be)g(copied)g(into)e(a)396 1891 y(windo)n(w)h(using)f(a)j(GrCop) |
o(yArea)f(call\))g(of)g(the)g(speci\002ed)g(width)e(and)i(height.)717 |
2202 y Fa(width)f Fh(:)50 b(the)24 b(width)g(of)h(the)g(pixmap)657 |
2357 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g(pixmap)773 |
2511 y Fa(addr)j Fh(:)50 b(currently)24 b(unused)g(in)h(client/serv)o |
(er)f(mode)706 2666 y Fg(Returns)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(ne)n(wly)f(created)h(pixmap)396 3162 y Fb(GrNe)n(wInputWindo)n(w)35 |
b(\(\))396 3378 y Fc(GR_WINDOW_ID)52 b(GrNewInputWindow)803 |
b(\(GR_WINDOW_ID)52 b(par-)396 3495 y(ent,)2817 3611 |
y(GR_COORD)g(x,)2817 3728 y(GR_COORD)g(y,)2817 3845 y(GR_SIZE)h(width,) |
2817 3961 y(GR_SIZE)g(height\);)396 4190 y Fh(Create)26 |
b(a)f(ne)n(w)g(input-only)e(windo)n(w)g(with)h(the)h(speci\002ed)g |
(dimensions)e(which)h(is)g(a)i(child)e(of)h(the)396 4320 |
y(speci\002ed)g(parent)g(windo)n(w)-6 b(.)657 4631 y |
Fa(parent)24 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(use) |
f(as)h(the)g(parent)g(of)g(the)f(ne)n(w)h(windo)n(w)951 |
4786 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(ne)n(w) |
f(windo)n(w)g(relati)n(v)o(e)g(to)g(the)h(parent)f(windo)n(w)p |
Black -2 5278 a Fg(10)p Black eop |
%%Page: 11 11 |
11 10 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 948 587 a Fa(y)j Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g |
(ne)n(w)f(windo)n(w)g(relati)n(v)o(e)g(to)g(the)h(parent)f(windo)n(w) |
717 741 y Fa(width)g Fh(:)50 b(the)24 b(width)g(of)h(the)g(ne)n(w)f |
(windo)n(w)657 895 y Fa(height)g Fh(:)50 b(the)24 b(height)g(of)h(the)g |
(ne)n(w)f(windo)n(w)706 1050 y Fg(Returns)g Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(ne)n(wly)f(created)h(windo)n(w)396 |
1546 y Fb(GrDestr)n(o)n(yWindo)n(w)34 b(\(\))396 1762 |
y Fc(void)430 b(GrDestroyWindow)911 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 1992 y Fh(Recursi)n(v)o(ely)24 b(unmaps)g(and)h(frees)g |
(the)g(data)g(structures)f(associated)g(with)g(the)h(speci\002ed)g |
(windo)n(w)396 2121 y(and)g(all)g(of)f(its)h(children.)833 |
2412 y Fa(wid)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(destro)o(y)396 2929 y Fb(GrMapWindo)n(w)34 b(\(\))396 |
3145 y Fc(void)430 b(GrMapWindow)1127 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 3374 y Fh(Recursi)n(v)o(ely)24 b(maps)g(\(mak)o(es)h |
(visible\))f(the)g(speci\002ed)h(windo)n(w)f(and)h(all)f(of)h(the)g |
(child)f(windo)n(ws)396 3504 y(which)h(ha)n(v)o(e)f(a)h(suf)n |
(\002cient)g(map)f(count.)30 b(The)25 b(border)g(and)g(background)f(of) |
h(the)f(windo)n(w)g(are)396 3633 y(painted,)g(and)h(an)g(e)o(xposure)f |
(e)n(v)o(ent)g(is)g(generated)h(for)g(the)g(windo)n(w)f(and)g(e)n(v)o |
(ery)g(child)h(which)396 3763 y(becomes)g(visible.)833 |
4054 y Fa(wid)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(map)396 4571 y Fb(GrUnmapWindo)n(w)35 b(\(\))396 4787 |
y Fc(void)430 b(GrUnmapWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid\);)p Black 3784 5278 a Fg(11)p Black eop |
%%Page: 12 12 |
12 11 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fh(Recursi)n(v)o(ely)24 b(unmaps)g(\(mak)o(es)h(in)l |
(visible\))e(the)i(speci\002ed)g(windo)n(w)e(and)i(all)f(of)h(the)g |
(child)396 708 y(windo)n(ws.)833 1000 y Fa(wid)j Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(unmap)396 |
1516 y Fb(GrRaiseWindo)n(w)35 b(\(\))396 1733 y Fc(void)430 |
b(GrRaiseWindow)1019 b(\(GR_WINDOW_ID)52 b(wid\);)396 |
1962 y Fh(Places)26 b(the)e(speci\002ed)h(windo)n(w)f(at)h(the)f(top)h |
(of)f(its)h(parents)f(dra)o(wing)g(stack,)h(abo)o(v)o(e)e(all)i(of)g |
(its)396 2091 y(sibling)e(windo)n(ws.)833 2403 y Fa(wid)28 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(raise)396 |
2899 y Fb(GrLo)n(werWindo)n(w)34 b(\(\))396 3115 y Fc(void)430 |
b(GrLowerWindow)1019 b(\(GR_WINDOW_ID)52 b(wid\);)396 |
3345 y Fh(Places)26 b(the)e(speci\002ed)h(windo)n(w)f(at)h(the)f |
(bottom)g(of)g(its)h(parents)f(dra)o(wing)g(stack,)h(belo)n(w)e(all)i |
(of)g(its)396 3474 y(sibling)e(windo)n(ws.)833 3786 y |
Fa(wid)28 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(lo)n |
(wer)396 4282 y Fb(GrMo)n(veWindo)n(w)34 b(\(\))396 4498 |
y Fc(void)430 b(GrMoveWindow)1073 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 4615 y(GR_COORD)g(x,)2817 4731 y(GR_COORD)g(y\);)p |
Black -2 5278 a Fg(12)p Black eop |
%%Page: 13 13 |
13 12 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(Mo)o(v)o(es)23 b(the)i(speci\002ed)g(windo)n(w)e(to) |
i(the)g(speci\002ed)g(position)e(relati)n(v)o(e)g(to)i(its)f(parent)h |
(windo)n(w)-6 b(.)833 890 y Fa(wid)28 b Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(windo)n(w)e(to)i(mo)o(v)o(e)951 1045 |
y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(mo)o(v)o(e)e(the)i |
(windo)n(w)e(to)i(relati)n(v)o(e)e(to)i(its)f(parent.)948 |
1199 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(mo)o(v)o(e)e |
(the)i(windo)n(w)e(to)i(relati)n(v)o(e)e(to)i(its)f(parent.)396 |
1696 y Fb(GrResiz)q(eWindo)n(w)35 b(\(\))396 1912 y Fc(void)430 |
b(GrResizeWindow)965 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
2028 y(GR_SIZE)h(width,)2817 2145 y(GR_SIZE)g(height\);)396 |
2374 y Fh(Resizes)26 b(the)e(speci\002ed)h(windo)n(w)f(to)g(be)h(the)g |
(speci\002ed)g(width)f(and)g(height.)833 2686 y Fa(wid)k |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(resize)717 |
2840 y Fa(width)f Fh(:)50 b(the)24 b(width)g(to)g(resize)i(the)e(windo) |
n(w)g(to)657 2995 y Fa(height)g Fh(:)50 b(the)24 b(height)g(to)h |
(resize)g(the)f(windo)n(w)g(to)396 3491 y Fb(GrReparentWindo)n(w)35 |
b(\(\))396 3707 y Fc(void)430 b(GrReparentWindow)857 |
b(\(GR_WINDOW_ID)52 b(wid,)2817 3824 y(GR_WINDOW_ID)g(pwid,)2817 |
3940 y(GR_COORD)g(x,)2817 4057 y(GR_COORD)g(y\);)396 |
4286 y Fh(Changes)24 b(the)g(parent)g(windo)n(w)f(of)h(the)g |
(speci\002ed)g(windo)n(w)e(to)i(the)g(speci\002ed)g(parent)g(windo)n(w) |
e(and)396 4416 y(places)j(it)f(at)h(the)g(speci\002ed)g(coordinates)f |
(relati)n(v)o(e)g(to)g(the)h(ne)n(w)f(parent.)833 4727 |
y Fa(wid)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(reparent)p Black 3784 5278 a Fg(13)p Black eop |
%%Page: 14 14 |
14 13 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 773 587 a Fa(pwid)d Fh(:)50 b(the)24 b(ID)h(of)g(the)g(ne)n(w)f |
(parent)h(windo)n(w)951 741 y Fa(x)30 b Fh(:)50 b(the)24 |
b(X)h(coordinate)f(to)h(place)g(the)g(windo)n(w)e(at)i(relati)n(v)o(e)f |
(to)g(the)h(ne)n(w)f(parent)948 895 y Fa(y)33 b Fh(:)50 |
b(the)24 b(Y)h(coordinate)f(to)h(place)g(the)g(windo)n(w)e(at)i(relati) |
n(v)o(e)f(to)g(the)h(ne)n(w)f(parent)396 1392 y Fb(GrGetWindo)n(wInf)n |
(o)33 b(\(\))396 1608 y Fc(void)430 b(GrGetWindowInfo)911 |
b(\(GR_WINDOW_ID)52 b(wid,)2817 1725 y(GR_WINDOW_INFO)f(*in-)396 |
1841 y(foptr\);)396 2070 y Fh(Fills)24 b(in)h(a)g(GR_WINDO)m(W_INFO)g |
(structure)f(with)g(information)g(re)o(garding)f(the)i(windo)n(w)e |
(with)396 2200 y(the)i(speci\002ed)g(windo)n(w)e(ID.)833 |
2511 y Fa(wid)28 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(retrie)n(v)o(e)f(information)f(about)594 2666 y Fa(infoptr)k |
Fh(:)50 b(pointer)24 b(to)g(a)h(GR_WINDO)m(W_INFO)g(structure)g(to)f |
(return)h(the)g(information)1094 2795 y(in)396 3292 y |
Fb(GrSetWMPr)n(oper)r(ties)33 b(\(\))396 3508 y Fc(void)430 |
b(GrSetWMProperties)803 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
3624 y(GR_WM_PROPERTIES)f(*props\);)396 3854 y Fh(Copies)25 |
b(the)g(pro)o(vided)e(GR_WM_PR)l(OPER)-6 b(TIES)27 b(structure)d(into)g |
(the)h(the)396 3983 y(GR_WM_PR)l(OPER)-6 b(TIES)27 b(structure)d(of)h |
(the)g(speci\002ed)g(windo)n(w)e(id.)833 4295 y Fa(wid)28 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(set)f(the)h(WM)f |
(properties)h(of)717 4449 y Fa(props)f Fh(:)50 b(pointer)24 |
b(to)g(a)h(GR_WM_PR)l(OPER)-6 b(TIES)27 b(structure)p |
Black -2 5278 a Fg(14)p Black eop |
%%Page: 15 15 |
15 14 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 583 a Fb(GrGetWMPr)n(oper)r(ties)j(\(\))396 |
799 y Fc(void)430 b(GrGetWMProperties)803 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 916 y(GR_WM_PROPERTIES)f(*props\);)396 1145 |
y Fh(Reads)26 b(the)e(GR_WM_PR)l(OPER)-6 b(TIES)27 b(structure)d(for)h |
(the)g(windo)n(w)e(with)h(the)h(speci\002ed)g(id)f(and)396 |
1275 y(\002lls)h(in)f(the)h(pro)o(vided)e(structure)i(with)f(the)h |
(information.)k(It)c(is)f(the)h(callers)f(responsibility)f(to)h(free) |
396 1404 y(the)h(title)f(member)g(as)h(it)f(is)h(allocated)f |
(dynamically)-6 b(.)29 b(The)c(title)f(\002eld)h(will)f(be)h(set)f(to)h |
(NULL)f(if)h(the)396 1534 y(windo)n(w)f(has)g(no)h(title.)833 |
1825 y Fa(wid)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(retrei)n(v)o(e)f(the)g(WM)h(properties)f(of)717 1979 |
y Fa(props)g Fh(:)50 b(pointer)24 b(to)g(a)h(GR_WM_PR)l(OPER)-6 |
b(TIES)27 b(structure)d(to)h(\002ll)f(in)396 2496 y Fb(GrSetFocus)34 |
b(\(\))396 2712 y Fc(void)430 b(GrSetFocus)1181 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 2941 y Fh(Sets)25 b(the)g(k)o(e)o(yboard)f(focus)h(to)f |
(the)h(speci\002ed)g(windo)n(w)-6 b(.)833 3253 y Fa(wid)28 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(set)f(the)h |
(focus)g(to)396 3749 y Fb(GrGetFocus)34 b(\(\))396 3965 |
y Fc(GR_WINDOW_ID)52 b(GrGetFocus)1127 b(\(void\);)706 |
4365 y Fg(Returns)24 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e |
(which)i(currently)f(has)h(the)f(k)o(e)o(yboard)h(focus)p |
Black 3784 5278 a Fg(15)p Black eop |
%%Page: 16 16 |
16 15 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 583 a Fb(GrSetBor)n(derColor)i(\(\))396 799 |
y Fc(void)430 b(GrSetBorderColor)857 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 916 y(GR_COLOR)g(color\);)396 1145 y Fh(Sets)25 |
b(the)g(border)g(colour)f(of)h(the)g(speci\002ed)g(windo)n(w)e(to)i |
(the)f(speci\002ed)h(colour)-5 b(.)833 1457 y Fa(wid)28 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(set)f(the)h |
(border)g(colour)f(of)714 1611 y Fa(color)j Fh(:)396 |
2107 y Fb(GrSetBac)n(kgr)n(oundPixmap)35 b(\(\))396 2324 |
y Fc(void)430 b(GrSetBackgroundPixmap)587 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 2440 y(GR_WINDOW_ID)g(pixmap,)2817 2557 y(int)h(flags\);) |
396 2786 y Fh(Sets)25 b(the)g(background)f(of)h(the)g(speci\002ed)g |
(windo)n(w)e(to)i(the)f(speci\002ed)h(pixmap.)30 b(The)25 |
b(\003ags)g(which)396 2915 y(specify)g(ho)n(w)f(to)g(dra)o(w)h(the)f |
(pixmap)g(\(in)h(the)g(top)f(left)g(of)h(the)g(windo)n(w)-6 |
b(,)23 b(in)h(the)h(centre)g(of)g(the)396 3045 y(windo)n(w)-6 |
b(,)23 b(tiled,)h(etc.\))h(are)h(those)e(which)g(start)h(with)f(GR_B)m |
(A)l(CKGR)l(OUND_)h(in)g(nano-X.h.)30 b(If)396 3174 y(the)25 |
b(pixmap)f(v)n(alue)g(is)g(0,)h(the)g(serv)o(er)f(will)g(disable)g(the) |
h(background)f(pixmap)g(and)h(return)g(to)396 3304 y(using)f(a)h(solid) |
f(colour)g(\002ll.)833 3615 y Fa(wid)k Fh(:)50 b(ID)25 |
b(of)f(the)h(windo)n(w)f(to)g(set)h(the)f(background)g(of)657 |
3770 y Fa(pixmap)g Fh(:)50 b(ID)25 b(of)f(the)h(pixmap)f(to)g(use)h(as) |
g(the)g(background)717 3924 y Fa(flags)f Fh(:)50 b(\003ags)25 |
b(specifying)f(ho)n(w)g(to)g(dra)o(w)h(the)f(pixmap)g(onto)g(the)h |
(windo)n(w)396 4421 y Fb(GrClearWindo)n(w)34 b(\(\))396 |
4637 y Fc(void)430 b(GrClearWindow)1019 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 4753 y(GR_BOOL)h(expose-)396 4870 y(flag\);)p |
Black -2 5278 a Fg(16)p Black eop |
%%Page: 17 17 |
17 16 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(Clears)c(the)e(speci\002ed)h(windo)n(w)f(by)g |
(setting)g(it)g(to)h(its)f(background)g(color)-5 b(.)30 |
b(If)25 b(the)g(e)o(xpose\003ag)396 708 y(parameter)g(is)g(non)f(zero,) |
h(an)g(e)o(xposure)f(e)n(v)o(ent)g(is)h(generated)g(for)g(the)f(windo)n |
(w)g(after)h(it)g(has)f(been)396 838 y(cleared.)833 1129 |
y Fa(wid)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(clear) |
438 1284 y Fa(exposeflag)j Fh(:)d(a)g(\003ag)g(indicating)e(whether)i |
(to)g(also)f(generate)h(an)g(e)o(xposure)f(e)n(v)o(ent)396 |
1905 y Fb(GrCloseWindo)n(w)35 b(\(\))396 2121 y Fc(void)430 |
b(GrCloseWindow)1019 b(\(GR_WINDOW_ID)52 b(wid\);)396 |
2350 y Fh(Sends)24 b(a)h(CLOSE_REQ)f(e)n(v)o(ent)f(to)h(the)g |
(speci\002ed)g(windo)n(w)f(if)h(the)g(client)f(has)h(selected)g(to)g |
(recei)n(v)o(e)396 2480 y(CLOSE_REQ)i(e)n(v)o(ents)d(on)i(this)f(windo) |
n(w)-6 b(.)28 b(Used)d(to)f(request)h(an)g(application)f(to)g(shut)g |
(do)n(wn)g(b)n(ut)396 2609 y(not)g(force)i(it)e(to)h(do)f(so)h |
(immediately)-6 b(,)22 b(so)j(the)f(application)g(can)h(ask)g(whether)g |
(to)f(sa)n(v)o(e)h(changed)396 2739 y(\002les)g(before)h(shutting)d(do) |
n(wn)g(cleanly)-6 b(.)833 3050 y Fa(wid)28 b Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(send)f(the)h(CLOSE_REQ)g(e) |
n(v)o(ent)f(to)396 3547 y Fb(GrKillWindo)n(w)34 b(\(\))396 |
3763 y Fc(void)430 b(GrKillWindow)1073 b(\(GR_WINDOW_ID)52 |
b(wid\);)396 3992 y Fh(F)o(orcibly)24 b(disconnects)g(the)h(client)f |
(which)g(o)n(wns)g(this)g(windo)n(w)f(with)h(the)h(speci\002ed)g(ID)g |
(number)-5 b(.)396 4122 y(Used)25 b(to)f(kill)g(an)h(application)f |
(which)g(has)h(lock)o(ed)f(up)h(and)g(is)f(not)g(responding)g(to)g |
(CLOSE_REQ)396 4251 y(e)n(v)o(ents.)833 4542 y Fa(wid)k |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(kill)p |
Black 3780 5278 a Fg(17)p Black eop |
%%Page: 18 18 |
18 17 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black -2 621 a Ff(graphics)47 b(\(3\))396 1101 y Fe(Name)396 |
1303 y Fd(graphics)23 b Fh(\227)396 1696 y Fe(Synopsis)396 |
2146 y Fc(GR_GC_ID)214 b(GrNewGC)1343 b(\(void\);)396 |
2262 y(GR_GC_ID)214 b(GrCopyGC)1289 b(\(GR_GC_ID)52 b(gc\);)396 |
2379 y(void)430 b(GrGetGCInfo)1127 b(\(GR_GC_ID)52 b(gc,)2817 |
2495 y(GR_GC_INFO)g(*gcip\);)396 2612 y(void)430 b(GrDestroyGC)1127 |
b(\(GR_GC_ID)52 b(gc\);)396 2728 y(void)430 b(GrLine)1397 |
b(\(GR_DRAW_ID)52 b(id,)2817 2845 y(GR_GC_ID)g(gc,)2817 |
2962 y(GR_COORD)g(x1,)2817 3078 y(GR_COORD)g(y1,)2817 |
3195 y(GR_COORD)g(x2,)2817 3311 y(GR_COORD)g(y2\);)396 |
3428 y(void)430 b(GrPoint)1343 b(\(GR_DRAW_ID)52 b(id,)2817 |
3544 y(GR_GC_ID)g(gc,)2817 3661 y(GR_COORD)g(x,)2817 |
3777 y(GR_COORD)g(y\);)396 3894 y(void)430 b(GrPoints)1289 |
b(\(GR_DRAW_ID)52 b(id,)2817 4011 y(GR_GC_ID)g(gc,)2817 |
4127 y(GR_COUNT)g(count,)2817 4244 y(GR_POINT)g(*pointtable\);)396 |
4360 y(void)430 b(GrRect)1397 b(\(GR_DRAW_ID)52 b(id,)2817 |
4477 y(GR_GC_ID)g(gc,)2817 4593 y(GR_COORD)g(x,)2817 |
4710 y(GR_COORD)g(y,)2817 4827 y(GR_SIZE)h(width,)p Black |
-2 5278 a Fg(18)p Black eop |
%%Page: 19 19 |
19 18 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_SIZE)53 b(height\);)396 695 y(void)430 |
b(GrFillRect)1181 b(\(GR_DRAW_ID)52 b(id,)2817 812 y(GR_GC_ID)g(gc,) |
2817 929 y(GR_COORD)g(x,)2817 1045 y(GR_COORD)g(y,)2817 |
1162 y(GR_SIZE)h(width,)2817 1278 y(GR_SIZE)g(height\);)396 |
1395 y(void)430 b(GrPoly)1397 b(\(GR_DRAW_ID)52 b(id,)2817 |
1511 y(GR_GC_ID)g(gc,)2817 1628 y(GR_COUNT)g(count,)2817 |
1745 y(GR_POINT)g(*pointtable\);)396 1861 y(void)430 |
b(GrFillPoly)1181 b(\(GR_DRAW_ID)52 b(id,)2817 1978 y(GR_GC_ID)g(gc,) |
2817 2094 y(GR_COUNT)g(count,)2817 2211 y(GR_POINT)g(*pointtable\);)396 |
2327 y(void)430 b(GrEllipse)1235 b(\(GR_DRAW_ID)52 b(id,)2817 |
2444 y(GR_GC_ID)g(gc,)2817 2560 y(GR_COORD)g(x,)2817 |
2677 y(GR_COORD)g(y,)2817 2794 y(GR_SIZE)h(rx,)2817 2910 |
y(GR_SIZE)g(ry\);)396 3027 y(void)430 b(GrFillEllipse)1019 |
b(\(GR_DRAW_ID)52 b(id,)2817 3143 y(GR_GC_ID)g(gc,)2817 |
3260 y(GR_COORD)g(x,)2817 3376 y(GR_COORD)g(y,)2817 3493 |
y(GR_SIZE)h(rx,)2817 3610 y(GR_SIZE)g(ry\);)396 3726 |
y(void)430 b(GrArc)1451 b(\(GR_DRAW_ID)52 b(id,)2817 |
3843 y(GR_GC_ID)g(gc,)2817 3959 y(GR_COORD)g(x,)2817 |
4076 y(GR_COORD)g(y,)2817 4192 y(GR_SIZE)h(rx,)2817 4309 |
y(GR_SIZE)g(ry,)2817 4425 y(GR_COORD)f(ax,)2817 4542 |
y(GR_COORD)g(ay,)2817 4659 y(GR_COORD)g(bx,)2817 4775 |
y(GR_COORD)g(by,)p Black 3784 5278 a Fg(19)p Black eop |
%%Page: 20 20 |
20 19 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(int)53 b(type\);)396 695 y(void)430 |
b(GrArcAngle)1181 b(\(GR_DRAW_ID)52 b(id,)2817 812 y(GR_GC_ID)g(gc,) |
2817 929 y(GR_COORD)g(x,)2817 1045 y(GR_COORD)g(y,)2817 |
1162 y(GR_SIZE)h(rx,)2817 1278 y(GR_SIZE)g(ry,)2817 1395 |
y(GR_COORD)f(angle1,)2817 1511 y(GR_COORD)g(angle2,)2817 |
1628 y(int)h(type\);)396 1745 y(void)430 b(GrSetGCForeground)803 |
b(\(GR_GC_ID)52 b(gc,)2817 1861 y(GR_COLOR)g(foreground\);)396 |
1978 y(void)430 b(GrSetGCBackground)803 b(\(GR_GC_ID)52 |
b(gc,)2817 2094 y(GR_COLOR)g(background\);)396 2211 y(void)430 |
b(GrSetGCUseBackground)641 b(\(GR_GC_ID)52 b(gc,)2817 |
2327 y(GR_BOOL)h(flag\);)396 2444 y(void)430 b(GrSetGCMode)1127 |
b(\(GR_GC_ID)52 b(gc,)2817 2560 y(int)h(mode\);)396 2677 |
y(void)430 b(GrSetGCFont)1127 b(\(GR_GC_ID)52 b(gc,)2817 |
2794 y(GR_FONT_ID)g(font\);)396 2910 y(void)430 b(GrGetGCTextSize)911 |
b(\(GR_GC_ID)52 b(gc,)2817 3027 y(void)h(*str,)2817 3143 |
y(int)g(count,)2817 3260 y(int)g(flags,)2817 3376 y(GR_SIZE)g |
(*retwidth,)2817 3493 y(GR_SIZE)g(*retheight,)2817 3610 |
y(GR_SIZE)g(*retbase\);)396 3726 y(void)430 b(GrReadArea)1181 |
b(\(GR_DRAW_ID)52 b(id,)2817 3843 y(GR_COORD)g(x,)2817 |
3959 y(GR_COORD)g(y,)2817 4076 y(GR_SIZE)h(width,)2817 |
4192 y(GR_SIZE)g(height,)2817 4309 y(GR_PIXELVAL)f(*pixels\);)396 |
4425 y(void)430 b(GrArea)1397 b(\(GR_DRAW_ID)52 b(id,)2817 |
4542 y(GR_GC_ID)g(gc,)2817 4659 y(GR_COORD)g(x,)2817 |
4775 y(GR_COORD)g(y,)p Black -2 5278 a Fg(20)p Black |
eop |
%%Page: 21 21 |
21 20 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_SIZE)53 b(width,)2817 695 y(GR_SIZE)g(height,) |
2817 812 y(void)g(*pixels,)2817 929 y(int)g(pixtype\);)396 |
1045 y(void)430 b(GrCopyArea)1181 b(\(GR_DRAW_ID)52 b(id,)2817 |
1162 y(GR_GC_ID)g(gc,)2817 1278 y(GR_COORD)g(x,)2817 |
1395 y(GR_COORD)g(y,)2817 1511 y(GR_SIZE)h(width,)2817 |
1628 y(GR_SIZE)g(height,)2817 1745 y(GR_DRAW_ID)f(srcid,)2817 |
1861 y(GR_COORD)g(srcx,)2817 1978 y(GR_COORD)g(srcy,)2817 |
2094 y(int)h(op\);)396 2211 y(void)430 b(GrBitmap)1289 |
b(\(GR_DRAW_ID)52 b(id,)2817 2327 y(GR_GC_ID)g(gc,)2817 |
2444 y(GR_COORD)g(x,)2817 2560 y(GR_COORD)g(y,)2817 2677 |
y(GR_SIZE)h(width,)2817 2794 y(GR_SIZE)g(height,)2817 |
2910 y(GR_BITMAP)f(*imagebits\);)396 3027 y(void)430 |
b(GrFreeImage)1127 b(\(GR_IMAGE_ID)52 b(id\);)396 3143 |
y(void)430 b(GrGetImageInfo)965 b(\(GR_IMAGE_ID)52 b(id,)2817 |
3260 y(GR_IMAGE_INFO)f(*iip\);)396 3376 y(void)430 b |
(GrDrawImageFromFile)695 b(\(GR_DRAW_ID)52 b(id,)2817 |
3493 y(GR_GC_ID)g(gc,)2817 3610 y(GR_COORD)g(x,)2817 |
3726 y(GR_COORD)g(y,)2817 3843 y(GR_SIZE)h(width,)2817 |
3959 y(GR_SIZE)g(height,)2817 4076 y(char)g(*path,)2817 |
4192 y(int)g(flags\);)396 4309 y(GR_IMAGE_ID)f(GrLoadImageFromFile)695 |
b(\(char)53 b(*path,)2817 4425 y(int)g(flags\);)396 4542 |
y(void)430 b(GrDrawImageToFit)857 b(\(GR_DRAW_ID)52 b(id,)2817 |
4659 y(GR_GC_ID)g(gc,)2817 4775 y(GR_COORD)g(x,)p Black |
3784 5278 a Fg(21)p Black eop |
%%Page: 22 22 |
22 21 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(GR_COORD)52 b(y,)2817 695 y(GR_SIZE)h(width,)2817 |
812 y(GR_SIZE)g(height,)2817 929 y(GR_IMAGE_ID)f(imageid\);)396 |
1045 y(void)430 b(GrDrawImageBits)911 b(\(GR_DRAW_ID)52 |
b(id,)2817 1162 y(GR_GC_ID)g(gc,)2817 1278 y(GR_COORD)g(x,)2817 |
1395 y(GR_COORD)g(y,)2817 1511 y(GR_IMAGE_HDR)g(*pimage\);)396 |
1628 y(void)430 b(GrText)1397 b(\(GR_DRAW_ID)52 b(id,)2817 |
1745 y(GR_GC_ID)g(gc,)2817 1861 y(GR_COORD)g(x,)2817 |
1978 y(GR_COORD)g(y,)2817 2094 y(void)h(*str,)2817 2211 |
y(GR_COUNT)f(count,)2817 2327 y(int)h(flags\);)396 2821 |
y Fe(Description)396 3336 y(Details)396 3681 y Fb(GrNe)n(wGC)34 |
b(\(\))396 3897 y Fc(GR_GC_ID)214 b(GrNewGC)1343 b(\(void\);)396 |
4126 y Fh(Creates)26 b(a)f(ne)n(w)f(graphics)h(conte)o(xt)f(structure)g |
(and)h(returns)f(the)h(ID)g(used)g(to)f(refer)i(to)e(it.)31 |
b(The)396 4256 y(structure)25 b(is)f(initialised)f(with)h(a)h(set)g(of) |
g(def)o(ault)f(parameters.)706 4567 y Fg(Returns)g Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(ne)n(wly)f(created)h(graphics)g(conte)o(xt)e |
(or)i(0)g(on)f(error)p Black -2 5278 a Fg(22)p Black |
eop |
%%Page: 23 23 |
23 22 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 583 a Fb(GrCop)n(yGC)k(\(\))396 799 y Fc(GR_GC_ID)214 |
b(GrCopyGC)1289 b(\(GR_GC_ID)52 b(gc\);)396 1028 y Fh(Creates)26 |
b(a)f(ne)n(w)f(graphics)h(conte)o(xt)f(structure)g(and)h(\002lls)f(it)h |
(in)f(with)g(the)h(v)n(alues)f(from)g(the)396 1158 y(speci\002ed)h |
(already)g(e)o(xisting)e(graphics)i(conte)o(xt.)896 1470 |
y Fa(gc)g Fh(:)50 b(the)24 b(already)h(e)o(xisting)e(graphics)i(conte)o |
(xt)e(to)i(cop)o(y)f(the)h(parameters)g(from)706 1624 |
y Fg(Returns)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(ne)n(wly)f(created)h |
(graphics)g(conte)o(xt)e(or)i(0)g(on)f(error)396 2120 |
y Fb(GrGetGCInf)n(o)33 b(\(\))396 2337 y Fc(void)430 |
b(GrGetGCInfo)1127 b(\(GR_GC_ID)52 b(gc,)2817 2453 y(GR_GC_INFO)g |
(*gcip\);)396 2682 y Fh(Fills)24 b(in)h(the)f(speci\002ed)i(GR_GC_INFO) |
f(structure)g(with)f(information)f(re)o(garding)h(the)g(speci\002ed)396 |
2812 y(graphics)h(conte)o(xt.)896 3123 y Fa(gc)g Fh(:)50 |
b(a)25 b(graphics)f(conte)o(xt)777 3278 y Fa(gcip)g Fh(:)50 |
b(pointer)24 b(to)g(a)h(GR_GC_INFO)h(structure)396 3774 |
y Fb(GrDestr)n(o)n(yGC)34 b(\(\))396 3990 y Fc(void)430 |
b(GrDestroyGC)1127 b(\(GR_GC_ID)52 b(gc\);)396 4219 y |
Fh(Destro)o(ys)24 b(the)h(graphics)f(conte)o(xt)g(structure)h(with)f |
(the)g(speci\002ed)h(ID.)896 4531 y Fa(gc)g Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(structure)g(to)h(destro)o(y)p |
Black 3784 5278 a Fg(23)p Black eop |
%%Page: 24 24 |
24 23 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 583 a Fb(GrLine)j(\(\))396 799 y Fc(void)430 |
b(GrLine)1397 b(\(GR_DRAW_ID)52 b(id,)2817 916 y(GR_GC_ID)g(gc,)2817 |
1032 y(GR_COORD)g(x1,)2817 1149 y(GR_COORD)g(y1,)2817 |
1266 y(GR_COORD)g(x2,)2817 1382 y(GR_COORD)g(y2\);)396 |
1611 y Fh(Dra)o(ws)25 b(a)g(line)f(using)g(the)h(speci\002ed)g |
(graphics)f(conte)o(xt)g(on)g(the)h(speci\002ed)g(dra)o(w)o(able)g |
(from)f(\(x1,)396 1741 y(y1\))h(to)f(\(x2,)h(y2\),)g(with)f |
(coordinates)g(gi)n(v)o(en)f(relati)n(v)o(e)h(to)g(the)h(dra)o(w)o |
(able.)893 2052 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(line)f(on)896 2207 y Fa(gc)h |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h |
(when)g(dra)o(wing)f(the)g(line)897 2361 y Fa(x1)g Fh(:)50 |
b(the)24 b(X)h(coordinate)f(of)h(the)g(start)f(of)h(the)g(line)f |
(relati)n(v)o(e)g(to)g(the)h(dra)o(w)o(able)897 2516 |
y Fa(y1)f Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(start)f(of)h |
(the)g(line)f(relati)n(v)o(e)g(to)g(the)h(dra)o(w)o(able)897 |
2670 y Fa(x2)f Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(end)g(of) |
g(the)f(line)h(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)897 |
2824 y Fa(y2)g Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(end)g(of) |
g(the)f(line)h(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)396 |
3321 y Fb(GrP)-5 b(oint)33 b(\(\))396 3537 y Fc(void)430 |
b(GrPoint)1343 b(\(GR_DRAW_ID)52 b(id,)2817 3654 y(GR_GC_ID)g(gc,)2817 |
3770 y(GR_COORD)g(x,)2817 3887 y(GR_COORD)g(y\);)396 |
4116 y Fh(Dra)o(ws)25 b(a)g(point)f(using)f(the)i(speci\002ed)g |
(graphics)g(conte)o(xt)e(at)i(the)g(speci\002ed)g(position)e(on)h(the) |
396 4245 y(speci\002ed)h(dra)o(w)o(able.)893 4557 y Fa(id)j |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(dra)o(w)f(a)h |
(point)f(on)896 4711 y Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(graphics)f(conte)o(xt)g(to)g(use)h(when)g(dra)o(wing)f(the)g(point)p |
Black -2 5278 a Fg(24)p Black eop |
%%Page: 25 25 |
25 24 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 951 587 a Fa(x)g Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o |
(w)f(the)h(point)f(at)h(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)948 |
741 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f(the) |
h(point)f(at)h(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)396 |
1237 y Fb(GrP)-5 b(oints)34 b(\(\))396 1454 y Fc(void)430 |
b(GrPoints)1289 b(\(GR_DRAW_ID)52 b(id,)2817 1570 y(GR_GC_ID)g(gc,)2817 |
1687 y(GR_COUNT)g(count,)2817 1803 y(GR_POINT)g(*point-)396 |
1920 y(table\);)396 2149 y Fh(Dra)o(ws)25 b(a)g(set)f(of)h(points)f |
(using)g(the)g(speci\002ed)h(graphics)g(conte)o(xt)e(at)i(the)g |
(positions)e(speci\002ed)i(by)396 2278 y(the)g(point)f(table)g(on)h |
(the)f(speci\002ed)h(dra)o(w)o(able.)893 2590 y Fa(id)j |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(dra)o(w)f(a)h |
(point)f(on)896 2744 y Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(graphics)f(conte)o(xt)g(to)g(use)h(when)g(dra)o(wing)f(the)g(point)717 |
2899 y Fa(count)g Fh(:)50 b(the)24 b(number)g(of)h(points)f(in)g(the)h |
(point)f(table)443 3053 y Fa(pointtable)f Fh(:)i(pointer)f(to)g(a)h |
(GR_POINT)h(array)f(which)g(lists)e(the)i(points)e(to)i(dra)o(w)396 |
3654 y Fb(GrRect)34 b(\(\))396 3870 y Fc(void)430 b(GrRect)1397 |
b(\(GR_DRAW_ID)52 b(id,)2817 3987 y(GR_GC_ID)g(gc,)2817 |
4104 y(GR_COORD)g(x,)2817 4220 y(GR_COORD)g(y,)2817 4337 |
y(GR_SIZE)h(width,)2817 4453 y(GR_SIZE)g(height\);)396 |
4682 y Fh(Dra)o(w)25 b(the)g(boundary)f(of)h(a)g(rectangle)g(of)g(the)f |
(speci\002ed)h(dimensions)e(and)i(position)e(on)i(the)396 |
4812 y(speci\002ed)g(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h |
(graphics)g(conte)o(xt.)p Black 3784 5278 a Fg(25)p Black |
eop |
%%Page: 26 26 |
26 25 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 893 587 a Fa(id)d Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(rectangle)g(on)896 741 y |
Fa(gc)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g |
(use)h(when)g(dra)o(wing)f(the)g(rectangle)951 895 y |
Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(rectangle)g |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 1050 |
y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(rectangle)g |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)717 1204 |
y Fa(width)f Fh(:)50 b(the)24 b(width)g(of)h(the)g(rectangle)657 |
1359 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g(rectangle)396 |
1855 y Fb(GrFillRect)35 b(\(\))396 2071 y Fc(void)430 |
b(GrFillRect)1181 b(\(GR_DRAW_ID)52 b(id,)2817 2188 y(GR_GC_ID)g(gc,) |
2817 2304 y(GR_COORD)g(x,)2817 2421 y(GR_COORD)g(y,)2817 |
2537 y(GR_SIZE)h(width,)2817 2654 y(GR_SIZE)g(height\);)396 |
2883 y Fh(Dra)o(w)25 b(a)g(\002lled)g(rectangle)g(of)g(the)f |
(speci\002ed)h(dimensions)e(and)i(position)e(on)i(the)f(speci\002ed)396 |
3013 y(dra)o(w)o(able)h(using)f(the)g(speci\002ed)h(graphics)g(conte)o |
(xt.)893 3324 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(rectangle)g(on)896 3479 |
y Fa(gc)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g |
(to)g(use)h(when)g(dra)o(wing)f(the)g(rectangle)951 3633 |
y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(rectangle)g |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 3788 |
y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(rectangle)g |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)717 3942 |
y Fa(width)f Fh(:)50 b(the)24 b(width)g(of)h(the)g(rectangle)657 |
4096 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g(rectangle)396 |
4593 y Fb(GrP)-5 b(ol)n(y)34 b(\(\))396 4809 y Fc(void)430 |
b(GrPoly)1397 b(\(GR_DRAW_ID)52 b(id,)p Black -2 5278 |
a Fg(26)p Black eop |
%%Page: 27 27 |
27 26 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_GC_ID)52 b(gc,)2817 695 y(GR_COUNT)g(count,)2817 |
812 y(GR_POINT)g(*point-)396 929 y(table\);)396 1158 |
y Fh(Dra)o(ws)25 b(an)g(un\002lled)f(polygon)f(on)i(the)g(speci\002ed)g |
(dra)o(w)o(able)f(using)g(the)h(speci\002ed)g(graphics)396 |
1287 y(conte)o(xt.)30 b(The)25 b(polygon)e(is)i(speci\002ed)g(by)f(an)h |
(array)h(of)f(point)e(structures.)30 b(The)25 b(polygon)f(is)g(not)396 |
1417 y(automatically)g(closed-)g(if)h(a)g(closed)g(polygon)e(is)h |
(desired,)h(the)g(last)f(point)g(must)f(be)i(the)g(same)f(as)396 |
1546 y(the)h(\002rst.)893 1838 y Fa(id)j Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(dra)o(w)f(the)h(polygon)e(onto) |
896 1992 y Fa(gc)i Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte) |
o(xt)g(to)g(use)h(when)g(dra)o(wing)f(the)g(polygon)717 |
2146 y Fa(count)g Fh(:)50 b(the)24 b(number)g(of)h(points)f(in)g(the)h |
(point)f(array)443 2301 y Fa(pointtable)f Fh(:)i(pointer)f(to)g(an)h |
(array)h(of)f(points)e(describing)h(the)h(polygon)396 |
2922 y Fb(GrFillP)-5 b(ol)n(y)35 b(\(\))396 3138 y Fc(void)430 |
b(GrFillPoly)1181 b(\(GR_DRAW_ID)52 b(id,)2817 3255 y(GR_GC_ID)g(gc,) |
2817 3371 y(GR_COUNT)g(count,)2817 3488 y(GR_POINT)g(*point-)396 |
3605 y(table\);)396 3834 y Fh(Dra)o(ws)25 b(a)g(\002lled)g(polygon)e |
(on)i(the)f(speci\002ed)h(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h |
(graphics)g(conte)o(xt.)396 3963 y(The)g(polygon)f(is)g(speci\002ed)h |
(by)g(an)f(array)i(of)f(point)f(structures.)30 b(The)25 |
b(polygon)e(is)h(automatically)396 4093 y(closed-)h(the)g(last)f(point) |
g(need)h(not)f(be)h(the)f(same)h(as)g(the)g(\002rst)f(in)h(order)g(for) |
g(the)g(polygon)e(to)i(be)396 4222 y(closed.)893 4514 |
y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(dra) |
o(w)f(the)h(polygon)e(onto)896 4668 y Fa(gc)i Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h(when)g |
(dra)o(wing)f(the)g(polygon)717 4822 y Fa(count)g Fh(:)50 |
b(the)24 b(number)g(of)h(points)f(in)g(the)h(point)f(array)p |
Black 3780 5278 a Fg(27)p Black eop |
%%Page: 28 28 |
28 27 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 443 587 a Fa(pointtable)23 b Fh(:)i(pointer)f(to)g(an)h(array)h |
(of)f(points)e(describing)h(the)h(polygon)396 1208 y |
Fb(GrEllipse)34 b(\(\))396 1424 y Fc(void)430 b(GrEllipse)1235 |
b(\(GR_DRAW_ID)52 b(id,)2817 1541 y(GR_GC_ID)g(gc,)2817 |
1657 y(GR_COORD)g(x,)2817 1774 y(GR_COORD)g(y,)2817 1890 |
y(GR_SIZE)h(rx,)2817 2007 y(GR_SIZE)g(ry\);)396 2236 |
y Fh(Dra)o(ws)25 b(the)f(boundary)h(of)f(ellipse)g(at)h(the)g |
(speci\002ed)g(position)e(using)h(the)g(speci\002ed)i(dimensions)396 |
2365 y(and)f(graphics)f(conte)o(xt)g(on)h(the)f(speci\002ed)h(dra)o(w)o |
(able.)893 2677 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(ellipse)f(on)896 2831 y |
Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g |
(use)h(when)g(dra)o(wing)f(the)g(ellipse)951 2986 y Fa(x)30 |
b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the)h(ellipse)f |
(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 |
3140 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f |
(the)h(ellipse)f(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)891 |
3295 y Fa(rx)30 b Fh(:)50 b(the)24 b(radius)h(of)f(the)h(ellipse)f(on)h |
(the)f(X)h(axis)888 3449 y Fa(ry)33 b Fh(:)50 b(the)24 |
b(radius)h(of)f(the)h(ellipse)f(on)h(the)f(Y)h(axis)396 |
3946 y Fb(GrFillEllipse)35 b(\(\))396 4162 y Fc(void)430 |
b(GrFillEllipse)1019 b(\(GR_DRAW_ID)52 b(id,)2817 4278 |
y(GR_GC_ID)g(gc,)2817 4395 y(GR_COORD)g(x,)2817 4511 |
y(GR_COORD)g(y,)2817 4628 y(GR_SIZE)h(rx,)2817 4745 y(GR_SIZE)g(ry\);)p |
Black -2 5278 a Fg(28)p Black eop |
%%Page: 29 29 |
29 28 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(Dra)o(ws)25 b(a)g(\002lled)g(ellipse)f(at)g(the)h |
(speci\002ed)g(position)e(using)h(the)h(speci\002ed)g(dimensions)d(and) |
396 708 y(graphics)j(conte)o(xt)e(on)i(the)g(speci\002ed)g(dra)o(w)o |
(able.)893 1020 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(\002lled)g(ellipse)f(on)896 |
1174 y Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o |
(xt)g(to)g(use)h(when)g(dra)o(wing)f(the)g(ellipse)951 |
1329 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f |
(the)h(ellipse)f(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 |
1483 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f |
(the)h(ellipse)f(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)891 |
1638 y Fa(rx)30 b Fh(:)50 b(the)24 b(radius)h(of)f(the)h(ellipse)f(on)h |
(the)f(X)h(axis)888 1792 y Fa(ry)33 b Fh(:)50 b(the)24 |
b(radius)h(of)f(the)h(ellipse)f(on)h(the)f(Y)h(axis)396 |
2289 y Fb(GrAr)n(c)33 b(\(\))396 2505 y Fc(void)430 b(GrArc)1451 |
b(\(GR_DRAW_ID)52 b(id,)2817 2621 y(GR_GC_ID)g(gc,)2817 |
2738 y(GR_COORD)g(x,)2817 2854 y(GR_COORD)g(y,)2817 2971 |
y(GR_SIZE)h(rx,)2817 3088 y(GR_SIZE)g(ry,)2817 3204 y(GR_COORD)f(ax,) |
2817 3321 y(GR_COORD)g(ay,)2817 3437 y(GR_COORD)g(bx,)2817 |
3554 y(GR_COORD)g(by,)2817 3670 y(int)h(type\);)396 3899 |
y Fh(Dra)o(ws)25 b(an)g(arc)g(with)f(the)h(speci\002ed)g(dimensions)e |
(at)i(the)f(speci\002ed)h(position)e(on)i(the)g(speci\002ed)396 |
4029 y(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h(graphics)g(conte)o |
(xt.)k(The)c(type)g(speci\002es)g(the)f(\002ll)h(type.)30 |
b(Possible)396 4158 y(v)n(alues)24 b(include)g(GR_ARC)i(and)f(GR_PIE.) |
893 4460 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f |
(to)h(dra)o(w)f(the)h(arc)g(on)896 4615 y Fa(gc)g Fh(:)50 |
b(the)24 b(graphics)h(conte)o(xt)e(to)i(use)f(when)h(dra)o(wing)f(the)h |
(arc)951 4769 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra) |
o(w)f(the)h(arc)h(at)e(relati)n(v)o(e)g(to)h(the)f(dra)o(w)o(able)p |
Black 3784 5278 a Fg(29)p Black eop |
%%Page: 30 30 |
30 29 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 948 587 a Fa(y)i Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o |
(w)f(the)h(arc)h(at)e(relati)n(v)o(e)g(to)h(the)f(dra)o(w)o(able)891 |
741 y Fa(rx)30 b Fh(:)50 b(the)24 b(radius)h(of)f(the)h(arc)h(on)e(the) |
h(X)g(axis)888 895 y Fa(ry)33 b Fh(:)50 b(the)24 b(radius)h(of)f(the)h |
(arc)h(on)e(the)h(Y)g(axis)891 1050 y Fa(ax)30 b Fh(:)50 |
b(the)24 b(X)h(coordinate)f(of)h(the)g(start)f(of)h(the)g(arc)h(relati) |
n(v)o(e)d(to)i(the)f(dra)o(w)o(able)888 1204 y Fa(ay)33 |
b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(start)f(of)h(the)g |
(arc)h(relati)n(v)o(e)d(to)i(the)f(dra)o(w)o(able)891 |
1359 y Fa(bx)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(end)g |
(of)g(the)f(arc)i(relati)n(v)o(e)e(to)g(the)h(dra)o(w)o(able)888 |
1513 y Fa(by)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(end)g |
(of)g(the)f(arc)i(relati)n(v)o(e)e(to)g(the)h(dra)o(w)o(able)777 |
1667 y Fa(type)f Fh(:)50 b(the)24 b(\002ll)h(style)f(to)g(use)h(when)g |
(dra)o(wing)f(the)g(arc)396 2174 y Fb(GrAr)n(cAngle)34 |
b(\(\))396 2390 y Fc(void)430 b(GrArcAngle)1181 b(\(GR_DRAW_ID)52 |
b(id,)2817 2507 y(GR_GC_ID)g(gc,)2817 2623 y(GR_COORD)g(x,)2817 |
2740 y(GR_COORD)g(y,)2817 2856 y(GR_SIZE)h(rx,)2817 2973 |
y(GR_SIZE)g(ry,)2817 3089 y(GR_COORD)f(angle1,)2817 3206 |
y(GR_COORD)g(angle2,)2817 3322 y(int)h(type\);)396 3552 |
y Fh(Dra)o(ws)25 b(an)g(arc)g(with)f(the)h(speci\002ed)g(dimensions)e |
(at)i(the)f(speci\002ed)h(position)e(on)i(the)g(speci\002ed)396 |
3681 y(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h(graphics)g(conte)o |
(xt.)k(The)c(type)g(speci\002es)g(the)f(\002ll)h(type.)30 |
b(Possible)396 3811 y(v)n(alues)24 b(include)g(GR_ARC)i(and)f(GR_PIE.)h |
(This)e(function)g(requires)g(\003oating)h(point)e(support,)396 |
3940 y(and)i(is)f(slightly)f(slo)n(wer)h(than)h(the)f(GrArc\(\))i |
(function)e(which)g(does)h(not)f(require)h(\003oating)g(point.)893 |
4252 y Fa(id)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h |
(dra)o(w)f(the)h(arc)g(on)896 4406 y Fa(gc)g Fh(:)50 |
b(the)24 b(graphics)h(conte)o(xt)e(to)i(use)f(when)h(dra)o(wing)f(the)h |
(arc)951 4561 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra) |
o(w)f(the)h(arc)h(at)e(relati)n(v)o(e)g(to)h(the)f(dra)o(w)o(able)948 |
4715 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f |
(the)h(arc)h(at)e(relati)n(v)o(e)g(to)h(the)f(dra)o(w)o(able)p |
Black -2 5278 a Fg(30)p Black eop |
%%Page: 31 31 |
31 30 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 891 587 a Fa(rx)g Fh(:)50 b(the)24 b(radius)h(of)f(the)h(arc)h |
(on)e(the)h(X)g(axis)888 741 y Fa(ry)33 b Fh(:)50 b(the)24 |
b(radius)h(of)f(the)h(arc)h(on)e(the)h(Y)g(axis)657 895 |
y Fa(angle1)f Fh(:)50 b(the)24 b(angle)h(of)g(the)f(start)h(of)g(the)f |
(arc)657 1050 y Fa(angle2)g Fh(:)50 b(the)24 b(angle)h(of)g(the)f(end)h |
(of)g(the)g(arc)777 1204 y Fa(type)f Fh(:)50 b(the)24 |
b(\002ll)h(style)f(to)g(use)h(when)g(dra)o(wing)f(the)g(arc)396 |
1701 y Fb(GrSetGCForegr)n(ound)33 b(\(\))396 1917 y Fc(void)430 |
b(GrSetGCForeground)803 b(\(GR_GC_ID)52 b(gc,)2817 2033 |
y(GR_COLOR)g(fore-)396 2150 y(ground\);)396 2379 y Fh(Changes)25 |
b(the)g(fore)o(ground)f(colour)g(of)h(the)g(speci\002ed)g(graphics)f |
(conte)o(xt)g(to)h(the)f(speci\002ed)h(colour)-5 b(.)896 |
2691 y Fa(gc)25 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o |
(xt)g(to)g(set)h(the)g(fore)o(ground)f(colour)g(of)439 |
2845 y Fa(foreground)j Fh(:)e(the)f(colour)h(to)f(use)h(as)g(the)f(ne)n |
(w)h(fore)o(ground)f(colour)396 3446 y Fb(GrSetGCBac)n(kgr)n(ound)34 |
b(\(\))396 3662 y Fc(void)430 b(GrSetGCBackground)803 |
b(\(GR_GC_ID)52 b(gc,)2817 3779 y(GR_COLOR)g(back-)396 |
3895 y(ground\);)396 4125 y Fh(Changes)24 b(the)f(background)g(colour)g |
(of)g(the)h(speci\002ed)f(graphics)g(conte)o(xt)f(to)h(the)h |
(speci\002ed)f(colour)-5 b(.)896 4436 y Fa(gc)25 b Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(set)h(the)g |
(background)f(colour)g(of)439 4591 y Fa(background)j |
Fh(:)e(the)f(colour)h(to)f(use)h(as)g(the)f(ne)n(w)h(background)f |
(colour)p Black 3784 5278 a Fg(31)p Black eop |
%%Page: 32 32 |
32 31 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 583 a Fb(GrSetGCUseBac)n(kgr)n(ound)k(\(\))396 |
799 y Fc(void)430 b(GrSetGCUseBackground)641 b(\(GR_GC_ID)52 |
b(gc,)2817 916 y(GR_BOOL)h(flag\);)396 1145 y Fh(Sets)25 |
b(the)g(\003ag)g(which)g(chooses)f(whether)h(or)g(not)f(the)h |
(background)f(colour)g(is)h(used)f(when)396 1275 y(dra)o(wing)g |
(bitmaps)g(and)g(te)o(xt)g(using)g(the)h(speci\002ed)g(graphics)f |
(conte)o(xt)g(to)g(the)h(speci\002ed)g(v)n(alue.)896 |
1586 y Fa(gc)g Fh(:)50 b(the)23 b(ID)g(of)h(the)f(graphics)g(conte)o |
(xt)f(to)h(change)g(the)g("use)g(background")f(\003ag)i(of)771 |
1741 y Fa(flag)30 b Fh(:)50 b(\003ag)25 b(specifying)f(whether)h(to)f |
(use)h(the)f(background)h(colour)f(or)h(not)396 2237 |
y Fb(GrSetGCMode)34 b(\(\))396 2453 y Fc(void)430 b(GrSetGCMode)1127 |
b(\(GR_GC_ID)52 b(gc,)2817 2570 y(int)h(mode\);)396 2799 |
y Fh(Changes)25 b(the)g(dra)o(wing)f(mode)g(\(SET)-7 |
b(,)25 b(XOR,)g(OR,)g(AND,)g(etc.\))g(of)g(the)f(speci\002ed)i |
(graphics)396 2928 y(conte)o(xt)e(to)g(the)h(speci\002ed)g(mode.)896 |
3240 y Fa(gc)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o |
(xt)g(to)g(set)h(the)g(dra)o(wing)e(mode)i(of)777 3394 |
y Fa(mode)f Fh(:)50 b(the)24 b(ne)n(w)h(dra)o(wing)e(mode)396 |
3891 y Fb(GrSetGCFont)33 b(\(\))396 4107 y Fc(void)430 |
b(GrSetGCFont)1127 b(\(GR_GC_ID)52 b(gc,)2817 4223 y(GR_FONT_ID)g |
(font\);)396 4453 y Fh(Sets)25 b(the)g(font)f(to)h(be)g(used)f(for)h |
(te)o(xt)f(dra)o(wing)g(in)g(the)h(speci\002ed)g(graphics)g(conte)o(xt) |
e(to)i(the)396 4582 y(speci\002ed)g(font)g(ID.)p Black |
-2 5278 a Fg(32)p Black eop |
%%Page: 33 33 |
33 32 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 896 587 a Fa(gc)25 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics) |
f(conte)o(xt)g(to)g(set)h(the)g(font)f(of)777 741 y Fa(font)g |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(font)396 1237 y Fb(GrGetGCT)-7 |
b(e)n(xtSiz)q(e)35 b(\(\))396 1454 y Fc(void)430 b(GrGetGCTextSize)911 |
b(\(GR_GC_ID)52 b(gc,)2817 1570 y(void)h(*str,)2817 1687 |
y(int)g(count,)2817 1803 y(int)g(flags,)2817 1920 y(GR_SIZE)g |
(*retwidth,)2817 2036 y(GR_SIZE)g(*retheight,)2817 2153 |
y(GR_SIZE)g(*retbase\);)396 2382 y Fh(Calculates)25 b(the)g(dimensions) |
e(of)i(the)f(speci\002ed)h(te)o(xt)f(string)g(using)g(the)g(current)h |
(font)g(and)g(\003ags)g(in)396 2512 y(the)g(speci\002ed)g(graphics)f |
(conte)o(xt.)30 b(The)25 b(count)f(ar)n(gument)h(can)g(be)g(-1)g(if)f |
(the)h(string)f(is)g(null)396 2641 y(terminated.)896 |
2932 y Fa(gc)h Fh(:)50 b(the)24 b(graphics)h(conte)o(xt)833 |
3087 y Fa(str)j Fh(:)50 b(pointer)24 b(to)g(a)h(te)o(xt)f(string)717 |
3241 y Fa(count)g Fh(:)50 b(the)24 b(length)g(of)h(the)g(string)717 |
3396 y Fa(flags)f Fh(:)50 b(te)o(xt)23 b(rendering)i(\003ags)g |
(\(GR_TF*\))538 3550 y Fa(retwidth)e Fh(:)50 b(pointer)24 |
b(to)g(the)h(v)n(ariable)f(the)h(width)f(will)f(be)i(returned)g(in)478 |
3705 y Fa(retheight)e Fh(:)50 b(pointer)24 b(to)g(the)h(v)n(ariable)f |
(the)h(height)f(will)g(be)h(returned)f(in)598 3859 y |
Fa(retbase)f Fh(:)50 b(pointer)24 b(to)g(the)h(v)n(ariable)f(the)h |
(baseline)f(height)g(will)g(be)h(returned)g(in)396 4376 |
y Fb(GrReadArea)35 b(\(\))396 4592 y Fc(void)430 b(GrReadArea)1181 |
b(\(GR_DRAW_ID)52 b(id,)2817 4708 y(GR_COORD)g(x,)2817 |
4825 y(GR_COORD)g(y,)p Black 3784 5278 a Fg(33)p Black |
eop |
%%Page: 34 34 |
34 33 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(GR_SIZE)53 b(width,)2817 695 y(GR_SIZE)g(height,) |
2817 812 y(GR_PIXELVAL)f(*pix-)396 929 y(els\);)396 1158 |
y Fh(Reads)26 b(the)e(pix)o(el)g(data)h(of)g(the)f(speci\002ed)h(size)g |
(from)g(the)g(speci\002ed)g(position)e(on)h(the)h(speci\002ed)396 |
1287 y(dra)o(w)o(able)g(into)f(the)g(speci\002ed)h(pix)o(el)f(array)-6 |
b(.)31 b(If)25 b(the)g(dra)o(w)o(able)g(is)f(a)h(windo)n(w)-6 |
b(,)23 b(the)h(data)h(returned)396 1417 y(will)f(be)h(the)g(pix)o(el)e |
(v)n(alues)h(from)h(the)g(rele)n(v)n(ant)e(position)g(on)i(the)g |
(screen)g(re)o(gardless)f(of)h(whether)396 1546 y(the)g(windo)n(w)e(is) |
i(obscured)f(by)h(other)f(windo)n(ws.)29 b(If)d(the)e(windo)n(w)g(is)g |
(unmapped,)g(or)h(partially)f(or)396 1676 y(fully)g(outside)g(a)h |
(windo)n(w)f(boundary)-6 b(,)23 b(black)i(pix)o(el)f(v)n(alues)g(will)g |
(be)g(returned.)893 1987 y Fa(id)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(dra)o(w)o(able)f(to)h(read)g(an)g(area)h(from)951 2142 |
y Fa(x)k Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(read)g(the)g(area)h |
(from)e(relati)n(v)o(e)g(to)g(the)h(dra)o(w)o(able)948 |
2296 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(read)g(the)g |
(area)h(from)e(relati)n(v)o(e)g(to)g(the)h(dra)o(w)o(able)717 |
2451 y Fa(width)f Fh(:)50 b(the)24 b(width)g(of)h(the)g(area)g(to)g |
(read)657 2605 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g |
(area)g(to)g(read)657 2759 y Fa(pixels)f Fh(:)50 b(pointer)24 |
b(to)g(an)h(area)h(of)f(memory)f(to)g(place)h(the)g(pix)o(el)f(data)g |
(in)396 3256 y Fb(GrArea)34 b(\(\))396 3472 y Fc(void)430 |
b(GrArea)1397 b(\(GR_DRAW_ID)52 b(id,)2817 3589 y(GR_GC_ID)g(gc,)2817 |
3705 y(GR_COORD)g(x,)2817 3822 y(GR_COORD)g(y,)2817 3938 |
y(GR_SIZE)h(width,)2817 4055 y(GR_SIZE)g(height,)2817 |
4171 y(void)g(*pixels,)2817 4288 y(int)g(pixtype\);)396 |
4517 y Fh(Dra)o(ws)25 b(the)f(speci\002ed)h(pix)o(el)f(array)i(of)f |
(the)f(speci\002ed)h(size)g(and)g(format)f(onto)g(the)h(speci\002ed)396 |
4647 y(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h(graphics)g(conte)o |
(xt)e(at)i(the)g(speci\002ed)g(position.)k(Note)24 b(that)h(colour)396 |
4776 y(con)l(v)o(ersion)f(is)g(currently)h(only)f(performed)h(when)f |
(using)g(the)h(GR_PF_RGB)h(format,)f(which)f(is)p Black |
-2 5278 a Fg(34)p Black eop |
%%Page: 35 35 |
35 34 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(an)25 b(unsigned)f(long)g(containing)f(RGBX)j(data.) |
893 890 y Fa(id)i Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f |
(to)h(dra)o(w)f(the)h(area)h(onto)896 1045 y Fa(gc)f |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h |
(when)g(dra)o(wing)f(the)g(area)951 1199 y Fa(x)30 b |
Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the)h(area)h(at)f |
(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)948 1354 |
y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f(the)h |
(area)h(at)f(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)717 |
1508 y Fa(width)g Fh(:)50 b(the)24 b(width)g(of)h(the)g(area)657 |
1663 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g(area)657 |
1817 y Fa(pixels)f Fh(:)50 b(pointer)24 b(to)g(an)h(array)h(containing) |
d(the)i(pix)o(el)e(data)598 1971 y Fa(pixtype)g Fh(:)50 |
b(the)24 b(format)h(of)g(the)f(pix)o(el)g(data)396 2468 |
y Fb(GrCop)n(yArea)35 b(\(\))396 2684 y Fc(void)430 b(GrCopyArea)1181 |
b(\(GR_DRAW_ID)52 b(id,)2817 2801 y(GR_GC_ID)g(gc,)2817 |
2917 y(GR_COORD)g(x,)2817 3034 y(GR_COORD)g(y,)2817 3150 |
y(GR_SIZE)h(width,)2817 3267 y(GR_SIZE)g(height,)2817 |
3383 y(GR_DRAW_ID)f(srcid,)2817 3500 y(GR_COORD)g(srcx,)2817 |
3617 y(GR_COORD)g(srcy,)2817 3733 y(int)h(op\);)396 3962 |
y Fh(Copies)25 b(the)g(speci\002ed)g(area)g(of)g(the)g(speci\002ed)g |
(size)g(between)g(the)f(speci\002ed)h(dra)o(w)o(ables)g(at)g(the)396 |
4092 y(speci\002ed)g(positions)e(using)h(the)h(speci\002ed)g(graphics)f |
(conte)o(xt)g(and)h(R)l(OP)g(codes.)31 b(0)25 b(is)f(a)h(sensible)396 |
4221 y(def)o(ault)g(R)l(OP)h(code)f(in)f(most)g(cases.)893 |
4513 y Fa(id)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h |
(cop)o(y)f(the)h(area)h(to)896 4667 y Fa(gc)f Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h(when)g |
(cop)o(ying)f(the)g(area)951 4821 y Fa(x)30 b Fh(:)50 |
b(the)24 b(X)h(coordinate)f(to)h(cop)o(y)f(the)h(area)h(to)e(within)g |
(the)h(destination)e(dra)o(w)o(able)p Black 3784 5278 |
a Fg(35)p Black eop |
%%Page: 36 36 |
36 35 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 948 587 a Fa(y)i Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(cop)o |
(y)f(the)h(area)h(to)e(within)g(the)h(destination)e(dra)o(w)o(able)717 |
741 y Fa(width)h Fh(:)50 b(the)24 b(width)g(of)h(the)g(area)g(to)g(cop) |
o(y)657 895 y Fa(height)f Fh(:)50 b(the)24 b(height)g(of)h(the)g(area)g |
(to)g(cop)o(y)713 1050 y Fa(srcid)j Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(cop)o(y)f(the)h(area)h(from)772 |
1204 y Fa(srcx)j Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(cop)o(y)f |
(the)h(area)h(from)e(within)g(the)h(source)g(dra)o(w)o(able)769 |
1359 y Fa(srcy)32 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(cop)o(y)f |
(the)h(area)h(from)e(within)g(the)h(source)g(dra)o(w)o(able)896 |
1513 y Fa(op)g Fh(:)50 b(the)24 b(R)l(OP)i(codes)f(to)f(pass)h(to)f |
(the)h(blitter)e(when)i(performing)f(the)h(cop)o(y)396 |
2030 y Fb(GrBitmap)34 b(\(\))396 2246 y Fc(void)430 b(GrBitmap)1289 |
b(\(GR_DRAW_ID)52 b(id,)2817 2362 y(GR_GC_ID)g(gc,)2817 |
2479 y(GR_COORD)g(x,)2817 2596 y(GR_COORD)g(y,)2817 2712 |
y(GR_SIZE)h(width,)2817 2829 y(GR_SIZE)g(height,)2817 |
2945 y(GR_BITMAP)f(*im-)396 3062 y(agebits\);)396 3291 |
y Fh(Dra)o(ws)25 b(the)f(monochrome)g(bitmap)g(data)h(pro)o(vided)e(in) |
i(the)f(bitmaptable)g(ar)n(gument)g(at)h(the)396 3421 |
y(speci\002ed)g(position)e(on)i(the)g(speci\002ed)g(dra)o(w)o(able)f |
(using)g(the)h(speci\002ed)g(graphics)f(conte)o(xt.)30 |
b(Note)396 3550 y(that)25 b(the)f(bitmap)g(data)h(should)e(be)i(an)g |
(array)h(of)f(aligned)f(16)g(bit)h(w)o(ords.)30 b(The)25 |
b(usebackground)396 3680 y(\003ag)g(in)e(the)h(graphics)g(conte)o(xt)e |
(speci\002es)j(whether)e(to)h(dra)o(w)g(the)f(background)h(colour)f |
(where)n(v)o(er)h(a)396 3809 y(bit)g(v)n(alue)h(is)f(zero.)893 |
4100 y Fa(id)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h |
(dra)o(w)f(the)h(bitmap)f(onto)896 4255 y Fa(gc)h Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h(when)g |
(dra)o(wing)f(the)g(bitmap)951 4409 y Fa(x)30 b Fh(:)50 |
b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the)h(bitmap)f(at)h(relati)n |
(v)o(e)e(to)i(the)f(dra)o(w)o(able)948 4564 y Fa(y)33 |
b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f(the)h(bitmap)f(at) |
h(relati)n(v)o(e)e(to)i(the)f(dra)o(w)o(able)717 4718 |
y Fa(width)g Fh(:)50 b(the)24 b(width)g(of)h(the)g(bitmap)p |
Black -2 5278 a Fg(36)p Black eop |
%%Page: 37 37 |
37 36 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 657 587 a Fa(height)24 b Fh(:)50 b(the)24 b(height)g(of)h(the)g |
(bitmap)478 741 y Fa(imagebits)e Fh(:)396 1258 y Fb(GrFreeIma)o(g)q(e) |
35 b(\(\))396 1474 y Fc(void)430 b(GrFreeImage)1127 b(\(GR_IMAGE_ID)52 |
b(id\);)396 1703 y Fh(Destro)o(ys)24 b(the)h(speci\002ed)g(image)f(b)n |
(uf)n(fer)h(and)g(reclaims)f(the)h(memory)f(used)h(by)f(it.)893 |
2015 y Fa(id)k Fh(:)50 b(ID)25 b(of)f(the)h(image)g(b)n(uf)n(fer)f(to)h |
(free)396 2511 y Fb(GrGetIma)o(g)q(eInf)n(o)35 b(\(\))396 |
2727 y Fc(void)430 b(GrGetImageInfo)965 b(\(GR_IMAGE_ID)52 |
b(id,)2817 2844 y(GR_IMAGE_INFO)f(*iip\);)396 3073 y |
Fh(Fills)24 b(in)h(the)f(speci\002ed)i(image)e(information)f(structure) |
i(with)f(the)g(details)g(of)h(the)g(speci\002ed)g(image)396 |
3202 y(b)n(uf)n(fer)-5 b(.)893 3494 y Fa(id)28 b Fh(:)50 |
b(ID)25 b(of)f(an)h(image)g(b)n(uf)n(fer)836 3648 y Fa(iip)g |
Fh(:)50 b(pointer)24 b(to)g(a)h(GR_IMA)l(GE_INFO)g(structure)396 |
4165 y Fb(GrDra)n(wIma)o(g)q(eFr)n(omFile)35 b(\(\))396 |
4381 y Fc(void)430 b(GrDrawImageFromFile)695 b(\(GR_DRAW_ID)52 |
b(id,)2817 4497 y(GR_GC_ID)g(gc,)2817 4614 y(GR_COORD)g(x,)2817 |
4731 y(GR_COORD)g(y,)2817 4847 y(GR_SIZE)h(width,)p Black |
3780 5278 a Fg(37)p Black eop |
%%Page: 38 38 |
38 37 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(GR_SIZE)53 b(height,)2817 695 y(char)g(*path,)2817 |
812 y(int)g(flags\);)396 1041 y Fh(Loads)25 b(the)f(speci\002ed)h |
(image)g(\002le)g(and)g(dra)o(ws)f(it)g(at)h(the)g(speci\002ed)g |
(position)e(on)h(the)h(speci\002ed)396 1171 y(dra)o(w)o(able)g(using)f |
(the)g(speci\002ed)h(graphics)g(conte)o(xt.)k(The)c(width)f(and)h |
(height)f(v)n(alues)g(specify)g(the)396 1300 y(size)h(of)g(the)g(image) |
f(to)g(dra)o(w-)h(if)g(the)g(actual)f(image)h(is)f(a)h(dif)n(ferent)g |
(size,)f(it)h(will)f(be)h(scaled)f(to)h(\002t.)396 1430 |
y(The)g(image)f(type)h(is)f(automatically)g(detected)g(using)g(the)h |
(magic)f(numbers)g(in)h(the)f(image)h(header)396 1559 |
y(\(ie.)31 b(the)25 b(\002lename)g(e)o(xtension)e(is)h(irrele)n(v)n |
(ant\).)30 b(The)25 b(currently)g(supported)e(image)i(types)f(include) |
396 1689 y(GIF)-8 b(,)26 b(JPEG,)e(W)l(indo)n(ws)g(BMP)-11 |
b(,)25 b(PNG,)g(XPM,)g(and)f(both)g(ascii)h(and)g(binary)f(v)n(ariants) |
g(of)h(PBM,)396 1818 y(PGM,)g(and)g(PPM.)g(Ho)n(we)n(v)o(er)e(the)i |
(image)f(types)h(supported)f(by)g(a)h(particular)g(serv)o(er)g(depend)f |
(on)396 1948 y(which)h(image)f(types)g(were)i(enabled)e(in)h(the)g |
(serv)o(er)f(con\002guration)h(at)f(b)n(uild)g(time.)893 |
2259 y Fa(id)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h |
(dra)o(w)f(the)h(image)f(onto)896 2414 y Fa(gc)h Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h(when)g |
(dra)o(wing)f(the)g(image)951 2568 y Fa(x)30 b Fh(:)50 |
b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the)h(image)f(at)h(relati)n |
(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 2723 y Fa(y)33 |
b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f(the)h(image)f(at)h |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)717 2877 |
y Fa(width)f Fh(:)50 b(the)24 b(maximum)f(image)i(width)657 |
3031 y Fa(height)f Fh(:)50 b(the)24 b(maximum)f(image)i(height)777 |
3186 y Fa(path)f Fh(:)50 b(string)23 b(containing)h(the)h(\002lename)g |
(of)f(the)h(image)g(to)f(load)717 3340 y Fa(flags)g Fh(:)50 |
b(\003ags)25 b(speci\002c)g(to)f(the)h(particular)g(image)f(loader)396 |
3837 y Fb(GrLoadIma)o(g)q(eFr)n(omFile)36 b(\(\))396 |
4053 y Fc(GR_IMAGE_ID)52 b(GrLoadImageFromFile)695 b(\(char)53 |
b(*path,)2817 4169 y(int)g(flags\);)396 4399 y Fh(Loads)25 |
b(the)f(speci\002ed)h(image)g(\002le)g(into)f(a)h(ne)n(wly)f(created)h |
(serv)o(er)g(image)g(b)n(uf)n(fer)f(and)h(returns)g(the)396 |
4528 y(ID)g(of)g(the)g(b)n(uf)n(fer)-5 b(.)30 b(The)25 |
b(image)f(type)h(is)f(automatically)f(detected)i(using)f(the)h(magic)f |
(numbers)g(in)396 4658 y(the)h(image)f(header)i(\(ie.)31 |
b(the)24 b(\002lename)h(e)o(xtension)f(is)g(irrele)n(v)n(ant\).)30 |
b(The)24 b(currently)h(supported)396 4787 y(image)g(types)f(include)g |
(GIF)-8 b(,)25 b(JPEG,)g(W)l(indo)n(ws)e(BMP)-11 b(,)26 |
b(PNG,)f(XPM,)f(and)h(both)f(ascii)h(and)f(binary)p Black |
-2 5278 a Fg(38)p Black eop |
%%Page: 39 39 |
39 38 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(v)n(ariants)24 b(of)h(PBM,)g(PGM,)g(and)g(PPM.)g(Ho) |
n(we)n(v)o(er)e(the)i(image)f(types)h(supported)e(by)i(a)g(particular) |
396 708 y(serv)o(er)g(depend)g(on)f(which)h(image)f(types)g(were)i |
(enabled)e(in)h(the)g(serv)o(er)f(con\002guration)h(at)f(b)n(uild)396 |
838 y(time.)777 1129 y Fa(path)g Fh(:)50 b(string)23 |
b(containing)h(the)h(\002lename)g(of)f(the)h(image)g(to)f(load)717 |
1284 y Fa(flags)g Fh(:)50 b(\003ags)25 b(speci\002c)g(to)f(the)h |
(particular)g(image)f(loader)706 1438 y Fg(Returns)g |
Fh(:)50 b(ID)25 b(of)f(the)h(image)g(b)n(uf)n(fer)f(the)h(image)f(w)o |
(as)h(loaded)g(into)396 1955 y Fb(GrDra)n(wIma)o(g)q(eT)-10 |
b(oFit)36 b(\(\))396 2171 y Fc(void)430 b(GrDrawImageToFit)857 |
b(\(GR_DRAW_ID)52 b(id,)2817 2288 y(GR_GC_ID)g(gc,)2817 |
2404 y(GR_COORD)g(x,)2817 2521 y(GR_COORD)g(y,)2817 2637 |
y(GR_SIZE)h(width,)2817 2754 y(GR_SIZE)g(height,)2817 |
2870 y(GR_IMAGE_ID)f(im-)396 2987 y(ageid\);)396 3216 |
y Fh(Dra)o(ws)25 b(the)f(image)h(from)f(the)h(speci\002ed)g(image)f(b)n |
(uf)n(fer)h(at)g(the)g(speci\002ed)g(position)e(on)h(the)396 |
3346 y(speci\002ed)h(dra)o(w)o(able)g(using)f(the)g(speci\002ed)h |
(graphics)g(conte)o(xt.)k(The)c(width)f(and)h(height)f(v)n(alues)396 |
3475 y(specify)h(the)g(size)f(of)h(the)g(image)f(to)h(dra)o(w-)f(if)h |
(the)g(actual)g(image)f(is)g(a)i(dif)n(ferent)e(size,)h(it)f(will)g(be) |
396 3605 y(scaled)h(to)g(\002t.)893 3896 y Fa(id)j Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h(dra)o(w)f(the)h(image) |
f(onto)896 4050 y Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f |
(conte)o(xt)g(to)g(use)h(when)g(dra)o(wing)f(the)g(image)951 |
4205 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f |
(the)h(image)f(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 |
4359 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f |
(the)h(image)f(at)h(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)717 |
4514 y Fa(width)f Fh(:)50 b(the)24 b(maximum)f(image)i(width)657 |
4668 y Fa(height)f Fh(:)50 b(the)24 b(maximum)f(image)i(height)594 |
4822 y Fa(imageid)i Fh(:)50 b(the)24 b(ID)h(of)g(the)g(image)f(b)n(uf)n |
(fer)h(containing)e(the)i(image)g(to)f(display)p Black |
3784 5278 a Fg(39)p Black eop |
%%Page: 40 40 |
40 39 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 583 a Fb(GrDra)n(wIma)o(g)q(eBits)36 b(\(\))396 |
799 y Fc(void)430 b(GrDrawImageBits)911 b(\(GR_DRAW_ID)52 |
b(id,)2817 916 y(GR_GC_ID)g(gc,)2817 1032 y(GR_COORD)g(x,)2817 |
1149 y(GR_COORD)g(y,)2817 1266 y(GR_IMAGE_HDR)g(*pim-)396 |
1382 y(age\);)396 1611 y Fh(Dra)o(ws)25 b(the)f(image)h(contained)f(in) |
g(the)h(speci\002ed)g(image)g(structure)f(onto)g(the)h(speci\002ed)g |
(dra)o(w)o(able)396 1741 y(at)g(the)g(speci\002ed)g(coordinates)f |
(using)g(the)g(speci\002ed)i(graphics)e(conte)o(xt.)893 |
2052 y Fa(id)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o(able)f(to)h |
(dra)o(w)f(the)h(image)f(onto)896 2207 y Fa(gc)h Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt)g(to)g(use)h(when)g |
(dra)o(wing)f(the)g(image)951 2361 y Fa(x)30 b Fh(:)50 |
b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the)h(image)f(at)h(relati)n |
(v)o(e)f(to)g(the)h(dra)o(w)o(able)948 2516 y Fa(y)33 |
b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f(the)h(image)f(at)h |
(relati)n(v)o(e)f(to)g(the)h(dra)o(w)o(able)657 2670 |
y Fa(pimage)f Fh(:)50 b(pointer)24 b(to)g(the)h(image)f(structure)396 |
3166 y Fb(GrT)-7 b(e)n(xt)34 b(\(\))396 3383 y Fc(void)430 |
b(GrText)1397 b(\(GR_DRAW_ID)52 b(id,)2817 3499 y(GR_GC_ID)g(gc,)2817 |
3616 y(GR_COORD)g(x,)2817 3732 y(GR_COORD)g(y,)2817 3849 |
y(void)h(*str,)2817 3965 y(GR_COUNT)f(count,)2817 4082 |
y(int)h(flags\);)396 4311 y Fh(Dra)o(ws)25 b(the)f(speci\002ed)h(te)o |
(xt)f(string)g(at)h(the)g(speci\002ed)g(position)e(on)h(the)h |
(speci\002ed)g(dra)o(w)o(able)f(using)396 4441 y(the)h(speci\002ed)g |
(graphics)f(conte)o(xt)g(and)h(\003ags.)31 b(The)25 b(def)o(ault)f |
(\003ags)h(specify)g(ASCII)h(encoding)e(and)396 4570 |
y(baseline)h(alignment.)p Black -2 5278 a Fg(40)p Black |
eop |
%%Page: 41 41 |
41 40 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 893 587 a Fa(id)e Fh(:)50 b(the)24 b(ID)h(of)g(the)g(dra)o(w)o |
(able)f(to)h(dra)o(w)f(the)h(te)o(xt)f(string)g(onto)896 |
741 y Fa(gc)h Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o(xt) |
g(to)g(use)h(when)g(dra)o(wing)f(the)g(te)o(xt)g(string)951 |
895 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(dra)o(w)f(the) |
h(string)f(at)h(relati)n(v)o(e)e(to)i(the)g(dra)o(w)o(able)948 |
1050 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(to)h(dra)o(w)f |
(the)h(string)f(at)h(relati)n(v)o(e)e(to)i(the)g(dra)o(w)o(able)833 |
1204 y Fa(str)j Fh(:)50 b(the)24 b(te)o(xt)g(string)g(to)g(dra)o(w)717 |
1359 y Fa(count)g Fh(:)50 b(the)24 b(number)g(of)h(characters)h(\(not)e |
(bytes\))h(in)f(the)h(string)717 1513 y Fa(flags)f Fh(:)50 |
b(\003ags)25 b(specifying)f(te)o(xt)f(encoding,)h(alignment,)g(etc.)-2 |
2307 y Ff(e)m(vents)47 b(\(3\))396 2786 y Fe(Name)396 |
2988 y Fd(events)24 b Fh(\227)396 3381 y Fe(Synopsis)396 |
3831 y Fc(void)430 b(GrSelectEvents)965 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 3947 y(GR_EVENT_MASK)f(eventmask\);)396 4064 |
y(void)430 b(GrGetNextEvent)965 b(\(GR_EVENT)52 b(*ep\);)396 |
4180 y(void)430 b(GrGetNextEventTimeout)587 b(\(GR_EVENT)52 |
b(*ep,)2817 4297 y(GR_TIMEOUT)g(timeout\);)396 4413 y(void)430 |
b(GrCheckNextEvent)857 b(\(GR_EVENT)52 b(*ep\);)396 4530 |
y(int)484 b(GrPeekEvent)1127 b(\(GR_EVENT)52 b(*ep\);)p |
Black 3784 5278 a Fg(41)p Black eop |
%%Page: 42 42 |
42 41 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 601 a Fe(Description)396 1116 y(Details)396 |
1461 y Fb(GrSelectEvents)k(\(\))396 1677 y Fc(void)430 |
b(GrSelectEvents)965 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
1793 y(GR_EVENT_MASK)f(event-)396 1910 y(mask\);)396 |
2139 y Fh(Select)26 b(the)e(e)n(v)o(ent)g(types)g(which)h(should)e(be)i |
(returned)g(for)g(the)g(speci\002ed)g(windo)n(w)-6 b(.)833 |
2451 y Fa(wid)28 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(set)f(the)h(e)n(v)o(ent)f(mask)g(of)475 2605 y Fa(eventmask)i |
Fh(:)50 b(a)25 b(bit)f(\002eld)h(specifying)f(the)g(desired)h(e)n(v)o |
(ent)f(mask)396 3101 y Fb(GrGetNe)n(xtEvent)35 b(\(\))396 |
3318 y Fc(void)430 b(GrGetNextEvent)965 b(\(GR_EVENT)52 |
b(*ep\);)396 3547 y Fh(Gets)25 b(the)f(ne)o(xt)g(e)n(v)o(ent)g(from)h |
(the)f(e)n(v)o(ent)g(queue)h(and)g(places)f(it)h(in)f(the)h |
(speci\002ed)g(GR_EVENT)396 3676 y(structure.)31 b(If)25 |
b(the)g(queue)f(is)h(currently)f(empty)-6 b(,)24 b(we)h(sleep)f(until)g |
(the)h(ne)o(xt)f(e)n(v)o(ent)f(arri)n(v)o(es)h(from)h(the)396 |
3806 y(serv)o(er)g(or)g(input)f(is)g(read)h(on)g(a)g(\002le)g |
(descriptor)g(pre)n(viously)e(speci\002ed)i(by)f(GrRe)o |
(gisterInput\(\).)896 4117 y Fa(ep)h Fh(:)50 b(pointer)24 |
b(to)g(the)h(GR_EVENT)f(structure)h(to)f(return)h(the)g(e)n(v)o(ent)e |
(in)396 4614 y Fb(GrGetNe)n(xtEventTimeout)36 b(\(\))396 |
4830 y Fc(void)430 b(GrGetNextEventTimeout)587 b(\(GR_EVENT)52 |
b(*ep,)p Black -2 5278 a Fg(42)p Black eop |
%%Page: 43 43 |
43 42 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_TIMEOUT)52 b(time-)396 695 y(out\);)396 |
925 y Fh(Gets)25 b(the)f(ne)o(xt)g(e)n(v)o(ent)g(from)h(the)f(e)n(v)o |
(ent)g(queue)h(and)g(places)f(it)h(in)f(the)h(speci\002ed)g(GR_EVENT) |
396 1054 y(structure.)31 b(If)25 b(the)g(queue)f(is)h(currently)f |
(empty)-6 b(,)24 b(we)h(sleep)f(until)g(the)h(ne)o(xt)f(e)n(v)o(ent)f |
(arri)n(v)o(es)h(from)h(the)396 1184 y(serv)o(er)l(,)g(input)f(is)g |
(read)h(on)g(a)g(\002le)g(descriptor)g(pre)n(viously)e(speci\002ed)i |
(by)f(GrRe)o(gisterInput\(\),)g(or)h(a)396 1313 y(timeout)f(occurs.)30 |
b(Note)25 b(that)f(a)h(v)n(alue)g(of)g(0)f(for)h(the)g(timeout)e |
(parameter)j(doesn')n(t)e(mean)h("timeout)396 1443 y(after)h(0)e |
(milliseconds")f(b)n(ut)h(is)g(in)h(f)o(act)g(a)g(magic)f(number)h |
(meaning)f("ne)n(v)o(er)g(time)g(out".)896 1754 y Fa(ep)h |
Fh(:)50 b(pointer)24 b(to)g(the)h(GR_EVENT)f(structure)h(to)f(return)h |
(the)g(e)n(v)o(ent)e(in)598 1909 y Fa(timeout)g Fh(:)50 |
b(the)24 b(number)g(of)h(milliseconds)e(to)h(w)o(ait)h(before)g(timing) |
e(out)396 2405 y Fb(GrChec)n(kNe)n(xtEvent)36 b(\(\))396 |
2621 y Fc(void)430 b(GrCheckNextEvent)857 b(\(GR_EVENT)52 |
b(*ep\);)396 2850 y Fh(Gets)25 b(the)f(ne)o(xt)g(e)n(v)o(ent)g(from)h |
(the)f(e)n(v)o(ent)g(queue)h(if)g(there)g(is)f(one,)h(or)g(returns)f |
(immediately)f(with)h(an)396 2980 y(e)n(v)o(ent)g(type)g(of)h |
(GR_EVENT_TYPE_NONE)f(if)h(it)f(is)h(empty)-6 b(.)896 |
3291 y Fa(ep)25 b Fh(:)50 b(pointer)24 b(to)g(the)h(GR_EVENT)f |
(structure)h(to)f(return)h(the)g(e)n(v)o(ent)e(in)396 |
3788 y Fb(GrP)l(eekEvent)35 b(\(\))396 4004 y Fc(int)484 |
b(GrPeekEvent)1127 b(\(GR_EVENT)52 b(*ep\);)396 4233 |
y Fh(Fills)24 b(in)h(the)f(speci\002ed)i(e)n(v)o(ent)d(structure)i |
(with)f(a)h(cop)o(y)g(of)f(the)h(ne)o(xt)f(e)n(v)o(ent)g(on)g(the)h |
(queue,)g(without)396 4363 y(actually)g(remo)o(ving)e(it)h(from)h(the)f |
(queue.)31 b(An)25 b(e)n(v)o(ent)e(type)i(of)g(GR_EVENT_TYPE_NONE)f(is) |
396 4492 y(gi)n(v)o(en)g(if)g(the)h(queue)g(is)f(empty)-6 |
b(.)896 4804 y Fa(ep)25 b Fh(:)50 b(pointer)24 b(to)g(the)h(GR_EVENT)f |
(structure)h(to)f(return)h(the)g(e)n(v)o(ent)e(in)p Black |
3784 5278 a Fg(43)p Black eop |
%%Page: 44 44 |
44 43 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 706 587 a(Returns)24 b Fh(:)50 b(1)24 b(if)h(an)g(e)n(v)o(ent)f |
(w)o(as)h(returned,)f(or)h(0)g(if)g(the)f(queue)h(w)o(as)g(empty)-2 |
1380 y Ff(f)m(onts)48 b(\(3\))396 1860 y Fe(Name)396 |
2061 y Fd(fonts)24 b Fh(\227)396 2455 y Fe(Synopsis)396 |
2904 y Fc(GR_FONT_ID)106 b(GrCreateFont)1073 b(\(GR_CHAR)53 |
b(*name,)2817 3021 y(GR_COORD)f(height,)2817 3137 y(GR_LOGFONT)g |
(*plogfont\);)396 3254 y(void)430 b(GrSetFontSize)1019 |
b(\(GR_FONT_ID)52 b(fontid,)2817 3370 y(GR_COORD)g(size\);)396 |
3487 y(void)430 b(GrSetFontRotation)803 b(\(GR_FONT_ID)52 |
b(fontid,)2817 3604 y(int)h(tenthsdegrees\);)396 3720 |
y(void)430 b(GrSetFontAttr)1019 b(\(GR_FONT_ID)52 b(fontid,)2817 |
3837 y(int)h(setflags,)2817 3953 y(int)g(clrflags\);)396 |
4070 y(void)430 b(GrDestroyFont)1019 b(\(GR_FONT_ID)52 |
b(fontid\);)396 4186 y(void)430 b(GrGetFontInfo)1019 |
b(\(GR_FONT_ID)52 b(font,)2817 4303 y(GR_FONT_INFO)g(*fip\);)p |
Black -2 5278 a Fg(44)p Black eop |
%%Page: 45 45 |
45 44 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 601 a Fe(Description)396 1116 y(Details)396 |
1461 y Fb(GrCreateFont)k(\(\))396 1677 y Fc(GR_FONT_ID)106 |
b(GrCreateFont)1073 b(\(GR_CHAR)53 b(*name,)2817 1793 |
y(GR_COORD)f(height,)2817 1910 y(GR_LOGFONT)g(*plog-)396 |
2026 y(font\);)396 2256 y Fh(Attempts)23 b(to)h(locate)h(a)f(font)g |
(with)g(the)g(desired)h(attrib)n(utes)e(and)h(returns)g(a)h(font)f(ID)h |
(number)f(which)396 2385 y(can)h(be)g(used)g(to)f(refer)i(to)f(it.)30 |
b(If)25 b(the)g(plogfont)e(ar)n(gument)i(is)f(not)g(NULL,)h(the)f(v)n |
(alues)g(in)h(that)396 2515 y(structure)g(will)f(be)h(used)f(to)h |
(choose)f(a)h(font.)31 b(Otherwise,)24 b(if)h(the)f(height)g(is)h(non)f |
(zero,)h(the)g(b)n(uilt)e(in)396 2644 y(font)i(with)f(the)g(closest)g |
(height)g(to)h(that)f(speci\002ed)h(will)f(be)h(used.)31 |
b(If)25 b(the)f(height)g(is)h(zero,)g(the)g(b)n(uilt)396 |
2774 y(in)g(font)f(with)g(the)h(speci\002ed)g(name)g(will)e(be)i(used.) |
31 b(If)25 b(the)g(desired)f(font)h(is)f(not)g(found,)h(the)f(\002rst) |
396 2903 y(b)n(uilt)g(in)g(font)h(will)f(be)h(returned)f(as)h(a)g(last) |
g(resort.)777 3194 y Fa(name)f Fh(:)50 b(string)23 b(containing)h(the)h |
(name)f(of)h(a)g(b)n(uilt)f(in)g(font)h(to)f(look)g(for)657 |
3349 y Fa(height)g Fh(:)50 b(the)24 b(desired)h(height)f(of)h(the)f |
(font)538 3503 y Fa(plogfont)f Fh(:)50 b(pointer)24 b(to)g(a)h(LOGFONT) |
g(structure)706 3658 y Fg(Returns)f Fh(:)50 b(a)25 b(font)f(ID)h |
(number)f(which)h(can)g(be)g(used)f(to)h(refer)h(to)e(the)h(font)396 |
4174 y Fb(GrSetFontSiz)q(e)33 b(\(\))396 4391 y Fc(void)430 |
b(GrSetFontSize)1019 b(\(GR_FONT_ID)52 b(fontid,)2817 |
4507 y(GR_COORD)g(size\);)396 4736 y Fh(Changes)25 b(the)g(size)g(of)g |
(the)f(speci\002ed)h(font)g(to)f(the)h(speci\002ed)g(size.)p |
Black 3784 5278 a Fg(45)p Black eop |
%%Page: 46 46 |
46 45 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 654 587 a Fa(fontid)c Fh(:)50 b(the)24 b(ID)h(number)f(of)h(the)g |
(font)f(to)h(change)g(the)g(size)f(of)777 741 y Fa(size)g |
Fh(:)396 1237 y Fb(GrSetFontRotation)34 b(\(\))396 1454 |
y Fc(void)430 b(GrSetFontRotation)803 b(\(GR_FONT_ID)52 |
b(fontid,)2817 1570 y(int)h(tenthsdegrees\);)396 1799 |
y Fh(Changes)25 b(the)g(rotation)f(of)h(the)f(speci\002ed)h(font)g(to)f |
(the)h(speci\002ed)g(angle.)654 2111 y Fa(fontid)i Fh(:)50 |
b(the)24 b(ID)h(number)f(of)h(the)g(font)f(to)h(rotate)556 |
2265 y Fa(tenthsde-)396 2395 y(grees)f Fh(:)396 2996 |
y Fb(GrSetFontAttr)32 b(\(\))396 3212 y Fc(void)430 b(GrSetFontAttr) |
1019 b(\(GR_FONT_ID)52 b(fontid,)2817 3329 y(int)h(setflags,)2817 |
3445 y(int)g(clrflags\);)396 3674 y Fh(Changes)25 b(the)g(attrib)n |
(utes)f(\(GR_TFKERNING,)h(GR_TF)-7 b(ANTIALIAS,)396 3804 |
y(GR_TFUNDERLINE,)25 b(etc.\))h(of)f(the)f(speci\002ed)h(font)g |
(according)f(to)h(the)f(set)h(and)g(clear)g(mask)396 |
3933 y(ar)n(guments.)654 4245 y Fa(fontid)i Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(font)f(to)h(set)f(the)h(attrib)n(utes)f(of)538 |
4399 y Fa(setflags)f Fh(:)50 b(mask)24 b(specifying)g(attrib)n(ute)g |
(\003ags)h(to)f(set)538 4554 y Fa(clrflags)f Fh(:)50 |
b(mask)24 b(specifying)g(attrib)n(ute)g(\003ags)h(to)f(clear)p |
Black -2 5278 a Fg(46)p Black eop |
%%Page: 47 47 |
47 46 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 583 a Fb(GrDestr)n(o)n(yFont)j(\(\))396 799 |
y Fc(void)430 b(GrDestroyFont)1019 b(\(GR_FONT_ID)52 |
b(fontid\);)396 1028 y Fh(Frees)26 b(all)e(resources)i(associated)e |
(with)g(the)h(speci\002ed)g(font)f(ID,)h(and)g(if)g(the)f(font)h(is)f |
(a)h(non)f(b)n(uilt)g(in)396 1158 y(type)h(and)f(this)g(is)h(the)f |
(last)h(ID)g(referring)g(to)f(it,)h(unloads)f(the)g(font)h(from)f |
(memory)-6 b(.)654 1470 y Fa(fontid)27 b Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(font)f(to)h(destro)o(y)396 1966 y Fb(GrGetFontInf)n |
(o)33 b(\(\))396 2182 y Fc(void)430 b(GrGetFontInfo)1019 |
b(\(GR_FONT_ID)52 b(font,)2817 2299 y(GR_FONT_INFO)g(*fip\);)396 |
2528 y Fh(Fills)24 b(in)h(the)f(speci\002ed)i(GR_FONT_INFO)f(structure) |
f(with)h(information)e(re)o(garding)h(the)396 2657 y(speci\002ed)h |
(font.)777 2969 y Fa(font)f Fh(:)836 3123 y Fa(fip)h |
Fh(:)50 b(pointer)24 b(to)g(a)h(GR_FONT_INFO)h(structure)-2 |
3917 y Ff(pointer)48 b(\(3\))396 4397 y Fe(Name)396 4598 |
y Fd(pointer)24 b Fh(\227)p Black 3780 5278 a Fg(47)p |
Black eop |
%%Page: 48 48 |
48 47 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 601 a Fe(Synopsis)396 1050 y Fc(void)430 b(GrSetCursor)1127 |
b(\(GR_WINDOW_ID)52 b(wid,)2817 1166 y(GR_SIZE)h(width,)2817 |
1283 y(GR_SIZE)g(height,)2817 1400 y(GR_COORD)f(hotx,)2817 |
1516 y(GR_COORD)g(hoty,)2817 1633 y(GR_COLOR)g(foreground,)2817 |
1749 y(GR_COLOR)g(background,)2817 1866 y(GR_BITMAP)g(*fbbitmap,)2817 |
1982 y(GR_BITMAP)g(*bgbitmap\);)396 2099 y(void)430 b(GrMoveCursor)1073 |
b(\(GR_COORD)52 b(x,)2817 2215 y(GR_COORD)g(y\);)396 |
2332 y(void)430 b(GrInjectPointerEvent)641 b(\(MWCOORD)53 |
b(x,)2817 2449 y(MWCOORD)g(y,)2817 2565 y(int)g(button,)2817 |
2682 y(int)g(visible\);)396 3175 y Fe(Description)396 |
3690 y(Details)396 4035 y Fb(GrSetCur)n(sor)33 b(\(\))396 |
4251 y Fc(void)430 b(GrSetCursor)1127 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 4368 y(GR_SIZE)h(width,)2817 4484 y(GR_SIZE)g(height,)2817 |
4601 y(GR_COORD)f(hotx,)2817 4718 y(GR_COORD)g(hoty,)2817 |
4834 y(GR_COLOR)g(foreground,)p Black -2 5278 a Fg(48)p |
Black eop |
%%Page: 49 49 |
49 48 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_COLOR)52 b(background,)2817 695 |
y(GR_BITMAP)g(*fbbitmap,)2817 812 y(GR_BITMAP)g(*bg-)396 |
929 y(bitmap\);)396 1158 y Fh(Speci\002es)26 b(a)f(cursor)g(\(mouse)f |
(pointer)g(graphic\))h(to)g(display)e(when)i(the)g(mouse)f(pointer)g |
(is)g(o)o(v)o(er)396 1287 y(the)h(speci\002ed)g(windo)n(w)e(and)i |
(subsequently)e(created)j(children.)k(Points)24 b(in)h(the)f(bitmap)g |
(which)396 1417 y(ha)n(v)o(e)h(neither)f(the)h(fore)o(ground)f(or)h |
(background)f(bits)g(set)h(are)g(not)f(painted.)833 1728 |
y Fa(wid)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i(set)f |
(the)h(cursor)g(of)717 1883 y Fa(width)f Fh(:)50 b(the)24 |
b(width)g(of)h(the)g(pointer)f(bitmap)657 2037 y Fa(height)g |
Fh(:)50 b(the)24 b(height)g(of)h(the)g(pointer)f(bitmap)772 |
2192 y Fa(hotx)29 b Fh(:)50 b(the)24 b(X)h(coordinate)f(within)g(the)h |
(bitmap)e(used)i(as)g(the)f(tar)n(get)h(of)g(the)g(pointer)769 |
2346 y Fa(hoty)32 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(within)g(the)h |
(bitmap)e(used)i(as)g(the)f(tar)n(get)h(of)g(the)g(pointer)439 |
2500 y Fa(foreground)i Fh(:)e(the)f(colour)h(to)f(use)h(for)g(the)f |
(fore)o(ground)h(of)f(the)h(pointer)439 2759 y Fa(background)i |
Fh(:)e(the)f(colour)h(to)f(use)h(for)g(the)f(background)h(of)g(the)f |
(pointer)537 3019 y Fa(fbbitmap)g Fh(:)537 3173 y Fa(bgbitmap)g |
Fh(:)50 b(pointer)24 b(to)g(bitmap)g(data)h(specifying)f(the)g |
(background)g(of)h(the)g(pointer)396 3669 y Fb(GrMo)n(veCur)n(sor)33 |
b(\(\))396 3886 y Fc(void)430 b(GrMoveCursor)1073 b(\(GR_COORD)52 |
b(x,)2817 4002 y(GR_COORD)g(y\);)396 4231 y Fh(Mo)o(v)o(es)23 |
b(the)i(cursor)g(\(mouse)f(pointer\))g(to)h(the)f(speci\002ed)i |
(coordinates.)k(The)24 b(coordinates)h(are)396 4361 y(relati)n(v)o(e)f |
(to)g(the)h(root)f(windo)n(w)-6 b(,)23 b(where)j(\(0,0\))e(is)h(the)f |
(upper)h(left)g(hand)f(corner)i(of)f(the)f(screen.)32 |
b(The)396 4490 y(reference)27 b(point)c(used)i(for)g(the)g(pointer)f |
(is)g(that)g(of)h(the)g("hot)f(spot".)29 b(After)d(mo)o(ving)c(the)j |
(pointer)l(,)396 4620 y(the)g(graphic)g(used)f(for)h(the)g(pointer)f |
(will)g(change)h(to)f(the)h(graphic)g(de\002ned)g(for)g(use)g(in)f(the) |
396 4749 y(windo)n(w)g(which)g(it)g(is)h(o)o(v)o(er)-5 |
b(.)p Black 3784 5278 a Fg(49)p Black eop |
%%Page: 50 50 |
50 49 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 951 587 a Fa(x)f Fh(:)50 b(the)24 b(X)h(coordinate)f(to)h(mo)o(v) |
o(e)e(the)i(pointer)f(to)948 741 y Fa(y)33 b Fh(:)50 |
b(the)24 b(Y)h(coordinate)f(to)h(mo)o(v)o(e)e(the)i(pointer)f(to)396 |
1258 y Fb(GrInjectP)-5 b(ointerEvent)35 b(\(\))396 1474 |
y Fc(void)430 b(GrInjectPointerEvent)641 b(\(MWCOORD)53 |
b(x,)2817 1590 y(MWCOORD)g(y,)2817 1707 y(int)g(button,)2817 |
1824 y(int)g(visible\);)396 2053 y Fh(Sets)25 b(the)g(pointer)f(in)l |
(visible)f(if)i(the)g(visible)e(parameter)i(is)g(GR_F)-7 |
b(ALSE,)25 b(or)g(visible)e(if)i(it)f(is)396 2182 y(GR_TR)l(UE,)h(then) |
g(mo)o(v)o(es)e(the)i(pointer)f(to)g(the)h(speci\002ed)g(position)e |
(and)i(generates)g(a)g(mouse)396 2312 y(e)n(v)o(ent)f(with)g(the)h |
(speci\002ed)g(b)n(utton)e(status.)30 b(Also)24 b(performs)h(a)g |
(GrFlush\(\))g(so)f(that)g(the)h(e)n(v)o(ent)f(tak)o(es)396 |
2441 y(ef)n(fect)h(immediately)-6 b(.)951 2753 y Fa(x)30 |
b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(pointer)f(e)n(v)o(ent) |
g(rele)n(v)n(ant)g(to)g(the)h(root)f(windo)n(w)948 2907 |
y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinate)f(of)h(the)g(pointer)f(e) |
n(v)o(ent)g(rele)n(v)n(ant)g(to)g(the)h(root)f(windo)n(w)657 |
3062 y Fa(button)g Fh(:)50 b(the)24 b(pointer)g(b)n(utton)g(status)598 |
3216 y Fa(visible)f Fh(:)50 b(whether)24 b(to)h(display)e(the)i |
(pointer)f(after)i(the)e(e)n(v)o(ent)-2 4010 y Ff(colour)m(s)48 |
b(\(3\))396 4489 y Fe(Name)396 4691 y Fd(colours)24 b |
Fh(\227)p Black -2 5278 a Fg(50)p Black eop |
%%Page: 51 51 |
51 50 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 601 a Fe(Synopsis)396 1050 y Fc(void)430 b |
(GrGetSystemPalette)749 b(\(GR_PALETTE)52 b(*pal\);)396 |
1166 y(void)430 b(GrSetSystemPalette)749 b(\(GR_COUNT)52 |
b(first,)2817 1283 y(GR_PALETTE)g(*pal\);)396 1400 y(void)430 |
b(GrFindColor)1127 b(\(GR_COLOR)52 b(c,)2817 1516 y(GR_PIXELVAL)g |
(*retpixel\);)396 1633 y(GR_COLOR)214 b(GrGetSysColor)1019 |
b(\(int)53 b(index\);)396 2126 y Fe(Description)396 2641 |
y(Details)396 2986 y Fb(GrGetSystemP)l(alette)36 b(\(\))396 |
3202 y Fc(void)430 b(GrGetSystemPalette)749 b(\(GR_PALETTE)52 |
b(*pal\);)396 3431 y Fh(Retrie)n(v)o(es)24 b(the)h(system)f(palette)g |
(and)h(places)g(it)f(in)h(the)f(speci\002ed)h(palette)g(structure.)837 |
3743 y Fa(pal)f Fh(:)50 b(pointer)24 b(to)g(a)h(palette)g(structure)f |
(to)h(\002ll)f(in)h(with)f(the)g(system)g(palette)396 |
4239 y Fb(GrSetSystemP)l(alette)36 b(\(\))396 4455 y |
Fc(void)430 b(GrSetSystemPalette)749 b(\(GR_COUNT)52 |
b(first,)2817 4572 y(GR_PALETTE)g(*pal\);)396 4801 y |
Fh(Sets)25 b(the)g(system)f(palette)g(to)g(the)h(v)n(alues)f(stored)g |
(in)h(the)g(speci\002ed)g(palette)f(structure.)30 b(The)25 |
b(v)n(alues)p Black 3784 5278 a Fg(51)p Black eop |
%%Page: 52 52 |
52 51 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fh(before)26 b(the)e(speci\002ed)h(\002rst)g(v)n(alue)f |
(are)i(not)e(set.)717 890 y Fa(first)g Fh(:)50 b(the)24 |
b(\002rst)h(palette)g(v)n(alue)f(to)g(set)837 1045 y |
Fa(pal)g Fh(:)50 b(pointer)24 b(to)g(a)h(palette)g(structure)f |
(containing)g(the)g(ne)n(w)h(v)n(alues)396 1541 y Fb(GrFindColor)34 |
b(\(\))396 1757 y Fc(void)430 b(GrFindColor)1127 b(\(GR_COLOR)52 |
b(c,)2817 1874 y(GR_PIXELVAL)g(*ret-)396 1991 y(pixel\);)396 |
2220 y Fh(Calculates)25 b(the)g(pix)o(el)f(v)n(alue)g(to)g(use)h(to)f |
(display)g(the)h(speci\002ed)g(colour)f(v)n(alue.)30 |
b(The)25 b(colour)g(v)n(alue)396 2349 y(is)g(speci\002ed)g(as)g(a)g |
(GR_COLOR,)g(which)g(is)f(a)h(32)g(bit)f(truecolour)g(v)n(alue)g |
(stored)h(as)g(RGBX.)g(The)396 2479 y(pix)o(el)f(v)n(alue)g(size)h |
(depends)f(on)h(the)g(architecture.)956 2790 y Fa(c)g |
Fh(:)50 b(the)24 b(colour)h(v)n(alue)f(to)g(\002nd)538 |
2945 y Fa(retpixel)f Fh(:)50 b(pointer)24 b(to)g(the)h(returned)g(pix)o |
(el)e(v)n(alue)396 3441 y Fb(GrGetSysColor)34 b(\(\))396 |
3657 y Fc(GR_COLOR)214 b(GrGetSysColor)1019 b(\(int)53 |
b(index\);)712 4060 y Fa(index)29 b Fh(:)50 b(an)25 b(inde)o(x)e(into)h |
(the)h(serv)o(er')-5 b(s)24 b(colour)h(look)f(up)g(table)706 |
4214 y Fg(Returns)g Fh(:)50 b(the)24 b(colour)h(found)f(at)h(the)f |
(speci\002ed)i(inde)o(x)p Black -2 5278 a Fg(52)p Black |
eop |
%%Page: 53 53 |
53 52 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black -2 621 a Ff(regions)47 b(\(3\))396 1101 y Fe(Name)396 |
1303 y Fd(regions)24 b Fh(\227)396 1696 y Fe(Synopsis)396 |
2146 y Fc(GR_REGION_ID)52 b(GrNewRegion)1073 b(\(void\);)396 |
2262 y(void)430 b(GrDestroyRe-)396 2379 y(gion)914 b(\(GR_REGION_ID)51 |
b(region\);)396 2495 y(void)430 b(GrUnionRectWithRe-)396 |
2612 y(gion)591 b(\(GR_REGION_ID)51 b(region,)2817 2728 |
y(GR_RECT)i(*rect\);)396 2845 y(void)430 b(GrUnionRe-)396 |
2962 y(gion)1022 b(\(GR_REGION_ID)51 b(dst_rgn,)2817 |
3078 y(GR_REGION_ID)h(src_rgn1,)2817 3195 y(GR_REGION_ID)g(src_rgn2\);) |
396 3311 y(void)430 b(GrSubtractRe-)396 3428 y(gion)860 |
b(\(GR_REGION_ID)51 b(dst_rgn,)2817 3544 y(GR_REGION_ID)h(src_rgn1,) |
2817 3661 y(GR_REGION_ID)g(src_rgn2\);)396 3777 y(void)430 |
b(GrXorRe-)396 3894 y(gion)1129 b(\(GR_REGION_ID)51 b(dst_rgn,)2817 |
4011 y(GR_REGION_ID)h(src_rgn1,)2817 4127 y(GR_REGION_ID)g(src_rgn2\);) |
396 4244 y(void)430 b(GrIntersectRe-)396 4360 y(gion)806 |
b(\(GR_REGION_ID)52 b(dst_rgn,)2817 4477 y(GR_REGION_ID)g(src_rgn1,) |
2817 4593 y(GR_REGION_ID)g(src_rgn2\);)396 4710 y(void)430 |
b(GrSetGCRegion)1019 b(\(GR_GC_ID)52 b(gc,)2817 4827 |
y(GR_REGION_ID)g(region\);)p Black 3784 5278 a Fg(53)p |
Black eop |
%%Page: 54 54 |
54 53 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fc(GR_BOOL)268 b(GrPointInRe-)396 695 |
y(gion)914 b(\(GR_REGION_ID)51 b(region,)2817 812 y(GR_COORD)h(x,)2817 |
929 y(GR_COORD)g(y\);)396 1045 y(int)484 b(GrRectInRe-)396 |
1162 y(gion)968 b(\(GR_REGION_ID)51 b(region,)2817 1278 |
y(GR_COORD)h(x,)2817 1395 y(GR_COORD)g(y,)2817 1511 y(GR_COORD)g(w,) |
2817 1628 y(GR_COORD)g(h\);)396 1745 y(GR_BOOL)268 b(GrEmptyRe-)396 |
1861 y(gion)1022 b(\(GR_REGION_ID)51 b(region\);)396 |
1978 y(GR_BOOL)268 b(GrEqualRegion)1019 b(\(GR_REGION_ID)52 |
b(rgn1,)2817 2094 y(GR_REGION_ID)g(rgn2\);)396 2211 y(void)430 |
b(GrOffsetRe-)396 2327 y(gion)968 b(\(GR_REGION_ID)51 |
b(region,)2817 2444 y(GR_SIZE)i(dx,)2817 2560 y(GR_SIZE)g(dy\);)396 |
2677 y(int)484 b(GrGetRegion-)396 2794 y(Box)968 b(\(GR_REGION_ID)51 |
b(region,)2817 2910 y(GR_RECT)i(*rect\);)396 3027 y(GR_REGION_ID)f |
(GrNewPolygonRegion)695 b(\(int)53 b(mode,)2817 3143 |
y(GR_COUNT)f(count,)2817 3260 y(GR_POINT)g(*points\);)396 |
3753 y Fe(Description)396 4268 y(Details)396 4613 y Fb(GrNe)n(wRegion) |
35 b(\(\))396 4829 y Fc(GR_REGION_ID)52 b(GrNewRegion)1073 |
b(\(void\);)p Black -2 5278 a Fg(54)p Black eop |
%%Page: 55 55 |
55 54 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(Creates)c(a)f(ne)n(w)f(re)o(gion)g(structure)h(and)g |
(returns)f(the)h(ID)g(used)f(to)h(refer)h(to)e(it.)30 |
b(The)25 b(structure)g(is)396 708 y(initialised)e(with)h(a)h(set)g(of)g |
(def)o(ault)f(parameters.)706 1020 y Fg(Returns)g Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(ne)n(wly)f(created)h(re)o(gion)396 |
1516 y Fb(GrDestr)n(o)n(yRegion)34 b(\(\))396 1733 y |
Fc(void)430 b(GrDestroyRegion)911 b(\(GR_REGION_ID)52 |
b(re-)396 1849 y(gion\);)396 2078 y Fh(Destro)o(ys)24 |
b(the)h(re)o(gion)f(structure)g(with)g(the)h(speci\002ed)g(ID.)657 |
2390 y Fa(region)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o(gion)f |
(structure)g(to)h(destro)o(y)396 2886 y Fb(GrUnionRectWithRegion)36 |
b(\(\))396 3102 y Fc(void)430 b(GrUnionRectWithRegion)587 |
b(\(GR_REGION_ID)52 b(re-)396 3219 y(gion,)2817 3336 |
y(GR_RECT)h(*rect\);)396 3565 y Fh(Mak)o(es)25 b(a)g(union)f(of)h(the)f |
(speci\002ed)h(re)o(gion)f(and)h(the)g(speci\002ed)g(rectangle)g(and)g |
(places)g(the)f(result)396 3694 y(back)h(in)g(the)f(source)h(re)o |
(gion.)657 4006 y Fa(region)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o |
(gion)f(to)g(modify)777 4160 y Fa(rect)g Fh(:)50 b(a)25 |
b(pointer)f(to)g(the)h(rectangle)g(to)f(add)h(to)g(the)f(re)o(gion)396 |
4657 y Fb(GrUnionRegion)35 b(\(\))396 4873 y Fc(void)430 |
b(GrUnionRe-)p Black 3784 5278 a Fg(55)p Black eop |
%%Page: 56 56 |
56 55 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fc(gion)1022 b(\(GR_REGION_ID)51 b(dst_rgn,)2817 |
695 y(GR_REGION_ID)h(src_rgn1,)2817 812 y(GR_REGION_ID)g(src_rgn2\);) |
396 1041 y Fh(Mak)o(es)25 b(a)g(union)f(of)h(the)f(speci\002ed)h |
(source)g(re)o(gions)f(and)h(places)g(the)f(result)h(in)f(the)h |
(speci\002ed)396 1171 y(destination)e(re)o(gion.)598 |
1482 y Fa(dst_rgn)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(destination)e |
(re)o(gion)538 1637 y Fa(src_rgn1)g Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(\002rst)g(source)g(re)o(gion)538 1791 |
y Fa(src_rgn2)e Fh(:)50 b(the)24 b(ID)h(of)g(the)g(second)f(source)h |
(re)o(gion)396 2288 y Fb(GrSubtractRegion)34 b(\(\))396 |
2504 y Fc(void)430 b(GrSubtractRe-)396 2620 y(gion)860 |
b(\(GR_REGION_ID)51 b(dst_rgn,)2817 2737 y(GR_REGION_ID)h(src_rgn1,) |
2817 2853 y(GR_REGION_ID)g(src_rgn2\);)396 3083 y Fh(Subtracts)25 |
b(the)g(second)f(source)h(re)o(gion)f(from)h(the)f(\002rst)h(source)g |
(re)o(gion)f(and)h(places)g(the)f(result)h(in)396 3212 |
y(the)g(speci\002ed)g(destination)e(re)o(gion.)598 3524 |
y Fa(dst_rgn)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(destination)e(re)o |
(gion)538 3678 y Fa(src_rgn1)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(\002rst)g(source)g(re)o(gion)538 3832 y Fa(src_rgn2)e |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(second)f(source)h(re)o(gion)396 |
4329 y Fb(GrXorRegion)33 b(\(\))396 4545 y Fc(void)430 |
b(GrXorRe-)396 4662 y(gion)1129 b(\(GR_REGION_ID)51 b(dst_rgn,)2817 |
4778 y(GR_REGION_ID)h(src_rgn1,)p Black -2 5278 a Fg(56)p |
Black eop |
%%Page: 57 57 |
57 56 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_REGION_ID)52 b(src_rgn2\);)396 |
808 y Fh(Performs)25 b(a)h(logical)e(e)o(xclusi)n(v)o(e)e(OR)k |
(operation)e(on)g(the)h(speci\002ed)g(source)g(re)o(gions)f(and)g |
(places)396 938 y(the)h(result)f(in)h(the)f(destination)f(re)o(gion.)30 |
b(The)25 b(destination)e(re)o(gion)h(will)g(contain)g(only)g(the)h |
(parts)g(of)396 1067 y(the)g(source)g(re)o(gions)f(which)g(do)g(not)h |
(o)o(v)o(erlap.)598 1379 y Fa(dst_rgn)e Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(destination)e(re)o(gion)538 1533 y |
Fa(src_rgn1)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(\002rst)g(source)g(re) |
o(gion)538 1688 y Fa(src_rgn2)e Fh(:)50 b(the)24 b(ID)h(of)g(the)g |
(second)f(source)h(re)o(gion)396 2184 y Fb(GrInter)n(sectRegion)36 |
b(\(\))396 2400 y Fc(void)430 b(GrIntersectRe-)396 2517 |
y(gion)806 b(\(GR_REGION_ID)52 b(dst_rgn,)2817 2633 y(GR_REGION_ID)g |
(src_rgn1,)2817 2750 y(GR_REGION_ID)g(src_rgn2\);)396 |
2979 y Fh(Calculates)25 b(the)g(intersection)f(of)h(the)f(tw)o(o)h |
(speci\002ed)g(source)g(re)o(gions)e(and)i(places)g(the)g(result)f(in) |
396 3108 y(the)h(speci\002ed)g(destination)e(re)o(gion.)30 |
b(The)25 b(destination)e(re)o(gion)h(will)g(contain)g(only)g(the)h |
(parts)f(of)396 3238 y(the)h(source)g(re)o(gions)f(which)g(o)o(v)o |
(erlap)g(each)h(other)-5 b(.)598 3550 y Fa(dst_rgn)23 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(destination)e(re)o(gion)538 |
3704 y Fa(src_rgn1)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(\002rst)g |
(source)g(re)o(gion)538 3858 y Fa(src_rgn2)e Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(second)f(source)h(re)o(gion)396 |
4355 y Fb(GrSetGCRegion)35 b(\(\))396 4571 y Fc(void)430 |
b(GrSetGCRegion)1019 b(\(GR_GC_ID)52 b(gc,)2817 4688 |
y(GR_REGION_ID)g(re-)396 4804 y(gion\);)p Black 3780 |
5278 a Fg(57)p Black eop |
%%Page: 58 58 |
58 57 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fh(Sets)25 b(the)g(clip)f(mask)g(of)h(the)g |
(speci\002ed)g(graphics)g(conte)o(xt)e(to)i(the)f(speci\002ed)h(re)o |
(gion.)30 b(Subsequent)396 708 y(dra)o(wing)24 b(operations)g(using)g |
(this)g(graphics)g(conte)o(xt)g(will)g(not)g(dra)o(w)h(outside)e(the)i |
(speci\002ed)396 838 y(re)o(gion.)30 b(The)25 b(re)o(gion)f(ID)h(can)g |
(be)g(set)g(to)f(0)h(to)f(remo)o(v)o(e)g(the)h(clipping)e(re)o(gion)h |
(from)h(the)f(speci\002ed)396 967 y(graphics)h(conte)o(xt.)896 |
1279 y Fa(gc)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(graphics)f(conte)o |
(xt)g(to)g(set)h(the)g(clip)f(mask)g(of)657 1433 y Fa(region)g |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o(gion)f(to)g(use)h(as)g(the)f |
(clip)h(mask)396 1930 y Fb(GrP)-5 b(ointInRegion)35 b(\(\))396 |
2146 y Fc(GR_BOOL)268 b(GrPointInRegion)911 b(\(GR_REGION_ID)52 |
b(re-)396 2263 y(gion,)2817 2379 y(GR_COORD)g(x,)2817 |
2496 y(GR_COORD)g(y\);)396 2725 y Fh(T)-7 b(ests)25 b(whether)f(the)h |
(speci\002ed)g(point)f(is)g(within)g(the)g(speci\002ed)h(re)o(gion,)f |
(and)h(then)f(returns)h(either)396 2854 y(T)m(rue)g(or)g(F)o(alse)f |
(depending)g(on)h(the)g(result.)657 3166 y Fa(region)f |
Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o(gion)f(to)g(e)o(xamine)951 |
3320 y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinate)f(of)h(the)g(point)f |
(to)g(test)g(for)948 3475 y Fa(y)33 b Fh(:)50 b(the)24 |
b(Y)h(coordinate)f(of)h(the)g(point)f(to)g(test)g(for)706 |
3629 y Fg(Returns)g Fh(:)50 b(T)m(rue)24 b(if)h(the)f(point)g(is)h |
(within)e(the)i(re)o(gion,)f(or)h(F)o(alse)f(otherwise)396 |
4126 y Fb(GrRectInRegion)36 b(\(\))396 4342 y Fc(int)484 |
b(GrRectInRegion)965 b(\(GR_REGION_ID)52 b(re-)396 4458 |
y(gion,)2817 4575 y(GR_COORD)g(x,)2817 4691 y(GR_COORD)g(y,)2817 |
4808 y(GR_COORD)g(w,)p Black -2 5278 a Fg(58)p Black |
eop |
%%Page: 59 59 |
59 58 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 2817 579 a Fc(GR_COORD)52 b(h\);)396 808 y Fh(T)-7 |
b(ests)25 b(whether)f(the)h(speci\002ed)g(rectangle)g(is)f(contained)h |
(within)e(the)i(speci\002ed)g(re)o(gion.)30 b(Returns)396 |
938 y(GR_RECT_OUT)c(if)e(it)h(is)f(not)g(inside)g(it)g(at)h(all,)g |
(GR_RECT_ALLIN)g(if)g(it)f(is)g(completely)396 1067 y(contained)h |
(within)e(the)i(re)o(gion,)f(or)g(GR_RECT_P)-9 b(AR)j(TIN)27 |
b(if)d(it)h(is)f(partially)g(contained)g(within)396 1197 |
y(the)h(re)o(gion.)657 1508 y Fa(region)f Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(re)o(gion)f(to)g(e)o(xamine)951 1663 |
y Fa(x)30 b Fh(:)50 b(the)24 b(X)h(coordinates)f(of)h(the)g(rectangle)g |
(to)f(test)948 1817 y Fa(y)33 b Fh(:)50 b(the)24 b(Y)h(coordinates)f |
(of)h(the)g(rectangle)g(to)f(test)947 1971 y Fa(w)34 |
b Fh(:)50 b(the)24 b(width)g(of)h(the)g(rectangle)g(to)f(test)956 |
2126 y Fa(h)h Fh(:)50 b(the)24 b(height)g(of)h(the)g(rectangle)g(to)f |
(test)706 2280 y Fg(Returns)g Fh(:)50 b(GR_RECT_P)-9 |
b(AR)j(TIN,)26 b(GR_RECT_ALLIN,)f(or)g(GR_RECT_OUT)396 |
2777 y Fb(GrEmptyRegion)35 b(\(\))396 2993 y Fc(GR_BOOL)268 |
b(GrEmptyRegion)1019 b(\(GR_REGION_ID)52 b(re-)396 3109 |
y(gion\);)396 3339 y Fh(Determines)24 b(whether)h(the)g(speci\002ed)g |
(re)o(gion)f(is)g(empty)-6 b(,)24 b(and)g(returns)h(GR_TR)l(UE)g(if)g |
(it)f(is,)h(or)396 3468 y(GR_F)-7 b(ALSE)25 b(otherwise.)657 |
3770 y Fa(region)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o(gion)f(to)g |
(e)o(xamine)706 3924 y Fg(Returns)g Fh(:)50 b(GR_TR)l(UE)25 |
b(if)g(the)f(re)o(gion)g(is)h(empty)-6 b(,)23 b(or)i(GR_F)-7 |
b(ALSE)25 b(if)g(it)f(is)g(not)396 4430 y Fb(GrEqualRegion)35 |
b(\(\))396 4647 y Fc(GR_BOOL)268 b(GrEqualRegion)1019 |
b(\(GR_REGION_ID)52 b(rgn1,)2817 4763 y(GR_REGION_ID)g(rgn2\);)p |
Black 3784 5278 a Fg(59)p Black eop |
%%Page: 60 60 |
60 59 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 579 a Fh(Determines)24 b(whether)h(the)g(speci\002ed)g(re)o |
(gions)f(are)h(identical,)f(and)h(returns)f(GR_TR)l(UE)i(if)e(it)h(is,) |
396 708 y(or)g(GR_F)-7 b(ALSE)25 b(otherwise.)777 1010 |
y Fa(rgn1)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(\002rst)g(re)o(gion)f |
(to)g(e)o(xamine)777 1165 y Fa(rgn2)g Fh(:)50 b(the)24 |
b(ID)h(of)g(the)g(second)f(re)o(gion)g(to)h(e)o(xamine)706 |
1319 y Fg(Returns)f Fh(:)50 b(GR_TR)l(UE)25 b(if)g(the)f(re)o(gions)g |
(are)h(equal,)g(or)g(GR_F)-7 b(ALSE)25 b(otherwise)396 |
1825 y Fb(GrOffsetRegion)35 b(\(\))396 2041 y Fc(void)430 |
b(GrOffsetRegion)965 b(\(GR_REGION_ID)52 b(re-)396 2158 |
y(gion,)2817 2275 y(GR_SIZE)h(dx,)2817 2391 y(GR_SIZE)g(dy\);)396 |
2620 y Fh(Of)n(fsets)24 b(the)h(speci\002ed)g(re)o(gion)f(by)h(the)f |
(speci\002ed)h(distance.)657 2932 y Fa(region)f Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(re)o(gion)f(to)g(of)n(fset)891 |
3086 y Fa(dx)30 b Fh(:)50 b(the)24 b(distance)h(to)f(of)n(fset)g(the)h |
(re)o(gion)f(by)g(in)h(the)f(X)h(axis)888 3241 y Fa(dy)33 |
b Fh(:)50 b(the)24 b(distance)h(to)f(of)n(fset)g(the)h(re)o(gion)f(by)g |
(in)h(the)f(Y)h(axis)396 3737 y Fb(GrGetRegionBo)l(x)36 |
b(\(\))396 3953 y Fc(int)484 b(GrGetRegionBox)965 b(\(GR_REGION_ID)52 |
b(re-)396 4070 y(gion,)2817 4186 y(GR_RECT)h(*rect\);)396 |
4416 y Fh(Fills)24 b(in)h(the)f(speci\002ed)i(rectangle)f(structure)f |
(with)g(a)h(bounding)f(box)g(that)g(w)o(ould)g(completely)396 |
4545 y(enclose)h(the)g(speci\002ed)g(re)o(gion,)f(and)g(also)h(returns) |
f(the)h(type)f(of)h(the)g(speci\002ed)g(re)o(gion.)p |
Black -2 5278 a Fg(60)p Black eop |
%%Page: 61 61 |
61 60 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 657 587 a Fa(region)24 b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(re)o |
(gion)f(to)g(get)h(the)f(bounding)g(box)g(of)777 741 |
y Fa(rect)g Fh(:)50 b(pointer)24 b(to)g(a)h(rectangle)g(structure)706 |
895 y Fg(Returns)f Fh(:)50 b(the)24 b(re)o(gion)g(type)396 |
1392 y Fb(GrNe)n(wP)-5 b(ol)n(ygonRegion)36 b(\(\))396 |
1608 y Fc(GR_REGION_ID)52 b(GrNewPolygonRegion)695 b(\(int)53 |
b(mode,)2817 1725 y(GR_COUNT)f(count,)2817 1841 y(GR_POINT)g |
(*points\);)396 2070 y Fh(Creates)26 b(a)f(ne)n(w)f(re)o(gion)g |
(structure,)h(\002lls)f(it)h(with)f(the)g(re)o(gion)g(described)h(by)f |
(the)h(speci\002ed)396 2200 y(polygon,)f(and)g(returns)h(the)g(ID)g |
(used)f(to)h(refer)g(to)g(it.)777 2511 y Fa(mode)f Fh(:)50 |
b(the)24 b(polygon)g(mode)g(to)g(use)h(\(GR_POL)-10 b(Y_EVENODD)25 |
b(or)1094 2641 y(GR_POL)-10 b(Y_WINDING\))717 2795 y |
Fa(count)24 b Fh(:)50 b(the)24 b(number)g(of)h(points)f(in)g(the)h |
(polygon)657 2950 y Fa(points)f Fh(:)50 b(pointer)24 |
b(to)g(an)h(array)h(of)f(point)e(structures)h(describing)g(the)h |
(polygon)706 3104 y Fg(Returns)f Fh(:)50 b(the)24 b(ID)h(of)g(the)g(ne) |
n(wly)f(allocated)g(re)o(gion)g(structure,)h(or)f(0)h(on)g(error)-2 |
3898 y Ff(selections)47 b(\(3\))396 4377 y Fe(Name)396 |
4579 y Fd(selections)23 b Fh(\227)p Black 3784 5278 a |
Fg(61)p Black eop |
%%Page: 62 62 |
62 61 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 396 601 a Fe(Synopsis)396 1050 y Fc(void)430 b |
(GrSetSelectionOwner)695 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
1166 y(GR_CHAR)h(*typelist\);)396 1283 y(GR_WINDOW_ID)f(GrGetSelec-)396 |
1400 y(tionOwner)644 b(\(GR_CHAR)52 b(**typelist\);)396 |
1516 y(void)430 b(GrRequestClientData)695 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 1633 y(GR_WINDOW_ID)g(rid,)2817 1749 y(GR_SERIALNO)g |
(serial,)2817 1866 y(GR_MIMETYPE)g(mimetype\);)396 1982 |
y(void)430 b(GrSendClientData)857 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 2099 y(GR_WINDOW_ID)g(did,)2817 2215 y(GR_SERIALNO)g |
(serial,)2817 2332 y(GR_LENGTH)g(len,)2817 2449 y(GR_LENGTH)g(thislen,) |
2817 2565 y(void)h(*data\);)396 3059 y Fe(Description)396 |
3574 y(Details)396 3919 y Fb(GrSetSelectionOwner)35 b(\(\))396 |
4135 y Fc(void)430 b(GrSetSelectionOwner)695 b(\(GR_WINDOW_ID)52 |
b(wid,)2817 4251 y(GR_CHAR)h(*typelist\);)396 4480 y |
Fh(Sets)25 b(the)f(current)h(selection)e(\(otherwise)h(kno)n(wn)f(as)i |
(the)f(clipboard\))g(o)n(wnership)f(to)h(the)g(speci\002ed)396 |
4610 y(windo)n(w)-6 b(.)29 b(Specifying)c(an)g(o)n(wner)f(of)h(0)g |
(diso)n(wns)e(the)h(selection.)30 b(The)25 b(typelist)e(ar)n(gument)i |
(is)f(a)h(list)396 4739 y(of)g(mime)f(types)g(\(seperated)h(by)g(space) |
g(characters\))h(which)e(the)h(windo)n(w)f(is)g(able)h(to)f(supply)g |
(the)p Black -2 5278 a Fg(62)p Black eop |
%%Page: 63 63 |
63 62 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(data)25 b(as.)31 b(At)24 b(least)h(one)g(type)f |
(must)g(be)h(speci\002ed)g(unless)f(you)g(are)i(diso)n(wning)c(the)j |
(selection)396 708 y(\(typically)f(te)o(xt/plain)f(for)i(plain)f(ASCII) |
i(te)o(xt)e(or)h(te)o(xt/uri-list)d(for)j(a)g(\002lename\).)396 |
888 y(The)g(windo)n(w)e(which)i(o)n(wns)f(the)g(current)h(selection)f |
(must)g(be)h(prepared)g(to)g(handle)396 1017 y(SELECTION_LOST)g(e)n(v)o |
(ents)f(\(recei)n(v)o(ed)g(when)h(another)g(windo)n(w)e(tak)o(es)i(o)n |
(wnership)e(of)i(the)396 1147 y(selection\))g(and)f(CLIENT_D)l(A)-11 |
b(T)i(A_REQ)25 b(e)n(v)o(ents)e(\(recei)n(v)o(ed)i(when)f(a)h(client)g |
(wishes)f(to)g(retrei)n(v)o(e)396 1276 y(the)h(selection)f(data\).)833 |
1583 y Fa(wid)k Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(set)f(the)h(selection)f(o)n(wner)g(to)538 1738 y Fa(typelist)f |
Fh(:)50 b(list)23 b(of)i(mime)f(types)g(selection)g(data)h(can)g(be)g |
(supplied)f(as)396 2239 y Fb(GrGetSelectionOwner)35 b(\(\))396 |
2455 y Fc(GR_WINDOW_ID)52 b(GrGetSelectionOwner)641 b(\(GR_CHAR)53 |
b(**type-)396 2571 y(list\);)396 2801 y Fh(Finds)25 b(the)f(windo)n(w)g |
(which)g(currently)h(o)n(wns)e(the)i(selection)f(and)h(returns)f(its)g |
(ID,)h(or)g(0)g(if)g(no)396 2930 y(windo)n(w)f(currently)g(o)n(wns)g |
(the)h(selection.)30 b(A)24 b(pointer)h(to)f(the)h(list)e(of)i(mime)f |
(types)g(the)h(selection)396 3060 y(o)n(wner)g(is)f(capable)h(of)g |
(supplying)e(is)h(placed)h(in)g(the)f(pointer)g(speci\002ed)i(by)e(the) |
h(typelist)396 3189 y(ar)n(gument.)31 b(The)24 b(typelist)g(is)g(null)g |
(terminated,)g(and)h(the)f(\002elds)h(are)h(seperated)f(by)f(space)396 |
3319 y(characters.)32 b(It)25 b(is)f(the)h(callers)g(responsibility)d |
(to)i(free)i(the)f(typelist)e(string,)h(as)h(it)f(is)g(allocated)396 |
3448 y(dynamically)-6 b(.)29 b(If)c(the)g(allocation)f(f)o(ails,)g(it)h |
(will)e(be)i(set)g(to)f(a)i(NULL)e(pointer)l(,)g(so)h(remember)f(to)396 |
3578 y(check)h(the)g(v)n(alue)f(of)h(it)g(before)g(using)f(it.)538 |
3889 y Fa(typelist)f Fh(:)50 b(pointer)24 b(used)g(to)h(return)f(the)h |
(list)f(of)h(a)n(v)n(ailable)f(mime)g(types)706 4044 |
y Fg(Returns)g Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(which)i |
(currently)f(o)n(wns)g(the)g(selection,)g(or)h(0)396 |
4540 y Fb(GrRequestClientData)37 b(\(\))396 4756 y Fc(void)430 |
b(GrRequestClientData)695 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
4873 y(GR_WINDOW_ID)g(rid,)p Black 3784 5278 a Fg(63)p |
Black eop |
%%Page: 64 64 |
64 63 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(GR_SERIALNO)52 b(serial,)2817 695 |
y(GR_MIMETYPE)g(mime-)396 812 y(type\);)396 1041 y Fh(Sends)25 |
b(a)g(CLIENT_D)l(A)-11 b(T)i(A_REQ)25 b(e)n(v)o(ent)e(to)i(the)f |
(speci\002ed)h(windo)n(w)-6 b(.)29 b(Used)c(for)g(requesting)f(both)396 |
1171 y(selection)g(and)h("drag)g(and)f(drop")h(data.)30 |
b(The)25 b(mimetype)f(ar)n(gument)g(speci\002es)h(the)g(format)f(of)h |
(the)396 1300 y(data)g(you)f(w)o(ould)g(lik)o(e)h(to)f(recei)n(v)o(e,)h |
(as)g(an)g(inde)o(x)e(into)h(the)h(list)f(returned)g(by)396 |
1430 y(GrGetSelectionOwner)h(\(the)g(\002rst)g(type)f(in)h(the)f(list)g |
(is)g(inde)o(x)g(0\).)31 b(The)25 b(serv)o(er)g(mak)o(es)f(no)396 |
1559 y(guarantees)h(as)g(to)f(when,)h(or)g(e)n(v)o(en)f(if,)h(the)f |
(client)h(will)f(reply)g(to)h(the)f(request.)31 b(If)25 |
b(the)g(client)f(does)396 1689 y(reply)-6 b(,)24 b(the)h(reply)g(will)f |
(tak)o(e)g(the)h(form)g(of)g(one)f(or)h(more)g(CLIENT_D)l(A)-11 |
b(T)i(A)24 b(e)n(v)o(ents.)29 b(The)c(request)396 1818 |
y(serial)g(number)f(is)h(typically)e(a)i(unique)f(ID)h(which)g(the)f |
(client)h(can)g(assign)f(to)g(a)h(request)g(in)f(order)396 |
1948 y(for)h(it)g(to)f(be)h(able)g(to)f(k)o(eep)h(track)g(of)g |
(transfers)g(\(CLIENT_D)l(A)-11 b(T)i(A)25 b(e)n(v)o(ents)e(contain)h |
(the)h(same)396 2077 y(number)g(in)f(the)h(sid)f(\002eld\).)31 |
b(Remember)25 b(to)f(free)i(the)f(data)g(\002eld)g(of)g(the)f(CLIENT_D) |
l(A)-11 b(T)i(A)24 b(e)n(v)o(ents)396 2207 y(as)h(the)o(y)f(are)i |
(dynamically)d(allocated.)31 b(Also)24 b(note)g(that)g(if)h(the)g |
(allocation)f(f)o(ails)g(the)h(data)g(\002eld)396 2336 |
y(will)f(be)h(set)g(to)f(NULL,)h(so)f(you)g(should)g(check)h(the)g(v)n |
(alue)f(before)h(using)f(it.)833 2648 y Fa(wid)k Fh(:)50 |
b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(requesting)h(the)h(data)833 |
2802 y Fa(rid)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(to)i |
(request)f(the)h(data)g(from)657 2957 y Fa(serial)f Fh(:)50 |
b(the)24 b(serial)h(number)f(of)h(the)g(request)538 3111 |
y Fa(mimetype)e Fh(:)50 b(the)24 b(number)g(of)h(the)g(desired)g(mime)e |
(type)i(to)f(request)396 3608 y Fb(GrSendClientData)35 |
b(\(\))396 3824 y Fc(void)430 b(GrSendClientData)857 |
b(\(GR_WINDOW_ID)52 b(wid,)2817 3940 y(GR_WINDOW_ID)g(did,)2817 |
4057 y(GR_SERIALNO)g(serial,)2817 4173 y(GR_LENGTH)g(len,)2817 |
4290 y(GR_LENGTH)g(thislen,)2817 4407 y(void)h(*data\);)396 |
4636 y Fh(Used)25 b(as)g(the)f(response)h(to)f(a)h(CLIENT_D)l(A)-11 |
b(T)i(A_REQ)25 b(e)n(v)o(ent.)k(Sends)c(the)g(speci\002ed)g(data)g(of)g |
(the)396 4765 y(speci\002ed)g(length)f(to)h(the)f(speci\002ed)h(windo)n |
(w)f(using)g(the)g(speci\002ed)h(source)g(windo)n(w)f(ID)h(and)p |
Black -2 5278 a Fg(64)p Black eop |
%%Page: 65 65 |
65 64 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 579 a Fh(transfer)25 b(serial)g(number)-5 b(.)30 |
b(An)o(y)24 b(fragmentation)g(of)g(the)h(data)g(into)f(multiple)f |
(CLIENT_D)l(A)-11 b(T)i(A)396 708 y(e)n(v)o(ents)24 b(which)g(is)g |
(required)h(is)g(handled)f(automatically)-6 b(.)29 b(The)c(serial)f |
(number)g(should)g(al)o(w)o(ays)h(be)396 838 y(set)g(to)f(the)h(v)n |
(alue)f(supplied)g(by)g(the)h(CLIENT_D)l(A)-11 b(T)i(A_REQ)24 |
b(e)n(v)o(ent.)30 b(The)25 b(thislen)e(parameter)i(is)396 |
967 y(used)g(internally)f(to)g(split)g(the)g(data)h(up)g(into)f(pack)o |
(ets.)30 b(It)25 b(should)e(be)i(set)g(to)f(the)h(same)g(v)n(alue)f(as) |
h(the)396 1097 y(len)g(parameter)-5 b(.)833 1409 y Fa(wid)28 |
b Fh(:)50 b(the)24 b(ID)h(of)g(the)g(windo)n(w)e(sending)h(the)h(data) |
833 1563 y Fa(did)j Fh(:)50 b(the)24 b(ID)h(of)g(the)g(destination)e |
(windo)n(w)657 1717 y Fa(serial)h Fh(:)837 1872 y Fa(len)g |
Fh(:)50 b(the)24 b(number)g(of)h(bytes)g(of)f(data)h(to)g(transfer)598 |
2026 y Fa(thislen)e Fh(:)50 b(the)24 b(number)g(of)h(bytes)g(in)f(this) |
g(pack)o(et)777 2181 y Fa(data)g Fh(:)50 b(pointer)24 |
b(to)g(the)h(data)g(to)f(transfer)-2 2974 y Ff(misc)47 |
b(\(3\))396 3454 y Fe(Name)396 3655 y Fd(misc)24 b Fh(\227)396 |
4049 y Fe(Synopsis)396 4498 y Fc(void)430 b(GrReqShmCmds)1073 |
b(\(long)53 b(shmsize\);)396 4615 y(void)430 b(GrInjectKeyboardEvent) |
587 b(\(GR_WINDOW_ID)52 b(wid,)2817 4731 y(GR_UNICODE)g(uch,)2817 |
4848 y(GR_CHAR)h(ch,)p Black 3784 5278 a Fg(65)p Black |
eop |
%%Page: 66 66 |
66 65 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 2817 579 a Fc(int)53 b(modif,)2817 695 y(int)g(special,)2817 |
812 y(un-)396 929 y(signed)g(char)g(content\);)396 1045 |
y(void)430 b(GrRegisterInput)911 b(\(int)53 b(fd\);)396 |
1162 y(void)430 b(GrPrepareSelect)911 b(\(int)53 b(*maxfd,)2817 |
1278 y(void)g(*rfdset\);)396 1395 y(void)430 b(GrServiceSelect)911 |
b(\(void)53 b(*rfdset,)2817 1511 y(GR_FNCALLBACKEVENT)d(fncb\);)396 |
1628 y(void)430 b(GrBell)1397 b(\(void\);)396 1745 y(void)430 |
b(GrSetScreenSaverTimeout)479 b(\(GR_TIMEOUT)52 b(time-)396 |
1861 y(out\);)396 2354 y Fe(Description)396 2870 y(Details)396 |
3214 y Fb(GrReqShmCmds)35 b(\(\))396 3431 y Fc(void)430 |
b(GrReqShmCmds)1073 b(\(long)53 b(shmsize\);)396 3660 |
y Fh(Requests)25 b(a)g(shared)g(memory)f(area)i(of)f(the)f(speci\002ed) |
h(size)g(to)g(use)f(for)h(transferring)g(command)396 |
3789 y(ar)n(guments.)30 b(This)24 b(is)h(f)o(aster)g(b)n(ut)f(less)g |
(portable)h(than)f(the)h(standard)f(BSD)i(sock)o(ets)e(method)g(of)396 |
3919 y(communication)f(\(and)i(of)g(course)g(will)f(only)g(w)o(ork)g |
(if)h(the)g(client)f(and)h(serv)o(er)g(are)g(on)g(the)f(same)396 |
4048 y(machine\).)31 b(Apart)25 b(from)f(the)h(initial)e(allocation)h |
(of)h(the)g(area)g(using)f(this)g(call,)h(the)f(use)h(of)g(shared)396 |
4178 y(memory)f(is)h(completely)e(transparent.)31 b(Additionally)-6 |
b(,)22 b(if)i(the)h(allocation)f(f)o(ails)g(we)h(silently)f(and)396 |
4307 y(automatically)g(f)o(all)g(back)h(on)g(sock)o(et)f |
(communication.)29 b(It)c(is)f(safe)h(to)g(call)f(this)g(function)g(e)n |
(v)o(en)g(if)396 4437 y(shared)h(memory)f(support)g(is)g(not)h |
(compiled)e(in;)h(it)h(will)f(simply)f(do)h(nothing.)396 |
4616 y(FIXME:)h(ho)n(w)f(does)g(the)h(user)g(decide)g(what)f(size)h(of) |
g(shared)g(memory)f(area)i(to)e(allocate?)p Black -2 |
5278 a Fg(66)p Black eop |
%%Page: 67 67 |
67 66 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 598 587 a Fa(shmsize)23 b Fh(:)50 b(the)24 b(size)h(of)g(the)g |
(shared)f(memory)g(area)i(to)f(allocate)396 1083 y Fb(GrInjectK)n(e)n |
(yboar)n(dEvent)36 b(\(\))396 1299 y Fc(void)430 b |
(GrInjectKeyboardEvent)587 b(\(GR_WINDOW_ID)52 b(wid,)2817 |
1416 y(GR_UNICODE)g(uch,)2817 1532 y(GR_CHAR)h(ch,)2817 |
1649 y(int)g(modif,)2817 1765 y(int)g(special,)2817 1882 |
y(unsigned)f(char)h(con-)396 1999 y(tent\);)396 2228 |
y Fh(Sends)25 b(a)g(k)o(e)o(yboard)f(e)n(v)o(ent)g(to)h(the)f |
(speci\002ed)h(windo)n(w)-6 b(,)23 b(or)i(to)f(the)h(windo)n(w)f(with)g |
(the)g(current)396 2357 y(k)o(e)o(yboard)g(focus)h(if)g(0)g(is)f(used)g |
(as)h(the)g(ID.)g(The)g(other)f(ar)n(guments)h(correspond)f(directly)g |
(to)h(the)396 2487 y(\002elds)g(of)g(the)g(same)f(names)h(in)f(the)h(k) |
o(e)o(yboard)f(e)n(v)o(ent)g(structure.)833 2798 y Fa(wid)k |
Fh(:)50 b(ID)25 b(of)f(the)h(windo)n(w)f(to)g(send)g(the)h(e)n(v)o(ent) |
f(to,)g(or)h(0)837 2953 y Fa(uch)f Fh(:)50 b(32)24 b(bit)g(Unicode)h(k) |
o(e)o(ystrok)o(e)e(v)n(alue)i(to)f(inject)897 3107 y |
Fa(ch)g Fh(:)50 b(8)24 b(bit)g(ascii)h(k)o(e)o(ystrok)o(e)f(v)n(alue)g |
(to)g(inject)711 3262 y Fa(modif)30 b Fh(:)598 3416 y |
Fa(special)23 b Fh(:)50 b(special)24 b(k)o(e)o(ys)g(to)h(inject)598 |
3570 y Fa(content)e Fh(:)50 b(mask)24 b(specifying)g(which)g(ar)n |
(guments)g(are)i(v)n(alid)396 4067 y Fb(GrRegisterInput)35 |
b(\(\))396 4283 y Fc(void)430 b(GrRegisterInput)911 b(\(int)53 |
b(fd\);)396 4512 y Fh(Re)o(gister)25 b(an)g(e)o(xtra)f(\002le)h |
(descriptor)g(to)f(monitor)g(in)g(the)h(main)f(select\(\))h(call.)31 |
b(An)24 b(e)n(v)o(ent)g(will)g(be)396 4642 y(returned)h(when)g(the)f |
(fd)h(has)g(data)g(w)o(aiting)f(to)g(be)h(read)g(if)g(that)g(e)n(v)o |
(ent)e(has)i(been)g(selected)g(for)-5 b(.)p Black 3780 |
5278 a Fg(67)p Black eop |
%%Page: 68 68 |
68 67 bop Black -2 67 a Fg(Chapter)24 b(1.)31 b(libnano-X)p |
Black 893 587 a Fa(fd)d Fh(:)50 b(the)24 b(\002le)h(descriptor)g(to)f |
(monitor)396 1083 y Fb(GrPrepareSelect)34 b(\(\))396 |
1299 y Fc(void)430 b(GrPrepareSelect)911 b(\(int)53 b(*maxfd,)2817 |
1416 y(void)g(*rfdset\);)396 1645 y Fh(Prepare)26 b(for)f(a)h |
(GrServiceSelect)g(function)e(by)g(asking)g(the)h(serv)o(er)g(to)f |
(send)h(the)f(ne)o(xt)g(e)n(v)o(ent)g(b)n(ut)396 1774 |
y(not)g(w)o(aiting)g(around)h(for)g(it)f(to)h(arri)n(v)o(e)f(and)h |
(initialising)d(the)i(speci\002ed)i(fd_set)e(structure)g(with)g(the)396 |
1904 y(client/serv)o(er)g(sock)o(et)h(descriptor)f(and)h(an)o(y)f(pre)n |
(viously)f(re)o(gistered)h(e)o(xternal)g(\002le)i(descriptors.)396 |
2033 y(Also)e(compares)h(the)g(current)g(contents)f(of)h(maxfd,)f(the)h |
(client/serv)o(er)e(sock)o(et)i(descriptor)l(,)f(and)396 |
2163 y(the)h(pre)n(viously)e(re)o(gistered)h(e)o(xternal)g(\002le)i |
(descriptors,)e(and)g(returns)h(the)g(highest)e(of)i(them)f(in)396 |
2292 y(maxfd.)713 2584 y Fa(maxfd)k Fh(:)50 b(pointer)24 |
b(to)g(a)h(v)n(ariable)g(which)f(the)h(highest)e(in)i(use)f(fd)h(will)f |
(be)h(written)f(to)657 2738 y Fa(rfdset)g Fh(:)50 b(pointer)24 |
b(to)g(the)h(\002le)g(descriptor)f(set)h(structure)f(to)h(use)396 |
3255 y Fb(GrSer)q(viceSelect)36 b(\(\))396 3471 y Fc(void)430 |
b(GrServiceSelect)911 b(\(void)53 b(*rfdset,)2817 3588 |
y(GR_FNCALLBACKEVENT)d(fncb\);)396 3817 y Fh(Used)25 |
b(by)f(GrMainLoop\(\))g(to)h(call)g(the)f(speci\002ed)h(callback)g |
(function)f(when)h(an)g(e)n(v)o(ent)e(arri)n(v)o(es)h(or)396 |
3946 y(there)h(is)g(data)g(w)o(aiting)e(on)i(an)g(e)o(xternal)f(fd)h |
(speci\002ed)g(by)g(GrRe)o(gisterInput\(\).)657 4258 |
y Fa(rfdset)f Fh(:)50 b(pointer)24 b(to)g(the)h(\002le)g(descriptor)f |
(set)h(to)f(monitor)775 4412 y Fa(fncb)i Fh(:)50 b(pointer)24 |
b(to)g(the)h(function)f(to)g(call)h(when)g(an)g(e)n(v)o(ent)e(needs)i |
(handling)p Black -2 5278 a Fg(68)p Black eop |
%%Page: 69 69 |
69 68 bop Black 3023 67 a Fg(Chapter)25 b(1.)30 b(libnano-X)p |
Black 396 583 a Fb(GrBell)k(\(\))396 799 y Fc(void)430 |
b(GrBell)1397 b(\(void\);)396 1028 y Fh(Asks)24 b(the)h(serv)o(er)g(to) |
f(ring)h(the)f(console)h(bell)f(on)g(behalf)h(of)g(the)g(client)f |
(\(intended)g(for)h(terminal)396 1158 y(apps)g(to)f(be)h(able)g(to)f |
(ring)h(the)g(bell)f(on)g(the)h(serv)o(er)g(e)n(v)o(en)f(if)h(the)o(y)f |
(are)h(running)f(remotely\).)396 1612 y Fb(GrSetScreenSa)n(verTimeout) |
36 b(\(\))396 1828 y Fc(void)430 b(GrSetScreenSaverTimeout)479 |
b(\(GR_TIMEOUT)52 b(time-)396 1945 y(out\);)396 2174 |
y Fh(Sets)25 b(the)g(number)f(of)h(seconds)f(of)h(inacti)n(vity)e |
(before)i(a)h(screen)f(sa)n(v)o(er)g(acti)n(v)n(ate)e(e)n(v)o(ent)h(is) |
g(sent)h(to)396 2304 y(the)g(root)f(windo)n(w)g(ID.)h(A)f(v)n(alue)h |
(of)g(0)f(acti)n(v)n(ates)g(the)g(screen)i(sa)n(v)o(er)e(immediately)-6 |
b(,)23 b(and)i(a)g(v)n(alue)f(of)396 2433 y(-1)h(disables)f(the)h |
(screen)g(sa)n(v)o(er)g(function.)598 2724 y Fa(timeout)e |
Fh(:)50 b(the)24 b(number)g(of)h(seconds)g(of)g(inacti)n(vity)d(before) |
k(screen)f(sa)n(v)o(er)g(acti)n(v)n(ates)p Black 3784 |
5278 a Fg(69)p Black eop |
%%Page: 70 70 |
70 69 bop Black Black Black Black eop |
%%Trailer |
end |
userdict /end-hook known{end-hook}if |
%%EOF |
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [ |
<!entity general SYSTEM "sgml/general.sgml"> |
<!entity window SYSTEM "sgml/window.sgml"> |
<!entity graphics SYSTEM "sgml/graphics.sgml"> |
<!entity events SYSTEM "sgml/events.sgml"> |
<!entity fonts SYSTEM "sgml/fonts.sgml"> |
<!entity pointer SYSTEM "sgml/pointer.sgml"> |
<!entity colours SYSTEM "sgml/colours.sgml"> |
<!entity regions SYSTEM "sgml/regions.sgml"> |
<!entity selections SYSTEM "sgml/selections.sgml"> |
<!entity misc SYSTEM "sgml/misc.sgml"> |
]> |
<book> |
<?dbhtml filename="index.html"> |
<bookinfo> |
<title>Nano-X API Reference Manual</title> |
</bookinfo> |
<chapter id="libnano-X"> |
<title>libnano-X</title> |
&general; |
&window; |
&graphics; |
&events; |
&fonts; |
&pointer; |
&colours; |
®ions; |
&selections; |
&misc; |
</chapter> |
</book> |
# Note! You need to have gtk-doc, docbook, jade, tex, and various other |
# things set up and playing nicely before you will be able to rebuild |
# this documentation. If you just want to read the docs, use the prebuilt |
# copies provided. |
|
MODULE=nano-X |
SRCDIR=../../src/ |
SOURCEDIR=$(SRCDIR)nanox/ |
INCLUDES=$(SRCDIR)/include/nano-X.h |
MODFLG=--module=$(MODULE) |
|
.PHONY : scan templates sgml html ps pdf dvi rtf clean |
|
all: pdf html cleanup |
|
scan: $(INCLUDES) |
gtkdoc-scan $(MODFLG) --source-dir=$(SOURCEDIR) $(INCLUDES) |
|
templates: scan |
gtkdoc-mktmpl $(MODFLG) |
|
sgml: templates |
gtkdoc-mkdb $(MODFLG) --source-dir=$(SOURCEDIR) |
|
html: sgml $(MODULE)-docs.sgml |
if ! test -d html ; then mkdir html ; fi |
cd html && gtkdoc-mkhtml $(MODFLG) ../$(MODULE)-docs.sgml |
|
ps: sgml $(MODULE)-docs.sgml |
db2ps $(MODULE)-docs.sgml |
|
pdf: ps |
ps2pdf $(MODULE)-docs.ps |
|
cleanup: |
rm -f sgml/* tmpl/* *.bak *.log $(MODULE)-unused.txt $(MODULE)-decl.txt $(MODULE)-decl-list.txt *.tex *.dvi *.aux |
if test -d tmpl ; then rmdir tmpl ; fi |
if test -d sgml ; then rmdir sgml ; fi |
|
clean: cleanup |
rm -f html/* *.pdf *.ps |
if test -d html ; then rmdir html ; fi |
Microwindows Architecture
+ +1999/12/04 Copyright (c) 1999 Greg Haerr <greg@censoft.com> All Rights Reserved.
+ +This is my first cut at getting the architecture and implementation +spilled out. Please let me know if there's more detail needed in some areas, or +whether you're confused by my explanations. This document is for educational and +porting purposes, so please read on.
+ +Contents
+ +1. Architecture
+ 1.1 Layered Design
+ 1.2 Device Drivers
+ 1.2.1 Screen Driver
+ 1.2.2 Mouse Driver
+ 1.2.3 Keyboard Driver
+ 1.3 MicroGUI - Device
+Independent Graphics Engine
+ 1.4 Applications Programmer
+Interfaces
+ 1.4.1 Microwindows API
+ 1.4.2 Nano-X API
2. Device-Independent Engine Features
+ 2.1 Graphics Engine Features
+and Implementation
+ 2.1.1 Regions
+ 2.1.2 Clipping
+ 2.1.3 Line Drawing
+ 2.1.4 Rectangles, Circles,
+Ellipses
+ 2.1.5 Polygons
+ 2.1.6 Area Fills
+ 2.1.7 Fonts
+ 2.1.8 Text Drawing
+ 2.1.9 Color model and
+palettes
+ 2.1.10 Image Drawing
+ 2.1.11 Blitting
3. Microwindows API
+ 3.1 Message-passing
+architecture
+ 3.2 Window creation and
+destruction
+ 3.3 Window showing, hiding
+and moving
+ 3.4 Window painting
+ 3.4.1 Client and screen
+coordinates
+ 3.4.2 Device contexts
+ 3.4.3 Graphics drawing API
+ 3.5 Utility functions
+ 3.5.1 Setting window focus
+ 3.5.2 Mouse capture
+ 3.5.3 Rectangle and Region
+management
4. Nano-X API
+ 4.1 Client/Server model
+ 4.2 Events
+ 4.3 Window creation and
+destruction
+ 4.4 Window showing, hiding
+and moving
+ 4.5 Drawing to a window
+ 4.5.1 Graphics contexts
+ 4.5.2 Graphics drawing API
+ 4.6 Utility functions
1. Architecture
+ +1.1 Layered Design
+ +Microwindows is essentially a layered design that allows different layers to be used or +rewritten to suite the needs of the implementation. At the lowest level, screen, +mouse/touchpad and keyboard drivers provide access to the actual display and other +user-input hardware. At the mid level, a portable graphics engine is implemented, +providing support for line draws, area fills, polygons, clipping and color models. +At the upper level, various API's are implemented providing access to the graphics +applications programmer. These APIs may or may not provide desktop and/or window +look and feel. Currently, Microwindows supports the ECMA APIW and Nano-X APIs. +These APIs provide close compatibility with the Win32 and X Window systems, allowing +programs to be ported from other systems easily.
+ +1.2 Device Drivers
+ +The device driver interfaces are defined in device.h. A given implementation of +Microwindows will link at least one screen, mouse and keyboard driver into the +system. The mid level routines in the device-independent graphics engine core then +call the device driver directly to perform the hardware-specific operations. This +setup allows varying hardware devices to be added to the Microwindows system without +affecting the way the entire system works.
+ +1.2.1 Screen Driver
+ +There are currently screen drivers written for Linux 2.2.x framebuffer systems, as well +as 16-bit ELKS and MSDOS drivers for real-mode VGA cards. The real mode drivers +(scr_bios.c, vgaplan4.c, mempl4.c, scr_her.c) can be configured to initialize the VGA +hardware directly, or utilize the PC BIOS to begin and end graphics mode. The +framebuffer drivers (scr_fb.c, fb.c, fblin?.c) have routines for 1, 2, 4 and 8bpp +palletized displays, as well as 8, 15, 16, and 32 bpp truecolor displays. The +framebuffer system works in Linux by opening /dev/fd0 (or getenv("FRAMEBUFFER")) +and mmap()ing the display memory into a linear buffer in memory. Some display modes, +like the VGA 4 planes mode, require that OUT instructions be issued by the screen driver, +while packed pixel drivers typically can get away with just reading and writing the +framebuffer only. All the graphics mode initialization and deinitialization is +handled by the Linux kernel. Getting this set up can be a real pain.
+ +The screen driver is the most complex driver in the system, but was designed so that it +can be extremely easy to port new hardware to Microwindows. For this reason, there +are but a few entry points that must actually talk to the hardware, while other routines +are provided that allow just the small set of core routines to be used, if desired. +For example, a screen driver must implement ReadPixel, DrawPixel, DrawHorzLine, and +DrawVertLine. These routines read and write a pixel from display memory, as well as +draw a horizontal and vertical line. Clipping is handled at the device-independent +layer. Currently, all mouse movement, text drawing, and bitmap drawing run on top of +these low level functions. In the future, entry points will be provided for fast +text and bitmap drawing capabilities. If the display is palletized, a SetPalette +routine must be included, unless a static palette that matches the system palette is +linked into the system. The screen driver, on initialization, returns values telling +the system the x,y size of the screen, along with the color model supported.
+ +Two font models are currently provided, to be linked in at your desire. The +proportional font model has in-core font tables built from .bdf and other font conversion +utilities provided. The rom-based font uses the PC BIOS to find the character +generator table address and has routines to draw that fixed-pitch font format.
+ +The screen driver can choose to implement bitblitting, by ORing in PSF_HAVEBLIT into +the returned flags field. When present, bit blitting allows Microwindows to perform +off-screen drawing. Microwindows allows any graphics operation that can be performed +on a physical screen to be performed off-screen, and then copied (bit-blitted) to the +physical screen. Implementing a blitting screen driver can be fairly complex. +The first consideration in implementing a blitting driver is whether the low-level display +hardware can be passed a hardware address for a framebuffer. If so, then the same +routines that draw to the physical screen can be used to draw to off-screen buffers. +This is the method used for the linear framebuffer drivers provided for Linux packed-pixel +displays. The system replaces the mmap()'d physical framebuffer address with a +malloc()'d memory address and calls the original screen driver entry point. In the +case where the system doesn't use an actual physical memory address, like when running on +top of X or MS Windows, then two sets of routines must be written; one to write the the +underlying graphics system hardware, and another to write to memory addresses. In +addition, the blit entry point must then know how to copy both ways between the two +formats. In fact, all four operations, screen-to-memory, memory-to-screen, +memory-to-memory, and screen-to-screen are supported by Microwindows and may need to be +performed. And of course the bit blitting routine must be _fast_. See the +files fblin8.c and mempl4.c for examples of supporting both types of display hardware.
+ +If writing your first screen driver, I would recommend you start with the PC BIOS real +mode driver, scr_bios.c, or take a look at the framebuffer driver, scr_fb.c, which is +essentially a wrapper around all the fblin?.c routines to read and write various +framebuffer formats. Don't set the PSF_HAVEBLIT flag at first, and you won't have to +write a bitblit routine from the start.
+ +Note that currently, all SCREENDEVICE function pointers must be filled in to at least a +void function. For speed reasons, the system always assumes that the function +pointers are valid. Thus, even if not implementing bitblit, a do-nothing bit-blit +procedure must be provided.
+ +1.2.2 Mouse Driver
+ +There are three mouse drivers currently included in Microwindows. A GPM driver +for Linux, mou_gpm.c, as well as a serial port mouse driver for Linux and ELKS, +mou_ser.c. For MSDOS, an int33 driver mou_dos.c is provided. The provided +mouse drivers decode MS, PC and Logitech mice formats. A mouse driver's basic +function is to decode the mouse data and return either relative or absolute data for the +mouse position and buttons.
+ +In addition, Brad LaRonde has written a touch panel driver mou_tp.c, which masquerades +as a mouse driver. It returns the value of x, y value of the pen on the display +surface, and can be used like a mouse.
+ +Under Linux, the main loop of Microwindows is a select() statement, with file +descriptors for the mouse and keyboard driver always passed in. If the system that +Microwindows is running on doesn't support select() or doesn't pass mouse data through a +file descriptor, a Poll() entry point is provided.
+ +1.2.3 Keyboard Driver
+ +There are two keyboard drivers provided. The first, kbd_tty.c, is used for Linux +and ELKS systems where the keyboard is opened and read as through a file descriptor. +The second, kbd_bios.c, read the PC BIOS for keystrokes and is used in MSDOS real +mode. The keyboard driver currently returns 8-bit data from the keyboard, but +doesn't decode multi-character function key codes. This functionality will need to be +added soon, by reading termcap files or the like.
+ +1.3 MicroGUI - Device Independent Graphics +Engine
+ +The core graphics functionality of Microwindows resides in the device independent +graphics engine, which calls the screen, mouse and keyboard drivers to interface with the +hardware. User applications programs never all the core graphics engine routines +directly, but rather through the programmer API's, discussed in the next sections. +The core engine routines are separated from the applications API's is for a variety of +reasons. The core routines will always reside on the server in a client/server +environment. Also, the core routines use internal text font and bitmap formats that +are designed for speed and may or may not be the same as the structures used in standard +API's. In addition, the core routines always use pointers, never ID's, and can then +be used together to implement more complex functions without always converting handles, +etc.
+ +In Microwindows, the core routines all begin as GdXXX() functions, and are concerned +with graphics output, not window management. In addition, all clipping and color +conversion is handled within this layer. The following files comprise the core +modules of Microwindows:
+ +devdraw.c Core graphics +routines for line, circle, polygon draw and fill, text and bitmap drawing, color +conversion
+ +devclip.c Core +clipping routines. (devclip2.c is the new y-x-banding algorithm, devclip1.c an older +method)
+ +devrgn.c +New dynamically allocated routines for intersect/union/subtract/xor region creation.
+ +devmouse.c Core routines for keeping +the mouse pointer updated or clipped from the screen.
+ +devkbd.c Core +keyboard handling routines.
+ +devpalX.c Linked in +static palettes for 1, 2, 4 and 8bpp palletized systems.
+ +Section 2 following discusses the MicroGUI graphics engine routines in detail.
+ +1.4 Applications Programmer Interfaces
+ +Microwindows currently supports two different application programming interfaces. +This set of routines handles client/server activity, window manager activities like +drawing title bars, close boxes, etc, as well as, of course, handling the programmer's +requests for graphics output. Both the API's run on top of the core graphics engine +routines and device drivers.
+ +The basic model of any API on top of Microwindows is to hang in initialize the screen, +keyboard and mouse drivers, then hang in a select() loop waiting for an event. When +an event occurs, if it's a system event like keyboard or mouse activity, then this +information is passed to the user program converted to an expose event, paint message, +etc. If it's a user requesting a graphics operation, then the parameters are decoded +and passed to the appropriate GdXXX engine routine. Note that the concept of a +window versus raw graphics operations are handled at this API level. That is, the +API defines the concepts of what a window is, what the coordinate systems are, etc, and +then the coordinates are all converted to "screen coordinates" and passed to the +core GdXXX engine routines to do the real work. This level also defines graphics or +display contexts and passes that information, including clipping information, to the core +engine routines.
+ +Currently, the Microwindows API code is in win*.c, while the Nano-X API code is in +nanox/srv*.c.
+ +1.4.1 Microwindows API
+ +The Microwindows API tries to be compliant with the European ECMA APIW standard. +Currently, there is support for most of the graphics drawing and clipping routines, as +well as automatic window title bar drawing and dragging windows for movement. The +Microwindows API is message-based, and allows programs to be written without regard to the +eventual window management policies implemented by the system. The Microwindows API +is not currently client/server, and will be discussed in more detail in section 4.
+ +1.4.2 Nano-X API
+ +The Nano-X API is modeled after the mini-x server written initially by David Bell, +which was a reimplementation of X on the MINIX operating system. It loosely follows +the X Window System Xlib API, but the names all being with GrXXX() rather than +X...(). Currently, the Nano-X API is client/server, but does not have any provisions +for automatic window dressings, title bars, or user window moves. There are several +groups writing widget sets currently, which will provide such things. Unfortunately, +the user programs must also then write only to a specific widget set API, rather than +using the Nano-X API directly, which means that only the functionality provided by the +widget set will be upwardly available to the applications programmer. (Although this +could be considerable, in the case that, say Gdk was ported.)
+ +2. Device-Independent Engine Features
+ +This section discusses in the capabilities and implementation of Microwindows' core +graphics engine in detail. It's purpose is both educational and to allow extending +an API by understanding how the engine works.
+ +2.1 Graphics Engine +Features and Implementation
+ +These routines concern themselves with drawing operations to off-screen or screen +surfaces. Each routine starts with Gd... and is passed a pointer to the SCREENDEVICE +structure (PSD) as it's first parameter. The PSD parameter specifies the low level +display details, like the x, y size of the device and the color model used by the +hardware, for example. In addition, the actual routines to perform drawing are +function pointers in this structure. All screen coordinates are of type COORD, and +specified in device coordinates, that is, offsets from the upper left corner of the +screen.
+ +Colors are always specified as an RGB COLORVAL value into the graphics engine. +They are then possibly converted to palette indices and sent to the display hardware as +PIXELVAL values. In the case of 32bpp truecolor displays, no conversion is +required. The color model will be discussed in detail below.
+ +2.1.1 Regions
+ +Regions are used to describe arbitrary sets of pixels on the screen. A simple, +square region of pixels can be described by a single rectangle. More complex sets of +pixels require more complex data structures. In Microwindows, regions are described +by an array of non-overlapping rectangles. Currently, there are two different +implementations of regions in Microwindows, as I've been enhancing the capabilities in +this area. The original design used a single static array of CLIPRECTs to describe +complex regions. Any point within any rectangle in the array was considered to be in +the region. The array wasn't sorted in any particular order, but was always +guaranteed to contain non-overlapping rectangles. Another global variable, +clipcount, specified the number of rectangles in the array. This original design had +no engine entry points for region management, the entire array was passed to the clipping +functions, described below.
+ +In the new design, any number of regions can be created, as the regions (CLIPREGION *) +are stored as dynamically allocated arrays of rectangles. In this implementation, +the non-overlapping rectangles are always kept in "y-x" sorted bands, such that +each band's y height is the same for all rectangles in the band. This means that +only the x position and width of the rectangles in each band varied. Because of +this, it is easier to create a set of functions for combining regions, since effectively +only a single dimension had to be compared for each region operation. The new region +handling routines allow for creating and destroying regions, as well as combining +rectangles and regions with regions using Intersection, Union, Subtraction, and Exclusive +Or. This model allows regions to be implemented apart from the clipping routines, +unlike the first version. Following are the new region routines:
+ +
+GdAllocRegion
+- Create a region
+
+GdDestroyRegion
+- Destroy a region
+
+GdCopyRegion
+- Copy a region
+ GdUnionRectWithRegion - Union a rectangle with
+a region
+
+GdIntersectRegion
+- Create a region from the intersection of two regions
+
+GdSubtractRegion
+- Create a region from the difference of two regions
+
+GdUnionRegion
+- Create a region from the union of two regions
+
+GdXorRegion
+- Create a region from the XOR of two regions
+
2.1.2 Clipping
+ +Clipping in Microwindows is closely tied to the region management code. At any +point in time, the graphics engine has a single clipping region, that is a set of +rectangles, defined for any graphics operation. A point is drawn if it is +"inside" any of the current set of clip rectangles. Two slightly modified +versions of the clipping algorithm are supplied, devclip1.c for the original, static +rectangle array, and devclip2.c for the newer dynamically allocated array. A single +entry point GdSetClipRects, takes the passed region and specifies it's use for all +subsequent graphics operations. All the drawing routines then use the two additional +routines to determine whether or not to draw. GdClipPoint takes an x,y point in +screen coordinates and returns TRUE if the point can be drawn, that is, the point is +within one of the region rectangles. GdClipArea takes an upper left and lower right +point, and returns one of the following: CLIP_VISIBLE, if the specified area is completely +within the region, CLIP_INVISIBLE, if the area is completely not in the region, which +means that no drawing should be performed, or CLIP_PARTIAL, if a part but not the whole +area is within the region. A typical graphics primitive will call the screen driver +with unmodified passed inputs if CLIP_VISIBLE is returned, or return if CLIP_INIVISIBLE is +returned. In the CLIP_PARTIAL case, the primitive must break up the original request +into areas that are within the clip region before calling the screen driver. This +slows down the operation considerably.
+ +Because the clipping code is called constantly before drawing operations, Microwindows +keeps a global cache rectangle of the last rectangle checked with GdClipArea, for speed +and also to allow the mid level to quickly calculate how partial drawing lengths.
+ +2.1.3 Line Drawing
+ +Line drawing is the simplest of graphics operations. Microwindows supports +GdPoint to draw a point, and GdLine to draw a horizontal, vertical or diagonal (using +Bresenham algorithm) line. Just before any call to the screen driver, a call to +GdCheckCursor assures that the software cursor is removed prior to drawing. +GdFixCursor restores the cursor if previously visible.
+ +There is a tricky part to line drawing that had to be added during the support for +multiple API's. This has to do with whether or not the last point in specified line +segment is drawn or not. There are two schools of thought on this, and to make it +short, Microwindows supports both of them. The last parameter to GdLine specifies +whether or not to draw the last point. The Microwindows API doesn't draw the last +point, but the Nano-X API does.
+ +Most drawing functions, including line drawing draw using the "current" +foreground color, specified using GdSetForeground. In addition a drawing mode, +currently either MODE_SET or MODE_XOR can be specified using GdSetMode.
+ +2.1.4 Rectangles, +Circles, Ellipses
+ +Rectangles, circles and ellipses are drawn using the GdRect and GdEllipse +routines. A circle is an ellipse with the same x and y radius. As with lines, +rectangles and ellipses are drawn using the current foreground color and mode.
+ +2.1.5 Polygons
+ +Microwindows supports polygon drawing by specifying an array of x, y points. The +points are then connected using the GdLine function. The current foreground color, +drawing mode, and clip region is used during output.
+ +2.1.6 Area Fills
+ +Microwindows supports filled rectangular areas using the GdFillRect function. The +rectangle's outline and contents are filled using the current foreground color. +Filled circles and ellipses are performed with GdFillEllipse, and polygon fills with +GdFillPoly. Area filling is implemented through successive calls to the DrawHorzLine +in the screen driver, and are much faster if fully not clipped.
+ +2.1.7 Fonts
+ +Both fixed pitch and proportional fonts are supported in Microwindows. Because of +potentially large differences in display hardware, the actual font format is known only to +the screen driver, although a set of standard functions are supplied for dealing with +converted .bdf fonts and Microsoft Windows fonts, if you have a license. The engine +function GdSetFont specifies a font number that is passed to the driver and used to index +a static array of linked in fonts. Screen driver entry points GetTextSize return the +font height and width for a passed string, and GetTextBits returns an individual character +bitmap. The engine layer uses these values to calculate a clipping region for text +drawing, as well as to draw the character as a monochrome bitmap.
+ +The screen drivers currently supplied implement both fixed pitch PC ROM based fonts, as +well as a proportional font format that is linked into the screen driver. A few +conversion programs allow conversion of fonts from different formats to the driver +format. Bdftobogl converts X Window System .bdf files to Microwindows format. +Convfnt32 converts raster and truetype Microsoft Windows fonts, if you have a license, to +Microwindows format. Convrom converts PC ROM bios fonts.
+ +A number of free fonts are supplied with the system, a heavier proportional 14x16 +system font, and a sans-serif 11x13 font for title bar and edit box displays. Any +number of fonts can be linked into the system, and it's fairly easy to dynamically load +fonts if one writes the routines for it.
+ +2.1.8 Text Drawing
+ +Text output is performed by first selecting the desired font with GdSetFont, and then +calling the GdText function. Full text clipping is performed, although currently +there is no "fast" text output entry point in the screen driver, so each +character bitmap is grabbed using the GetTextBits entrypoint and then drawn using +Drawpixel. While this will have to remain the same for partially clipped text, a +screen driver entry point to draw fast text will probably be required shortly.
+ +Text is drawn using the current foreground color. The background is drawn if the +current "use background" mode set via GdUseBackground is TRUE. In this +case the background is drawn using the current background color set via +GdSetBackground. The GdText function also takes a bottomAlign parameter that +specifies whether the text is to be bottom or top aligned, to help with differing API's.
+ +2.1.9 Color model and +palettes
+ +The Microwindows graphics engine requires all colors to be specified as either 24-bit +RGB color values, or in rare cases, as palette indices for speed. The palette index +method will only work on systems that have hardware palettes, so it's not +recommended. All of the upper-level color parameters are specified to the engine +routines using a COLORVAL value, which is a long containing the desired RGB color, created +using the RGB() macro. The engine then converts the COLORVAL to a PIXELVAL value, +which is normally a long also, but on some smaller systems can be compiled as an unsigned +char. The PIXELVAL value is the actual value passed to any screen driver entry point +requiring a color. So the mid level routines all work with RGB COLORVALs, while the +device driver routines all work with PIXELVALs. The graphics engine converts these +values using two routines, GdFindColor and GdFindNearestColor, described below.
+ +GdFindColor takes a hardware independent RGB value and converts it to a hardware +dependent PIXELVAL pixel value. In the case of 32bpp display drivers, no conversion +is required. Otherwise for truecolor systems, Microwindows converts the RGB value to +a 5/5/5 15-bit or 5/6/5 16 bit truecolor value. For 8bpp truecolor displays, the RGB +value is converted to 3/3/2. For palletized displays, the GdFindNearestColor +function is called to convert the RGB color to the nearest palette index in the current +system palette. GdFindNearestColor uses a weighted distance-cubed method to find the +palette value nearest to the requested color, and returns it. Standard palettes for +1, 2, 4 and 8bpp are included in the files devpal1, devpal2, devpal4 and devpal8.c. +These palettes associate an RGB value with an index, but may be overwritten.
+ +The GdSetPalette function determines whether there are any free entries in the system +palette (discussed shortly) and if so, adds entries to the system palette, and calls the +screen driver SetPalette entry point to set the hardware palette. There is a single +global variable, gr_firstuserpalentry, that contains the index of the next available +system palette entry. Initially, this is set to 24. Thus, systems with less +than 24 total palette entries will never have an available palette entry to remap. +On systems that do, like 256 color systems, then images requiring more color entries keep +calling GdSetPalette until the system palette is full. To reset marker, the function +GdResetPalette is called. This allows upper level API's to distinguish between +different images and force the system palette to be rewritten.
+ +2.1.10 Image Drawing
+ +Microwindows supports two styles of images, monochrome and palettized. Monochrome +images are specified with an IMAGEBITS structure, which is an array of words with 1 bits +specifying the foreground color and 0 bits the background. The IMAGEBITS bits are +short-word padded to the width of the bitmap. The GdBitmap routine draws monochrome +bitmaps, similar to GdText, by drawing all the 1 bits in the foreground color, and the 0 +bits in the background color if the "use background" set by GdUseBackground is +TRUE.
+ +Color bitmaps are specified using a 1, 4 or 8bpp image palette, and an array of indices +into this palette, all stuffed into an IMAGEHDR structure, and drawn via +GdDrawImage. First, the system creates a conversion palette by calling +GdMakePaletteConversionTable, which converts the images' palette entries into system +indices. At the same time, the system attempts to increase the system palette if +necessary by calling the GdSetPalette function described above. At the end of this +operation, the image has a converted palette which necessarily corresponds to the system +palette. In the case of truecolor hardware, the image's palette entries are +converted to hardware truecolor pixel values, and output directly.
+ +After converting the image color entries the GdDrawImage determines the whether the +image is clipped, and outputs the image, pixel by pixel. In the future, a blitting +routine could be used for faster image drawing.
+ +2.1.11 Blitting
+ +Blitting functionality is required in the screen driver for offscreen drawing +capability, discussed earlier in the screen drivers section. The engine function +GdBlit allows upper level APIs to implement copy operations from offscreen memory to the +display, or vice versa. The blit format is driver specific, and generally only works +for memory images created by the screen driver during runtime. The upper level APIs +implement this by allocating a new SCREENDRIVER structure, copying an existing +SCREENDRIVER structure into it, replacing the address field with a malloc()'d value, and +setting the PSF_MEMORY bit, which indicates to the display driver that this is now an +offscreen surface. Any subsequent calls to the engine routines then draw onto this +surface. When it is desired to copy the offscreen surface back to the physical +display, the GdBlit routine is called. Currently, only SRCCOPY operations are +performed, but future plans will add blitting opcodes.
+ ++ +
3. Microwindows API
+ +3.1 Message-passing +architecture
+ +The fundamental communications mechanism in the Microwindows API is the message. +A message consists of a well-known message number, and two parameters, known as wParam and +lParam. Messages are stored in an application's message-queue, and retrieved via the +GetMessage function. The application blocks while waiting for a message. There +are messages that correspond to hardware events, like WM_CHAR for keyboard input or +WM_LBUTTONDOWN for mouse button down. In addtiion, events signaling window creation +and destruction WM_CREATE and WM_DESTROY are sent. In most cases, a message is +associated with a window, identified as an HWND. After retrieving the message, the +application sends the message to the associated window's handling procedure using +DispatchMessage. When a window class is created, it's associated message handling +procedure is specified, so the system knows where to send the message.
+ +The message-passing architecture allows the core API to manage many system functions by +sending messages on all sorts of events, like window creation, painting needed, moving, +etc. By default, the associated window handling function gets a "first +pass" at the message, and then calls the DefWindowProc function, which handles +default actions for all the messages. In this way, all windows can behave the same +way when dragged, etc, unless specifically overridden by the user. Major window +management policies can be redefined by merely re-implementing DefWindowProc, rather than +making changes throughout the system.
+ +The following functions deal with messages directly:
+ +
+SendMessage
+Send a message directly to a window
+
+PostMessage
+Queue a message on the application's message queue for later dispatch
+ PostQuitMessage
+Queue a WM_QUIT message telling the application to terminate when read
+
+GetMessage
+Block until a message is queued for this application
+ TranslateMessage
+Translate up/down keystrokes to WM_CHAR messages
+
+DispatchMessage Send a
+messages to it's associated window procedure
A Microwindows application's entry point is the function WinMain, rather than main.
+ +3.2 Window creation and +destruction
+ +The basic unit of screen organization in Microwindows API is the window. Windows +describe an area of the screen to draw onto, as well as an associate "window +procedure" for handling messages destined for this window. Applications +programmers can create windows from pre-defined classes, like buttons, edit boxes, and the +like, or define their own window classes. In both cases, the method of creating and +communicating with the windows remains exactly the same. The following functions +deal with window registration, creation, and destruction:
+ +
+RegisterClass
+Define a new window class name and associated window procedure
+
+UnRegisterClass Undefine
+a window class
+ CreateWindowEx Create
+an instance of a window of a certain class
+
+DestroyWindow Destroy a
+window instance
The WM_CREATE message is just after window creation, before returning from +CreateWindowEx. The WM_DESTROY message is sent just before destroying a window with +DestroyWindow.
+ +When a window is registered, extra bytes can be allocated to the window structure when +created. The GetWindowLong, GetWindowWord, SetWindowLong and SetWindowWord +manipulate these bytes. In addition, a fixed number of extra bytes per window class +can be allocated on registration and retrieved via the GetClassLong function.
+ +3.3 Window showing, +hiding and moving
+ +The ShowWindow function allows windows to be made visible or hidden. In addition, +this can be specified during the creation of the window, through CreateWindowEx. +MoveWindow is called to change a window's position or size. A WM_MOVE message is +sent if the window's position changes, and WM_SIZE is sent on size changes.
+ +3.4 Window painting
+ +The Microwindows system determines when a window needs to be initially painted or +repainted as the result of other window movement, and a WM_PAINT message is sent to the +associated window procedure. At this point, it's up the the application to use the +graphics primitives available to paint the window, described below. Microwindows +keeps track of a windows' "update" region, and sends WM_PAINT whenever the +region is non-empty. For speed reasons, the WM_PAINT message is only sent when there +are no other messages in the application's queue. This allows the application to +repaint in one, rather than possibly many, steps. To force a repaint rather than +waiting, the UpdateWindow function can be called. The InvalidateRect function +specifies a rectangle to add to the update region, causing a subsequent WM_PAINT.
+ +The window title is automatically painted and is set with the SetWindowText function, +and retrieved with the GetWindowText function.
+ +3.4.1 Client and screen +coordinates
+ +Every window is drawn on the screen using the device global screen coordinate system +for absolute reference to any pixel on the screen. The Microwindows API allows +applications programmers to be concerned with only the relative coordinates from the upper +left portion of their window, not including the title bar and 3d effects. This +coordinate system is called "client coordinates." As will be explained +below, the Microwindows programmer has the option of getting a device context in either +screen or client coordinates. If device coordinates are specified, then the +coordinate system is device-based and includes the title area and 3d areas of the +window. Otherwise, the drawable region is clipped to just that area that is +reserved by the system for the application's drawing. The GetClientRect and +GetWindowRect functions return client or screen coordinates for the passed window. +ClientToScreen and ScreenToClient can be called to translate between window coordinate +systems.
+ +3.4.2 Device contexts
+ +An applications programmer must obtain a "device context" before calling any +graphics drawing API functions. As explained above, this specifies to the system +which window and what coordinate system are desired, so that these don't have to be passed +to every graphics function. In addition, various other attributes like foreground +and background color are also set in a device context, so that these parameters don't have +to be specified for every graphics operation. The device context selects the +appropriate clipping region based on the window specified and the coordinate system. +When a device context is obtained, various graphics values are set to default values.
+ +To obtain a client device context, call GetDC. To obtain a screen device context, +required when drawing onto title bars and the like, call GetWindowDC. In addition, +fancy clipping operations and child/sibling window clipping can be specified if GetDCEx is +called. When finished drawing, the ReleaseDC function must be called to deallocate +the DC.
+ +On receipt of the WM_PAINT message, two special calls, BeginPaint and EndPaint are +called, that serve as replacements to the GetDC/ReleaseDC functions. These functions +essentially allocate a DC but also validate the update region so that no subsequent +WM_PAINT messages are generated. BeginPaint also combines the update region and the +clipping region so that user output will only occur where previously invalidated.
+ +3.4.3 Graphics drawing +API
+ +There are many graphics drawing API's in the Microwindows API. Following is a +list, most of these match up to the engine GdXXX functions discussed in section 2.
+ +
+SetTextColor
+Set the foreground text color in a DC
+
+SetBkColor
+Set the background color in a DC
+
+GetSysColor
+Get the system color defined for the current look and feel scheme
+
+SetBkMode
+Set the use background flag in a DC
+
+SetROP2
+Set the drawing mode (XOR, SET, etc) for drawing
+
+SetPixel
+Draw a pixel in the current fg color
+
+MoveToEx
+Prepare to draw a line
+
+LineTo
+Draw a line from the last location to this one in the current fg color
+
+Rectangle
+Draw a rectangle in the current pen color
+
+FillRect
+Fill a rectangle with the current brush color
+
+TextOut
+Draw text in the current fg/bg color
+
+ExtTextOut
+Draw text in the current fg/bg color
+
+DrawText
+Draw text or compute text height and width sizes
+
+DrawDIB
+Draw a color bitmap
+
+SelectObject
+Select a pen, brush or font to use in a DC
+
+GetStockObject
+Get a predefined standard pen, brush or font
+
+CreatePen
+Create a pen of a certain color
+
+CreateSolidBrush
+Create a brush of a certain color
+ CreateCompatibleBitmap Create an offscreen area to draw onto
+
+DeleteObject
+Delete a pen, brush or bitmap
+ CreateCompatibleDC Create an
+offscreen DC
+
+DeleteDC
+Delete an offscreen DC
+
+BitBlit
+Copy from one bitmap in a DC to another
+ GetSystemPaletteEntries Get the currently in-use
+system palette entries
+
3.5 Utility functions
+ +A number of routines are provided for various purposes, described below. In +addition, Microwindows currently exports some helper routines, named WndXXX, that are +useful but subject to change. These are detailed following:
+ +
+WndSetDesktopWallpaper
+Set the desktop background image
+
+WndSetCursor
+Set the cursor for a window
+
+WndRaiseWindow
+Raise a window's z-order
+
+WndLowerWindow
+Lower a window's z-order
+
+WndGetTopWindow
+Return the topmost window's handle
+
+WndRegisterFdInput
+Register to send a message when file descriptor has read data available
+
+WndUnregisterFdInput
+Unregister file descriptor for read data messages
+GetTickCount
+Return # milliseconds elapsed since startup
+
+Sleep
+Delay processing for specified milliseconds
3.5.1 Setting window +focus
+ +The SetFocus routine is used to pass keyboard focus from one window to another. +Keystrokes are always sent to the window with focus. The WM_SETFOCUS and +WM_KILLFOCUS messages are sent to windows just receiving and losing focus. The +GetActiveWindow routines returns the first non-child ancestor of the focus window, which +is the window that is currently highlighted. The GetDesktopWindow routine returns +the window handle of the desktop window.
+ +3.5.2 Mouse capture
+ +Normally, Microwindows sends WM_MOUSEMOVE messages to the window the mouse is currently +moving over. If desired, the 7applications programmer can "capture" the +mouse and receive all mouse move messages by calling SetCapture. ReleaseCapture +returns the processing to normal. In addition, the GetCapture function will return +the window with capture, if any.
+ +3.5.3 Rectangle and +Region management
+ +There are a number of functions that are used for rectangles and regions. +Following is the group:
+ +
+SetRect
+Define a rectangle structure
+
+SetRectEmpty
+Define an empty rectangle
+
+CopyRect
+Copy a rectangle
+
+IsRectEmpty
+Return TRUE if empty rectangle
+
+InflateRect
+Enlarge a rectangle
+
+OffsetRect
+Move a rectangle
+
+PtInRect
+Determine if a point is in a rectangle
+
A large number of region management routines are defined and declared in the winrgn.c +file.
+ ++ +
4. Nano-X API
+ +The Nano-X API was originally designed by David Bell, with his mini-x package for the +MINIX operating system. Nano-X is now running on top of the core graphics engine +routines discussed in section 2. Nano-X was designed for a client/server +environment, as no pointers to structures are passed to the API routines, instead a call +is made to the server to get an ID, which is passed to the API functions and is used to +reference the data on the server. In addition, Nano-X is not message-oriented, +instead modeled after the X protocol which was designed for speed on systems where the +client and server machines were different.
+ +4.1 Client/Server model
+ +In Nano-X, there are two linking mechanisms that can be used for applications +programs. In the client/server model, the application program is linked with a +client library that forms a UNIX socket connection with the Nano-X server, a separate +process. Each application then communicates all parameters over the UNIX +socket. For speed and debugging, it is sometimes desirable to link the application +directly with the server. In this case, a stub library is provided that just passes +the client routines parameters to the server function.
+ +The Nano-X naming convention uses GrXXX to designate client side callable routines, +with a marshalling layer implemented in the files nanox/client.c, nanox/nxproto.c, and +nanox/srvnet.c. The client/server network layer currently uses a fast approach to +marshalling the data from the Gr routine into a buffer, and sent all at once to the +receiving stubs in nanox/srvnet.c, before calling the server drawing routines in +nanox/srvfunc.c. In the linked application scenario, the Nano-X client links +directly with the functions in nanox/srvfunc.c, and the nanox/client.c and nanox/srvnet.c +files are not required.
+ +A Nano-X application must call GrOpen before calling any other Nano-X function, and +call GrClose before exiting. These functions establish a connection with the server +when running the client/server model, and return an error status if the server can't be +found or isn't currently running.
+ +The main loop in a Nano-X application is to create some windows, define the events you +want with GrSelectEvents, and then wait for an event with GrGetNextEvent. If it is +desired to merely check for an event, but not wait if there isn't one, GrCheckNextEvent +can be used. GrPeekEvent can be used to examine the next event without removing it +from the queue.
+ +When running Nano-X programs in the client/server model, it's currently necessary to +run the server first in a shell script, then wait a second, then run the +application. Some rewriting is needed to fire up the server when an application +requires it, I believe.
+ +4.2 Events
+ +Nano-X applications specify which events they would like to see on a per-window basis +using GrSelectEvents. Then, in the main loop, the application calls GrGetNextEvent +and waits for one of the event types selected for in any of the windows. Typically, +a switch statement is used to determine what to do after receiving the event. This +is similar to the Microwindows's API GetMessage/DispatchMessage loop, except that in +Microwindows API, DispatchMessage is used to send the event to the window's handling +procedure, typically located with the window object. In Nano-X, all the event +handling code for each of the windows must be placed together in the main event loop, +there is no automatic dispatching. Of course, widget sets serve to provide +object-orientation, but this is in addition to the Nano-X API.
+ +Following are the event types that Nano-X programs can recieve:
+ +GR_EVENT_TYPE_NONE, ERROR, EXPOSURE, BUTTON_DOWN, BUTTON_UP, +MOUSE_ENTER, MOUSE_EXIT, MOUSE_MOTION, MOUSE_POSITION, KEY_UP, KEY_DOWN, FOCUS_IN, +FOCUS_OUT, FDINPUT
+ +Note that Nano-X API provides mouse enter and exit events whereas Microwindows API does +not. Also, the exposure events are calculated and sent immediately by the server, +and not combined and possibly delayed for better paint throughput as in the Microwindows +API.
+ +4.3 Window creation and destruction
+ +Windows are created in Nano-X with the GrNewWindow function. Windows can be +specified to be input-only, in which case the GrNewInputWindow function is used. The +window border and color is specified in these calls, but will have to be rewritten when +fancier window dressings are required. The return value from these functions is an +ID that can be used in later calls to get a graphics context or perform window +manipulation.
+ +4.4 Window showing, +hiding and moving
+ +Windows are shown by calling the GrMapWindow function, and hidden using +GrUnmapWindow. Mapping a window is required for all ancestors of a window in order +for it to be visible. The GrRaiseWindow call is used to raise the Z order of a +window, while GrLowerWindow is used to lower the Z order. GrMoveWindow is used to +change the position of a window, and GrResizeWindow is used to resize a window.
+ +4.5 Drawing to a window
+ +Nano-X requires both a window ID and a graphics context ID in order to draw to a +window. Nano-X sends expose events to the application when a window needs to be +redrawn. Unlike the Microwindows API, Nano-X clients are typically required to +create their drawing graphics contexts early on and keep them for the duration of the +application. Like Microwindows though, the graphics contexts record information like +the current background and foreground colors so they don't have to be specified in every +graphics API call.
+ +4.5.1 Graphics contexts
+ +To allocate a graphics context for a window, call GrNewGC. On termination, call +GrDestroyGC. GrCopyGC can be used to copy on GC to another. GrGetGCInfo is +used to retrieve the settings contained in a GC. After creating a graphics context, +the server returns a graphics context ID. This is then used as a parameter in all +the graphics drawing API functions. In Nano-X programs, the current clipping region +and window coordinate system aren't stored with the GC, as they are in Microwindows' +DCs. This is because, first, Nano-X doesn't support dual coordinate systems for +drawing to the "window dressing" area versus the "user" area of the +window (window and client coordinates in Microwindows). User programs can't draw the +border area of the window, only a single color and width can be specified. Although +resembling X, this will have to change, so that widget sets can specify the look and feel +of all aspects of the windows they maintain. Since the clipping region isn't +maintained with the graphics context, but instead with the window data structure, Nano-X +applications must specify both a window ID and a graphics context ID when calling any +graphics API function. Because of this, many Nano-X applications allocate all +graphics contexts in the beginning of the program, and hold them throughout execution, +since the graphics contexts hold only things like foreground color, etc, and no window +information. This cannot be done with Microwindows API because the DC's contain +window clipping information and must be released before processing the next message.
+ +4.5.2 Graphics drawing +API
+ +Following are the graphics drawing functions available with Nano-X. Like +Microwindows API, these all match up eventually to the graphics engine GdXXX routines.
+ +
+GrGetGCTextSize
+Return text width and height information
+
+GrClearWindow
+Clear a window to it's background color
+
+GrSetGCForeground
+Set the foreground color in a graphics context
+
+GrSetGCBackground
+Set the background color in a graphics context
+ GrSetGCUseBackground
+Set the "use background color" in a graphics context
+
+GrSetGCMode
+Set the drawing mode
+
+GrSetGCFont
+Set the font
+
+GrPoint
+Draw a point in the passed gc's foreground color
+
+GrLine
+Draw a line in the passed gc's foreground color
+
+GrRect
+Draw a rectangle in passed gc's foreground color
+
+GrFillRect
+Fill a rectangle with the passed gc's foreground color
+
+GrEllipse
+Draw a circle or ellipse with the passed gc's foreground color
+
+GrFillEllipse
+Fill a circle or ellipse with the passed gc's foreground color
+
+GrPoly
+Draw a polygon using the passed gc's foreground color
+
+GrFillPoly
+Fill a polygon using the passed gc's foreground color
+
+GrText
+Draw a text string using the foreground and possibly background colors
+
+GrBitmap
+Draw an image using a passed monocrhome bitmap, use fb/bg colors
+
+GrArea
+Draw a rectangular area using the passed device-dependent pixels
+
+GrReadArea
+Read the pixel values from the screen and return them
+ GrGetSystemPaletteEntries Get
+the currently in-use system palette entries
+ GrFindColor
+Translate an RGB color value to a PIXELVAL pixel value
+
4.6 Utility functions
+ +Various functions serve as utility functions to manipulate windows and provide other +information. These include the following:
+ +
+GrSetBorderColor
+Set the border color of a window. Not suitable for 3d look and feel.
+
+GrSetCursor
+Set the cursor bitmap for the window.
+
+GrMoveCursor
+Move the cursor to absolute screen coordinates.
+
+GrSetFocus
+Set the keyboard input focus window.
+
+GrRedrawScreen
+Redraw the entire screen.
+
+GrGetScreenInfo
+Return information about the size of the physical display.
+
+GrGetWindowInfo
+Return information about the passed window.
+
+GrGetGCInfo
+Return information about the passed graphics context.
+
+GrGetFontInfo
+Return information about the passed font number.
+
+GrRegisterInput
+Register a file descriptor to return an event when read data available
+ GrPrepareSelect
+
+Prepare the fd_set and maxfd variables for using Nano-X as a passive library
+ GrServiceSelect
+
+Callback the passed GetNextEvent routine when Nano-X has events requiring processing
+ GrMainLoop
+
+A convenience routine for a typical Nano-X application main loop
Microwindows Frequently Asked +Questions
+ +1999/12/04 Microwindows FAQ - greg@censoft.com
+ +What is Microwindows?
+ +Microwindows is an Open Source project that brings some of the features of modern +graphical windowing systems to the programming community not wanting or requiring the +large disk and ram requirements of higher-end windowing systems like Microsoft Windows or +the X Window System. Microwindows does not require any operating system or other +graphics system support, as it writes directly to the display hardware, although it runs +well on Linux framebuffer systems. Microwindows is designed to be portable, and can +run in a wide variety of hardware and software environments. One the of more +interesting targets is the emerging market of portable handheld and pocket PC's running +Linux, also known as LinuxCE.
+ +What does Microwindows run on?
+ +Microwindows currently runs on 32-bit Linux systems with kernel framebuffer support, or
+through the popular SVGAlib library. In addition, it has been ported to 16-bit Linux
+ELKS, and real-mode MSDOS. Microwindows screen drivers for 1, 2, 4, 8, 16 and 32
+bits-per-pixel have been written, as well as a VGA 16 color 4 planes driver.
+Microwindows has been ported to a number of Handheld and Pocket PC's, as well. The
+Microwindows graphics engine is capable of running on any system that supports readpixel,
+writepixel, drawhorzline and drawvertline, and setpalette. Blitting support is
+optional, but if implemented allows enhanced functionality. All bitmap, font, cursor
+and color support is implemented on top of these routines. Support for 8, 15, 16 and
+32 bit truecolor systems as well as 1, 2, 4 and 8bpp palletized systems is implemented.
+
+Recently, an X11 driver was completed that allows Microwindows applications to be run on
+top of the X Window desktop. This driver emulates all of Microwindows' truecolor and
+palette modes so that an application can be previewed using the target system's display
+characteristics directly on the desktop display, regardless of the desktop display
+characteristics.
What CPU's are supported?
+ +Microwindows is extremely portable, and completely written in C, although some routines +have been recoded in assembly for speed. It has been ported to the Intel 16 and 32 +bit cpu's, as well as MIPS R4000 (NEC Vr41xx) and ARM chips found on popular handheld and +pocket PC's.
+ +How big is Microwindows?
+ +On 16 bit systems, the entire system, including screen, mouse and keyboard drivers runs +in less than 64k. On 32-bit systems, support includes proportional fonts and +applications are typically less than 100k.
+ +What is Microwindows' architecture and what API's are supported?
+ +Microwindows is essentially a layered design that allows different layers to be used or +rewritten to suite the needs of the implementation. At the lowest level, screen, +mouse/touchpad and keyboard drivers provide access to the actual display and other +user-input hardware. At the mid level, a portable graphics engine is implemented, +providing support for line draws, area fills, polygons, clipping and color models. +At the upper level, various API's are implemented providing access to the graphics +applications programmer. These APIs may or may not provide desktop and/or window +look and feel. Currently, Microwindows supports the Win32 and Nano-X APIs. +These APIs provide close compatibility with the Win32 and X Window systems, allowing +programs to be ported from other systems easily.
+ +What's the difference between Microwindows and NanoGUI?
+ +Microwindows' origin is with NanoGUI. NanoGUI was created by Alex Holden by +taking David Bell's mini-X server and Alan Cox's modifications and adding client/server +networking. Greg Haerr then took interest in the NanoGUI project and began making +extensive enhancements and modifications to NanoGUI. Around version 0.5, Greg Haerr +added support for multiple API's, and began distributing Microwindows. In +Microwindows 0.84, all previous NanoGUI changes were incorporated and since then +Microwindows has been the combined NanoGUI/Microwindows distribution.
+ +What is Nano-X?
+ +Nano-X is the X-like API that Microwindows supports. It is based on David Bell's +mini-X server API, and includes X-like primitives for low-level window and graphics +operations. Window management is not included, and the window look and feel must be +created through a widget set or directly by the applications programmer. Currently, +there are a number of people working on widget sets for Nano-X. There is some +discussion about converting the Nano-X API to be X Window System compatible.
+ +What is the Microwindows API?
+ +Microwindows supports an API based on the Win32 graphics device interface
+module, and implements a large portion of it. The function calls try to be 100%
+compatible, so that code compiled for other operating systems can usually be
+compiled with no source code changes. In addition, a portion of the Win32
+USER module is implemented, which contains routines for window dragging, title
+bars, message passing, and generating required window messages.
+Because of this, window manager support is built into the system, and a single
+API for applications programs can be used that doesn't change based on the
+widget set being used.
+
+Since the WinCE API is mostly a subset of the Win32 API for graphics-related
+functions, the Microwindows API is also WinCE compatible, and can be used to
+implement WinCE graphics functions on platforms Microwindows is running on.
What are Microwindows' graphics features?
+ +Microwindows features full RGB color support, color mapping, optimized palette bitmap +drawing, truecolor and palletized displays, and a 3d look-and-feel. Overlapped and child +windows are supported, with complete window and client area clipping. Proportional and +fixed fonts are supported, along with utilities for converting fonts or bitmap files. +Optimized painting algorithms are used to allow maximum response while the user is moving +windows on the screen. Offscreen drawing and bit-blit routines are implemented for +flicker-free drawing and animation. Polygon draws, fills and arbitrary region clipping are +also supported.
+ +What license is Microwindows under?
+ +The project is licensed under the MPL. Alternatively, the software can be +licensed under the GPL, if desired. This means that the standard Microwindows +distribution can be used for commercial purposes, and supports the needs of developers +working under non-disclosure or writing proprietary device drivers. Modifications to +source code supplied in the standard distribution must stay open source. Or the +entire project can be converted to GPL, with files added by a developer considered GPL +only.
+ +Where is the most current source?
+ +The FTP site ftp://microwindows.censoft.com/pub/microwindows +is the primary distribution point for all releases. The home web site is at http://microwindows.censoft.com. I can be +reached at greg@censoft.com. I am working on +getting the development tree moved to CVS, stay tuned.
+ +Are there screenshots and/or demos available?
+ +There are demos for Linux, ELKS and MSDOS, as well as screenshots, available at:
+ +++ +ftp://microwindows.censoft.com/pub/microwindows/ScreenShots
+ftp://microwindows.censoft.com/pub/microwindows/LinuxExamples + ftp://microwindows.censoft.com/pub/microwindows/ElksExamples + ftp://microwindows.censoft.com/pub/microwindows/DosExamples
+
Is there a mailing list?
+ +The mailing list is nanogui@linuxhacker.org
+ +To subscribe, send an empty email to:
+ +nanogui-subscribe@linuxhacker.org
+ +To unsubscribe, send an empty email to:
+ +nanogui-unsubscribe@linuxhacker.org
+ +What can I do to help?
+ +We need help in all sorts of areas. There are currently projects to port base +level widget sets and custom controls to Microwindows. Fast screen drivers and +blitting routines are also on the list. There are lots of folks interested in +getting the system to run on one of the many new Handheld or Pocket PC's. Please +join the list and join the fun.
+ ++ + Index: index.html =================================================================== --- index.html (nonexistent) +++ index.html (revision 1765) @@ -0,0 +1,201 @@ + + + +
+ | Microwindows and NanoGUI Projects+ |
+
Downloads Docs Links |
+ Welcome+Microwindows is an Open Source project aimed at bringing the features of modern + graphical windowing environments to smaller devices and platforms. Microwindows + allows applications to be built and tested on the Linux desktop, as well as cross-compiled + for the target device. Microwindows' genesis was with the NanoGUI project, and has + now been combined into a single distribution. The Win32 API implementation is known + as Microwindows, and the Xlib-like API implementation is known as Nano-X. Please read the FAQ for more information. An extensive Architecture document is also available. + To get involved, please join the NanoGUI + mailing list. +News+Version 0.87pre2 release+December 14, 1999
RTEMS Port+December 3, 1999 Version 0.87pre1 release+December 2, 1999
NanoGUI combined with Microwindows+November 13, 1999 Opera Web Browser ported to Microwindows+November 11, 1999 Version 0.86 release+October 28, 1999 ++ This version completes a major effort, that of implementing off-screen drawing, as well + as screen-to-screen blitting. The screen driver interface had to change to accommodate + this, and I had to rewrite all the screen drivers. In addition, the blitting routines were + written for 1, 2, 4, 8, 16 and 32bpp linear framebuffer devices, as well as the 16 color 4 + planes vga (this was a royal pain...) The blitting uses a clipping region traversal + algorithm so that blitting is always high speed, even when the destination window is + partly obscured. +This release also auto-detects most Linux framebuffer implementations, and should have + a compiled in driver for it. +The standard Microwindows demo is now a graphical terminal emulator, mterm. (No, it + doesn't run vi yet, and it doesn't repaint it's screen contents, but it will ;-) This demo + requires screen-to-screen blitting for scrolling. The 3d graphics demo now uses offscreen + blitting to enhance (read no flicker) the display. Check it out. +There is also some experimental full-blown region handling code included, which uses + X11's y-x banding region algorithms. (This stuff is truly for those with extra time and + brains). It is currently not compiled in, but can be included by replacing devclip.c with + devclip2.c. In the next release, arbitrary multi-rectangle clipping regions will be + available. I also plan on implementing separate clip regions from update regions for + windows, with the system computing the update region as a subset of the clip region. + Anyway, this sophisticated region handling is required for smart window painting as well + as higher end graphics primitives. Eventually, this will also allow separate source and + destination clipping for bitblit operations. Only destination clipping is working now. +The next release will have a reorganized directory structure, allowing separate + development of Nano-X, widgets, core engine, and Microwindows. I plan on moving the whole + thing to a CVS soon. BTW, Microwindows now supports three processor families, according to + reports emailed me. We've got i386, 8086, MIPS Vr41xx, and ARM families running ;-) +Following is a summary of the ChangeLog:
Page maintained by Greg Haerr <greg@censoft.com> |
+
+ | + |