Main Page | Data Structures | Directories | File List | Data Fields | Globals

lcx11.h File Reference

#include "lin-city.h"

Go to the source code of this file.

Data Structures

struct  _disp

Defines

#define TRUE   1
#define FALSE   0
#define WINWIDTH   640
#define WINHEIGHT   480

Typedefs

typedef _disp disp

Functions

void parse_xargs (int, char **, char **)
void set_pointer_confinement (void)
void do_setcustompalette (XColor *)
void Create_Window (char *)
void HandleError (char *, int)
void HandleEvent (XEvent *)
void refresh_screen (int, int, int, int)
void my_x_putchar (int, int, unsigned char)
void open_x_putchar (int, int, unsigned char)
void do_call_event (int)
void call_event (void)
void call_wait_event (void)
void open_setcustompalette (XColor *)
void drag_screen (void)
void draw_border (void)
void init_x_mouse (void)
int lc_get_keystroke (void)

Variables

int winX
int winY
int mouse_button
int cs_mouse_shifted
disp display
char * bg_color
int verbose
int pix_double
int text_bg
int text_fg
int x_key_value
int x_key_shifted
int borderx
int bordery
long unsigned int colour_table [256]
int xclip_x1
int xclip_y1
int xclip_x2
int xclip_y2
int clipping_flag
unsigned char * open_font
int open_font_height
int suppress_next_expose
int cs_mouse_x
int cs_mouse_y
float gamma_correct_red
float gamma_correct_green
float gamma_correct_blue
Cursor pirate_cursor


Define Documentation

#define FALSE   0
 

Definition at line 12 of file lcx11.h.

#define TRUE   1
 

Definition at line 11 of file lcx11.h.

#define WINHEIGHT   480
 

Definition at line 21 of file lcx11.h.

#define WINWIDTH   640
 

Definition at line 20 of file lcx11.h.


Typedef Documentation

typedef struct _disp disp
 


Function Documentation

void call_event void   ) 
 

Definition at line 598 of file lcwin32.c.

00599 {
00600     do_call_event (0);
00601 }

void call_wait_event void   ) 
 

Definition at line 604 of file lcwin32.c.

00605 {
00606     do_call_event (1);
00607 }

void Create_Window char *   ) 
 

Definition at line 333 of file lcx11.c.

