/* * 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 */ char *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 */ GroupItem group; ZnBool recursive; ZnList item_stack; } TagSearch; #ifdef PTK Tcl_Obj *NewLongObj(long val); Tcl_Obj *NewBooleanObj(ZnBool val); Tcl_Obj *NewDoubleObj(ZnReal val); #else # define NewLongObj Tcl_NewLongObj # define NewBooleanObj Tcl_NewBooleanObj # define NewDoubleObj Tcl_NewDoubleObj #endif Tcl_Obj *NewStringObj(char *val); void SetStringObj(Tcl_Obj *o, char *val); #if 1 char *Tcl_GetString(Tcl_Obj *obj); #endif int ZnItemWithTagOrId(WidgetInfo *wi, Tcl_Obj *tag_or_id, Item group, ZnBool recursive, Item *item, TagSearch **search_var); void ZnTagSearchDestroy(TagSearch *search); int ParseCoordList(WidgetInfo *wi, Tcl_Obj *arg, ZnPoint **pts, int *num_pts); void DoItem(Tcl_Interp *interp, Item item, int part, Tk_Uid tag_uid); void ZnNeedRedisplay(WidgetInfo *wi); typedef void (*MapInfoChangeProc)(ClientData client_data, MapInfoId map_info); int ZnCreateMapInfo(Tcl_Interp *interp, char *name, MapInfoId *map_info); int ZnDuplicateMapInfo(Tcl_Interp *interp, char *name, MapInfoId map_info); int ZnDeleteMapInfo(Tcl_Interp *interp, char *name); MapInfoId ZnGetMapInfo(Tcl_Interp *interp, char *name, MapInfoChangeProc proc, ClientData client_data); void ZnFreeMapInfo(MapInfoId map_info, MapInfoChangeProc proc, ClientData client_data); void ZnUpdateMapInfoClients(MapInfoId map_info); #endif /* _tkZinc_h */