diff options
Diffstat (limited to 'generic/WidgetInfo.h')
-rw-r--r-- | generic/WidgetInfo.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/generic/WidgetInfo.h b/generic/WidgetInfo.h new file mode 100644 index 0000000..3220611 --- /dev/null +++ b/generic/WidgetInfo.h @@ -0,0 +1,161 @@ +/* + * WidgetInfo.h -- Radar Widget record. + * + * Authors : Patrick Lecoanet. + * Creation date : Mon Feb 1 12:13:24 1999 + * + * $Id$ + */ + +/* + * Copyright (c) 1993 - 1999 CENA, Patrick Lecoanet -- + * + * This code is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This code is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this code; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + + +#ifndef _WidgetInfo_h +#define _WidgetInfo_h + + +#include <X11/Xlib.h> +#include <X11/Xutil.h> + +#include "Item.h" +#include "Transfo.h" +#include "Types.h" + + +#ifndef NUM_ALPHA_STEPS +#define NUM_ALPHA_STEPS 16 +#endif + +/* Constants for flags */ + +#define REPICK_IN_PROGRESS 1 +#define LEFT_GRABBED_ITEM 2 +#define INTERNAL_NEED_REPICK 8 + + +typedef struct _WidgetInfo { + Tcl_Interp *interp; /* Interpreter associated with widget. */ + Tcl_Command cmd; /* Token for radar widget command. */ + Tcl_HashTable *tag_table; /* Hash table for object tags. */ + Tcl_HashTable *id_table; /* Hash table for object ids. */ + Tcl_HashTable *t_table; /* Hash table for transformations. */ + unsigned long obj_id; /* Id for the next new object. */ + Tk_BindingTable binding_table; /* Table of all bindings currently defined + * for this radar. NULL means that no + * bindings exist, so the table hasn't been + * created. Each "object" used for this + * table is either a Tk_Uid for a tag or + * the address of an item named by id. */ + int state; /* Last known modifier state. Used to + * defer picking a new current object + * while buttons are down. */ + Item current_item; /* Item picked from previous pick sequence */ + Item new_item; /* Item picked from current pick sequence */ + int current_part; + int new_part; + XEvent pick_event; /* Event used to forge fake events and to do + * repicks. */ + RadarBool update_pending; /* True means there is a pending graphic + * update. */ + RadarBBox exposed_area; /* Window area that need to be rexposed. + * It is distinct from redraw_area which + * is updated when items are changed. */ + Pixmap alpha_stipples[NUM_ALPHA_STEPS]; + int border_width; + int opt_width; /* Window size as stated/reported by the option. */ + int opt_height; /* They are equal to the width/height fields after + * the actual resize. They may to be equal if + * the resize is not acknowledged by the geo + * manager. */ + Tk_3DBorder bg_border; /* The data describing the background + * and border colors. */ + ReliefStyle relief; /* The border relief. */ + + /* Tracks global resources */ + int track_managed_history_size; /* Size of history for tracks */ + RadarBool track_manage_history; /* Tell if the tracks manage their */ + /* histories. */ + int speed_vector_length; /* How long (in time) are speedvectors*/ +#ifdef OM + int om_group_id; /* Tell which group contains tracks to be */ + Item om_group; /* processed for anti label overlap. */ +#endif + + /* Maps global resources */ + RadarFont map_text_font; /* Font for texts in Map items */ + Pixmap map_distance_symbol; + /* display distance marks along Map */ + /* lines. */ + /* Transformer */ + RadarTransfo *current_transfo; + RadarList transfo_stack; + ClipState *current_clip; + RadarList clip_stack; + + /* Others */ + RadarColor fore_color; /* Default foreground used in new items */ + RadarColor back_color; /* Color of the radar background. */ + RadarColor bbox_color; /* Color used to draw bboxes (debug). */ + Cursor cursor; /* Cursor displayed in radar window. */ + RadarBool draw_bboxes; /* Draw item's bboxes (debug). */ + + int pick_aperture; /* size of pick aperture in pixels */ + RadarFont font; /* Default font used in new items */ + RadarBool reshape; /* Use the Shape Extension on the window.*/ + RadarBool full_reshape; /* Use it on the top level window. */ + char *tile_name; + RadarImage tile; + + /* Radar private resources */ + int width; /* Actual window dimension. */ + int height; + + /* Graphic variables */ + Display *dpy; /* The display of the widget window. */ + Screen *screen; + RadarWindow win; /* The window of the widget. */ + RadarBool realized; + Pixmap draw_buffer; /* Pixmap for double buffering */ + RadarBBox damaged_area; /* The current damaged rectangle */ + Region damaged_region; + GC gc; + RadarBool has_x_shm; /* Tell if the SHM X11 ext is avail. */ + RadarBool has_x_shape; /* Tell if she Shape X ext. is avail. */ + RadarBool has_x_input; /* Tell if she X input ext. is avail. */ + int events_flags; /* NEED_REPICK et al */ + Window real_top; + Item top_group; + RadarList work_item_list; /* Temporary item list used in internal + * works. */ + RadarList work_pts; /* Temporary point list. */ + + /* Perf measurement variables. */ + RadarBool monitoring; + int num_updates; + int last_time; + int total_time; +} WidgetInfo; + + +#ifdef __CPLUSPLUS__ +} +#endif + +#endif /* _WidgetInfo_h */ |