00334 {
00335     short q;
00336     Visual *vid;
00337     XSetWindowAttributes xswa;
00338     XSizeHints sizehint;
00339     XWMHints wmhints;
00340     int depth;
00341     unsigned char wname[256];   /* Window Name */
00342     unsigned long vmask = CWEventMask | CWBackPixel | CWBackingStore;
00343 
00344     depth = DefaultDepth (display.dpy, display.screen);
00345     xswa.event_mask = 0;
00346     xswa.background_pixel = display.bg;
00347     xswa.backing_store = Always;
00348     debug_printf ("DefaultVisual id=%d bp-rgb=%d map-entries=%d\n",
00349                   (int) (*DefaultVisual (display.dpy, display.screen)).visualid,
00350                   (*DefaultVisual (display.dpy, display.screen)).bits_per_rgb,
00351                   (*DefaultVisual (display.dpy, display.screen)).map_entries);
00352     vid = DefaultVisual (display.dpy, display.screen);
00353     display.cmap
00354             = XDefaultColormap (display.dpy, display.screen);
00355     display.win = XCreateWindow (display.dpy, display.root,
00356                                  winX, winY,
00357                                  display.winW, display.winH, 0, depth,
00358                                  InputOutput,   /* vid , */
00359                                  DefaultVisual (display.dpy, display.screen),
00360                                  /*      PseudoColor,  */
00361                                  vmask, &xswa);
00362 
00363     sizehint.x = winX - 100;
00364     sizehint.y = winY;
00365     sizehint.width = display.winW;
00366     sizehint.height = display.winH;
00367     sizehint.min_width = display.winW;
00368     sizehint.min_height = display.winH;
00369     sizehint.max_width = display.winW;
00370     sizehint.max_height = display.winH;
00371     /* GCS FIX:  Be careful about resizing the opening screen */
00372     /* WCK: Fixed.  We lock it now, and unlock it after the opening screen.
00373        not gorgeous, but it works for now.  Still need to clean up.*/
00374 #define NO_RESIZABLE_WINDOWS 1
00375     if (geometry != NULL) {
00376 #if defined (NO_RESIZABLE_WINDOWS)
00377         sizehint.flags = USPosition | USSize | PMinSize | PMaxSize;
00378 #else
00379         sizehint.flags = USPosition | USSize | PMinSize;
00380 #endif
00381     } else {
00382 #if defined (NO_RESIZABLE_WINDOWS)
00383         sizehint.flags = PPosition | PSize | PMinSize | PMaxSize;
00384 #else
00385         sizehint.flags = PPosition | PSize | PMinSize;
00386 #endif
00387     }
00388     XSetNormalHints (display.dpy, display.win, &sizehint);
00389 
00390     display.protocol_atom = XInternAtom (display.dpy, "WM_PROTOCOLS",
00391                                          False);
00392     display.kill_atom = XInternAtom (display.dpy, "WM_DELETE_WINDOW",
00393                                      False);
00394 
00395     /* Title */
00396     sprintf ((char *) wname,
00397              _("xlincity, Version %s, "
00398              "(Copyright) IJ Peters - copying policy GNU GPL"),
00399              VERSION);
00400     XChangeProperty (display.dpy, display.win,
00401                      XA_WM_NAME, XA_STRING, 8, PropModeReplace, wname,
00402                      strlen ((char *) wname));
00403 
00404     /* Window Manager Hints (This is supposed to make input work.) */
00405     wmhints.flags = InputHint;
00406     wmhints.input = True;
00407     XSetWMHints (display.dpy, display.win, &wmhints);
00408 
00409     /* GCS - 2003/08/15 - Cygwin doesn't generate the MapEvent unless
00410        the mask enabled before XMapWindow is called.  Therefore, 
00411        XSelectInput needs to be called before XMapWindow */
00412     XSelectInput (display.dpy, display.win,
00413                   KeyPressMask | ButtonPressMask | ButtonReleaseMask
00414                   | ExposureMask | StructureNotifyMask);
00415 
00416     XMapWindow (display.dpy, display.win);
00417     
00418     for (q = 0; q < 256; q++)
00419     {
00420         display.pixcolour_gc[q] = XCreateGC (display.dpy
00421                                              ,display.win, 0, NULL);
00422         XSetForeground (display.dpy, display.pixcolour_gc[q], q);
00423         XSetBackground (display.dpy, display.pixcolour_gc[q],
00424                         display.bg);
00425         XSetGraphicsExposures (display.dpy, display.pixcolour_gc[q],
00426                                False);
00427     }
00428 }

void do_call_event int   ) 
 

Definition at line 590 of file lcwin32.c.

00591 {
00592     if (wait)
00593         lc_usleep (1000);
00594     HandleMouse ();
00595 }

void do_setcustompalette XColor *   ) 
 

Definition at line 144 of file lcx11.c.

