/* * tkZinc.h -- Header file for Tk zinc widget. * * Authors : Patrick Lecoanet. * Creation date : Mon Mar 15 14:02:03 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 _tkZinc_h #define _tkZinc_h #include "WidgetInfo.h" #include "Item.h" #include "List.h" #include "MapInfo.h" typedef struct _TagSearch { WidgetInfo *wi; Item current; /* Pointer to last item returned. */ Item previous; /* The item right before the current * is tracked so if the current is * deleted we don't have to start from the * beginning. */ ZnBool over; /* Non-zero means NextItem should always * return NULL. */ int type; /* search type */ int id; /* item id for searches by id */ Tk_Uid tag; /* tag expression string */ int tag_index; /* current position in string scan */ int tag_len; /* length of tag expression string */ char *rewrite_buf; /* tag string (after removing escapes) */ unsigned int rewrite_buf_alloc; /* available space for rewrites */ struct _TagSearchExpr *expr; /* compiled tag expression */ Item group; ZnBool recursive; ZnList item_stack; } TagSearch; #define NewLongObj Tcl_NewLongObj #define NewBooleanObj Tcl_NewBooleanObj #define NewDoubleObj Tcl_NewDoubleObj Tcl_Obj *NewStringObj(CONST char *val); void SetStringObj(Tcl_Obj *o, char *val); char *Tcl_GetString(Tcl_Obj *obj); int ZnParseCoordList(WidgetInfo *wi, Tcl_Obj *arg, ZnPoint **pts, char **controls, int *num_pts); int ZnItemWithTagOrId(WidgetInfo *wi, Tcl_Obj *tag_or_id, Item *item, TagSearch **search_var); void ZnTagSearchDestroy(TagSearch *search); void ZnDoItem(Tcl_Interp *interp, Item item, int part, Tk_Uid tag_uid); void ZnNeedRedisplay(WidgetInfo *wi); void ZnDamage(WidgetInfo *wi, ZnBBox *damage); #endif /* _tkZinc_h */