00145 {
00146   int i, n, me = 0, flag[256], vid;
00147   int depth;
00148   long unsigned int plane_masks[3];
00149   XColor pal[256];
00150   int writeable_p;
00151 
00152   display.cmap = XDefaultColormap (display.dpy, display.screen);
00153   depth = DefaultDepth (display.dpy, display.screen);
00154 
00155   /* Decide, if the colormap is writable */
00156   {
00157     Visual *visual = DefaultVisual (display.dpy, display.screen);
00158 #if defined(__cplusplus) || defined(c_plusplus)
00159     int visual_class = visual->c_class;
00160 #else
00161     int visual_class = visual->class;
00162 #endif
00163     writeable_p = (visual_class == PseudoColor || visual_class == GrayScale);
00164   }
00165 
00166   if (writeable_p)
00167     {
00168       if (XAllocColorCells (display.dpy, display.cmap, 0
00169                             ,plane_masks, 0, colour_table, 256) == 0)
00170         {
00171           me = (*DefaultVisual (display.dpy, display.screen)).map_entries;
00172           vid = (*DefaultVisual (display.dpy, display.screen)).visualid;
00173           display.cmap = XCreateColormap (display.dpy, display.win
00174                                 ,DefaultVisual (display.dpy, display.screen)
00175           /*      ,PseudoColor */
00176                                           ,AllocNone);
00177           if (me == 256 && depth != 24)
00178             {
00179               if (XAllocColorCells (display.dpy, display.cmap, 0
00180                                     ,plane_masks, 0, colour_table, 256) != 0) {
00181                   /* printf ("Allocated 256 cells\n"); */
00182               }
00183               else {
00184                   printf ("Couldn't allocate 256 cells\n");
00185               }
00186             }
00187           else
00188             for (i = 0; i < 256; i++)
00189               colour_table[i] = i;
00190         }
00191       if (!display.cmap)
00192         HandleError ("No default colour map", FATAL);
00193     }
00194 
00195   for (i = 0; i < 256; i++)
00196     flag[i] = 0;
00197 
00198   for (n = 0; n < 256; n++)
00199     {
00200       pal[n].red = inpal[n].red << 10;
00201       pal[n].green = inpal[n].green << 10;
00202       pal[n].blue = inpal[n].blue << 10;
00203       pal[n].flags = DoRed | DoGreen | DoBlue;
00204       if (writeable_p)
00205         pal[n].pixel = colour_table[n];
00206       else
00207         {
00208           if (XAllocColor (display.dpy
00209                            ,display.cmap, &(pal[n])) == 0)
00210             HandleError ("alloc colour failed"
00211                          ,FATAL);
00212           colour_table[n] = pal[n].pixel;
00213           XSetForeground (display.dpy
00214                           ,display.pixcolour_gc[n]
00215                           ,colour_table[n]);
00216         }
00217       flag[n] = 1;
00218     }
00219 
00220   if (writeable_p)
00221     {
00222       XStoreColors (display.dpy, display.cmap, pal, 256);
00223       XFlush (display.dpy);
00224     }
00225   XSetWindowColormap (display.dpy, display.win, display.cmap);
00226 }

void drag_screen void   ) 
 

Definition at line 809 of file mouse.c.

00810 {
00811     Rect* mw = &scr.main_win;
00812     int cur_mappoint_x = 0;
00813     int cur_mappoint_y = 0;
00814 
00815     int cur_winpoint_x = 0;
00816     int cur_winpoint_y = 0;
00817   
00818     int origin_x = 0;
00819     int origin_y = 0;
00820 
00821     int in_main_window;
00822 
00823     if (buttons[LC_MOUSE_MIDDLEBUTTON-1].mappoint_x == 0) 
00824         return;   /* Not pressed in main window */
00825 
00826     in_main_window = pixel_to_mappoint(cs_mouse_x, cs_mouse_y, 
00827                                        &cur_mappoint_x, &cur_mappoint_y);
00828   
00829     pixel_to_winpoint(cs_mouse_x, cs_mouse_y, &cur_winpoint_x, &cur_winpoint_y);
00830   
00831     origin_x = 
00832             buttons[LC_MOUSE_MIDDLEBUTTON-1].mappoint_x - cur_winpoint_x;  
00833     origin_y =  
00834             buttons[LC_MOUSE_MIDDLEBUTTON-1].mappoint_y - cur_winpoint_y;  
00835 
00836     adjust_main_origin (origin_x, origin_y, 1);
00837 }

void draw_border void   ) 
 

Definition at line 661 of file lcwin32.c.

00662 {
00663 }

void HandleError char *  ,
int 
 

Definition at line 240 of file lcsvga.c.

00241 {
00242   fprintf (stderr,
00243            _("An error has occurred.  The description is below...\n"));
00244   fprintf (stderr, "%s\n", description);
00245 
00246   if (degree == FATAL) {
00247       fprintf (stderr, _("Program aborting...\n"));
00248       exit (-1);
00249     }
00250 }

void HandleEvent XEvent *   ) 
 

Definition at line 742 of file lcx11.c.

00743 {
00744     XEvent loop_ev; /* for clearing the queue of events */
00745 
00746     switch (event->type)
00747     {
00748     case KeyPress:
00749         {
00750             XKeyEvent *key_event = (XKeyEvent *) event;
00751             char buf[128];
00752             KeySym ks;
00753             XComposeStatus status;
00754             XLookupString (key_event, buf, 128, &ks, &status);
00755             x_key_shifted = ShiftMask & key_event->state;
00756             x_key_value = buf[0];
00757             switch (ks) {
00758             case XK_Left:
00759                 x_key_value = 1;
00760                 break;
00761             case XK_Down:
00762                 x_key_value = 2;
00763                 break;
00764             case XK_Up:
00765                 x_key_value = 3;
00766                 break;
00767             case XK_Right:
00768                 x_key_value = 4;
00769                 break;
00770 #if defined (commentout)
00771                 /* GCS:  What the hell is this??? */
00772             case 'C':
00773                 if (!confine_pointer(-10,-10,200,200))
00774                     unconfine_pointer();
00775                 break;
00776 #endif
00777             case XK_BackSpace:
00778             case XK_Delete:
00779                 x_key_value = 127;
00780                 break;
00781             }
00782         }
00783         break;
00784 
00785     case MotionNotify: 
00786         {
00787             XMotionEvent *ev = (XMotionEvent *) event;
00788 
00789             while (XCheckMaskEvent(display.dpy,PointerMotionMask,&loop_ev)) {
00790                 ev = (XMotionEvent *) &loop_ev;
00791             }
00792 #ifdef DEBUG_X11_MOUSE
00793             printf("pointer motion event\n");
00794 #endif
00795             if (ev->state & Button2Mask)
00796                 drag_screen();
00797 
00798         }
00799         break;
00800 
00801     case ButtonPress:
00802         {
00803             XButtonEvent *ev = (XButtonEvent *) event;
00804             if ((ev->state & ShiftMask) != 0)
00805                 cs_mouse_shifted = 1;
00806             else
00807                 cs_mouse_shifted = 0;
00808 #ifdef DEBUG_X11_MOUSE
00809             printf("button press: ev->button = %d\n",ev->button);
00810 #endif
00811 #if defined (commentout)
00812             mouse_button = ev->button;
00813 #endif
00814             switch (ev->button) {
00815             case Button1:
00816                 mouse_button = LC_MOUSE_LEFTBUTTON | LC_MOUSE_PRESS;
00817                 break;
00818             case Button2:
00819                 mouse_button = LC_MOUSE_MIDDLEBUTTON | LC_MOUSE_PRESS;
00820                 break;
00821             case Button3:
00822                 mouse_button = LC_MOUSE_RIGHTBUTTON | LC_MOUSE_PRESS;
00823                 break;
00824 
00825             /* Wheel mouse support 
00826                Move further for Shift (in main.c: process_keystrokes() ),
00827                left to right instead of up and down for Control */
00828 
00829             case Button4:  /* Up (3); Left (1) if Control */
00830                 x_key_shifted = ShiftMask & ev->state;
00831                 x_key_value = (ControlMask & ev->state) ? 1 : 3; 
00832                 break; 
00833             case Button5: /* Down (4); Right (2) if control */
00834                 x_key_shifted = ShiftMask & ev->state;
00835                 x_key_value = (ControlMask & ev->state) ? 4 : 2;
00836                 break;
00837 
00838             /* XFree86-3 only supports 5 buttons, no Button6 or higher */
00839 
00840             }
00841             cs_mouse_handler (mouse_button, 0, 0);
00842             mouse_button = 0;
00843         }
00844         break;
00845 
00846     case ButtonRelease:
00847         {
00848             XButtonEvent *ev = (XButtonEvent *) event;
00849             mouse_button = ev->button; 
00850 #ifdef DEBUG_X11_MOUSE
00851             printf("button release: ev->button = %d\n",ev->button);
00852 #endif
00853             switch (ev->button) {
00854             case Button1:
00855                 mouse_button = LC_MOUSE_LEFTBUTTON | LC_MOUSE_RELEASE;
00856                 break;
00857             case Button2:
00858                 mouse_button = LC_MOUSE_MIDDLEBUTTON | LC_MOUSE_RELEASE;
00859                 break;
00860             case Button3:
00861                 mouse_button = LC_MOUSE_RIGHTBUTTON | LC_MOUSE_RELEASE;
00862                 break;
00863             }
00864             cs_mouse_handler (mouse_button, 0, 0);
00865             mouse_button = 0;
00866         }
00867         break;
00868 
00869     case Expose:
00870         {
00871             XExposeEvent *ev = (XExposeEvent *) event;
00872             int gx1,gy1,gx2,gy2;
00873             gx1 = ev->x;
00874             gy1 = ev->y;
00875             gx2 = ev->x + ev->width;
00876             gy2 = ev->y + ev->height;
00877 
00878             /* Coalesce waiting exposes into single redraw */
00879             while (XCheckMaskEvent(display.dpy,ExposureMask,&loop_ev)) {
00880                 ev = (XExposeEvent *) &loop_ev;
00881                 gx1 = min_int (gx1,ev->x);
00882                 gy1 = min_int (gy1,ev->y);
00883                 gx2 = max_int (gx2,ev->x + ev->width);
00884                 gy2 = max_int (gy2,ev->y + ev->height);
00885             }
00886             if (suppress_next_expose) {
00887                 suppress_next_expose = 0;
00888                 break;
00889             }
00890             refresh_screen (gx1,gy1,gx2,gy2);
00891         }
00892         break;
00893 
00894     case ConfigureNotify:
00895         {
00896             XConfigureEvent *ev = (XConfigureEvent *) event;
00897 
00898             while (XCheckTypedEvent(display.dpy, ConfigureNotify, &loop_ev)) {
00899                 ev = (XConfigureEvent *) &loop_ev;
00900             }
00901             resize_geometry (ev->width, ev->height);
00902         }
00903         break;
00904     }
00905     //fprintf(stderr,"Handler fell through, event->type = %d\n",event->type);
00906 }

void init_x_mouse void   ) 
 

Definition at line 1037 of file lcx11.c.

01038 {
01039   XSelectInput (display.dpy, display.win,
01040                 KeyPressMask | ButtonPressMask | ButtonReleaseMask
01041                 | ExposureMask | StructureNotifyMask | ButtonMotionMask);
01042 }

int lc_get_keystroke void   ) 
 

Definition at line 196 of file lcsvga.c.

00197 {
00198     return vga_getkey ();
00199 }

void my_x_putchar int  ,
int  ,
unsigned  char
 

Definition at line 429 of file lcwin32.c.

00430 {
00431     int x, y, b;
00432     for (y = 0; y < 8; y++) {
00433         b = main_font[c * 8 + y];
00434         for (x = 0; x < 8; x++) {
00435             if ((b & 0x80) == 0) {
00436 #if defined (USE_WINDOWS_FONT)
00437                 pixmap_setpixel (xx + x, yy + y, text_bg);
00438 #else
00439                 Fgl_setpixel (xx + x, yy + y, text_bg);
00440 #endif
00441             } else {
00442 #if defined (USE_WINDOWS_FONT)
00443                 pixmap_setpixel (xx + x, yy + y, text_fg);
00444 #else
00445                 Fgl_setpixel (xx + x, yy + y, text_fg);
00446 #endif
00447             }
00448             b = b << 1;
00449         }
00450     }
00451 }

void open_setcustompalette XColor *   ) 
 

Definition at line 138 of file lcx11.c.

00139 {
00140     do_setcustompalette (inpal);
00141 }

void open_x_putchar int  ,
int  ,
unsigned  char
 

Definition at line 455 of file lcwin32.c.

00456 {
00457     int x, y, b;
00458     for (y = 0; y < open_font_height; y++) {
00459         b = open_font[c * open_font_height + y];
00460         for (x = 0; x < 8; x++) {
00461             if ((b & 0x80) == 0)
00462                 Fgl_setpixel (xx + x, yy + y, text_bg);
00463             else
00464                 Fgl_setpixel (xx + x, yy + y, text_fg);
00465             b = b << 1;
00466         }
00467     }
00468 }

void parse_xargs int  ,
char **  ,
char ** 
 

Definition at line 257 of file lcx11.c.

00258 {
00259     int option;
00260     extern char *optarg;
00261 
00262 #ifdef ALLOW_PIX_DOUBLING
00263     char* option_string = "vbrndg:wR:G:B:D";
00264 #else
00265     char* option_string = "vbrng:wR:G:B:D";
00266 #endif
00267     while ((option = getopt (argc, argv, option_string)) != EOF) {
00268         switch (option)
00269         {
00270         case 'v':
00271             verbose = TRUE;
00272             break;
00273         case 'g':
00274             *geometry = optarg;
00275             break;
00276 #ifdef ALLOW_PIX_DOUBLING
00277         case 'd':
00278             pix_double = 1;
00279             /* Fall through.  We are not allowed a border with pix doubling */
00280 #endif
00281         case 'b':
00282             borderx = 0;
00283             bordery = 0;
00284             break;
00285         case 'r':
00286             borderx = BORDERX;
00287             bordery = BORDERY;
00288             break;
00289         case 'n':
00290             no_init_help = TRUE;
00291             break;
00292         case 'w':
00293             gamma_correct_red = GAMMA_CORRECT_RED;
00294             gamma_correct_green = GAMMA_CORRECT_GREEN;
00295             gamma_correct_blue = GAMMA_CORRECT_BLUE;
00296             break;
00297         case 'R':
00298             sscanf (optarg, "%f", &gamma_correct_red);
00299             break;
00300         case 'G':
00301             sscanf (optarg, "%f", &gamma_correct_green);
00302             break;
00303         case 'B':
00304             sscanf (optarg, "%f", &gamma_correct_blue);
00305             break;
00306         case 'D':
00307             command_line_debug = 1;
00308             break;
00309         }
00310     }
00311     if (verbose)
00312         printf (_("Version %s\n"), VERSION);
00313     if (!(display.dpy = XOpenDisplay (display.dname)))
00314     {
00315         printf (" Can't open the dispay!\n");
00316         HandleError ("Cannot open display.\n", FATAL);
00317         exit (-1);
00318     }
00319     /* Record the screen number and root window. */
00320     display.screen = DefaultScreen (display.dpy);
00321     display.root = RootWindow (display.dpy, display.screen);
00322 
00323     display.winW = WINWIDTH + borderx * 2 + pix_double * WINWIDTH;
00324     display.winH = WINHEIGHT + bordery * 2 + pix_double * WINHEIGHT;
00325     winX = (DisplayWidth (display.dpy, display.screen) - display.winW) / 2;
00326     winY = (DisplayHeight (display.dpy, display.screen) - display.winH) / 2;
00327     if (*geometry != NULL)
00328         XParseGeometry (*geometry, &winX, &winY, &display.winW, &display.winH);
00329 }

void refresh_screen int  ,
int  ,
int  ,
int 
 

Definition at line 911 of file lcx11.c.

00912 {
00913 #ifdef USE_IMAGES
00914   int wx1 = x1-borderx < 0 ? 0 : x1-borderx;
00915   int wy1 = y1-bordery < 0 ? 0 : y1-bordery;
00916   int wx2 = x2-borderx > pixmap_width ? pixmap_width : x2-borderx;
00917   int wy2 = y2-bordery > pixmap_height ? pixmap_height : y2-bordery;
00918   if (wx2-wx1 <= 0 || wy2-wy1 <= 0) {
00919       /* Note: the "< 0" part can happen for when x1 is in the right border, 
00920          or when y1 is in the left border. */
00921       return;
00922   }
00923   Fgl_putbox_low (display.win, borderx, bordery, wx1, wy1, 
00924                   wx2 - wx1, wy2 - wy1, (unsigned char*) pixmap, 
00925                   pixmap_width, wx1, wy1);
00926 #else
00927   int x, y;
00928 #ifdef ALLOW_PIX_DOUBLING
00929   if (pix_double)
00930     {
00931       for (y = y1; y < y2; y++)
00932         for (x = x1; x < x2; x++)
00933           XFillRectangle (display.dpy, display.win
00934                           ,display.pixcolour_gc[*(pixmap + x + y
00935                             * (640 + BORDERX)) & 0xff], x * 2, y * 2, 2, 2);
00936     }
00937   else
00938     {
00939 #endif
00940       for (y = y1; y < y2; y++)
00941         for (x = x1; x < x2; x++)
00942           XDrawPoint (display.dpy, display.win
00943                       ,display.pixcolour_gc[*(pixmap
00944                                   + x + y * (640 + BORDERX)) & 0xff], x, y);
00945 #ifdef ALLOW_PIX_DOUBLING
00946     }
00947 #endif /* ALLOW_PIX_DOUBLING */
00948 #endif /* USE_IMAGES */
00949 }

void set_pointer_confinement void   ) 
 

Definition at line 39 of file lcx11.c.

00040 {
00041     if (confine_flag) {
00042         XGrabPointer (display.dpy, display.win, 0,
00043                       ButtonPressMask | ButtonReleaseMask | PointerMotionMask,
00044                       GrabModeAsync, GrabModeAsync, 
00045                       display.win, None, CurrentTime);
00046     } else {
00047         XUngrabPointer (display.dpy, CurrentTime);
00048     }
00049 }


Variable Documentation

char* bg_color
 

int borderx
 

Definition at line 123 of file cliglobs.c.

int bordery
 

Definition at line 123 of file cliglobs.c.

int clipping_flag
 

long unsigned int colour_table[256]
 

int cs_mouse_shifted
 

Definition at line 37 of file cliglobs.c.

int cs_mouse_x
 

Definition at line 36 of file cliglobs.c.

int cs_mouse_y
 

Definition at line 36 of file cliglobs.c.

disp display
 

Definition at line 122 of file cliglobs.c.

float gamma_correct_blue
 

float gamma_correct_green
 

float gamma_correct_red
 

Definition at line 33 of file cliglobs.c.

int mouse_button
 

unsigned char* open_font
 

int open_font_height
 

Cursor pirate_cursor
 

int pix_double
 

Definition at line 19 of file shrglobs.c.

int suppress_next_expose
 

int text_bg
 

int text_fg
 

int verbose
 

int winX
 

int winY
 

int x_key_shifted
 

int x_key_value
 

int xclip_x1
 

int xclip_x2
 

int xclip_y1
 

int xclip_y2
 


Generated on Sun Dec 26 11:23:34 2004 for lincity by  doxygen 1.3.9.1