diff options
Diffstat (limited to 'generic/Item.c')
-rw-r--r-- | generic/Item.c | 1956 |
1 files changed, 978 insertions, 978 deletions
diff --git a/generic/Item.c b/generic/Item.c index e1c4230..5ff55b4 100644 --- a/generic/Item.c +++ b/generic/Item.c @@ -1,8 +1,8 @@ /* * Item.c -- Implementation of items. * - * Authors : Patrick Lecoanet. - * Creation date : + * Authors : Patrick Lecoanet. + * Creation date : * * $Id$ */ @@ -43,7 +43,7 @@ #endif #include <GL/glu.h> -#include <limits.h> /* For INT_MAX */ +#include <limits.h> /* For INT_MAX */ #include <stdarg.h> #include <stdio.h> #include <string.h> @@ -53,8 +53,8 @@ static const char rcsid[] = "$Id$"; static const char compile_id[]="$Compile: " __FILE__ " " __DATE__ " " __TIME__ " $"; -static ZnList item_classes = NULL; -static ZnList item_stack = NULL; +static ZnList item_classes = NULL; +static ZnList item_stack = NULL; /* @@ -113,11 +113,11 @@ static int SetAttrFromAny _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *obj)); */ Tcl_ObjType ZnAttrObjType = { - "attribute", /* name */ - (Tcl_FreeInternalRepProc *) NULL, /* freeIntRepProc */ - (Tcl_DupInternalRepProc *) NULL, /* dupIntRepProc */ - (Tcl_UpdateStringProc *) NULL, /* updateStringProc */ - SetAttrFromAny /* setFromAnyProc */ + "attribute", /* name */ + (Tcl_FreeInternalRepProc *) NULL, /* freeIntRepProc */ + (Tcl_DupInternalRepProc *) NULL, /* dupIntRepProc */ + (Tcl_UpdateStringProc *) NULL, /* updateStringProc */ + SetAttrFromAny /* setFromAnyProc */ }; #endif @@ -131,7 +131,7 @@ Tcl_ObjType ZnAttrObjType = { */ static void Invalidate(ZnItem item, int reason); static void AttributeToObj(Tcl_Interp *interp, void *record, ZnAttrConfig *desc, - Tcl_Obj *result); + Tcl_Obj *result); @@ -160,7 +160,7 @@ ZnUpdateItemImage(void *client_data) ********************************************************************************** */ static void -InitAttrDesc(ZnAttrConfig *attr_desc) +InitAttrDesc(ZnAttrConfig *attr_desc) { if (!attr_desc) { return; @@ -177,20 +177,20 @@ InitAttrDesc(ZnAttrConfig *attr_desc) * * SetAttrFromAny -- * - * This procedure is called to convert a Tcl object to an attribute - * descriptor. This is only possible if given a attr_desc table, so - * this method always returns an error. + * This procedure is called to convert a Tcl object to an attribute + * descriptor. This is only possible if given a attr_desc table, so + * this method always returns an error. * *---------------------------------------------------------------------- */ #ifndef PTK static int -SetAttrFromAny(Tcl_Interp *interp, - Tcl_Obj *obj) +SetAttrFromAny(Tcl_Interp *interp, + Tcl_Obj *obj) { Tcl_AppendToObj(Tcl_GetObjResult(interp), - "can't convert value to attribute except via GetAttrDesc", - -1); + "can't convert value to attribute except via GetAttrDesc", + -1); return TCL_ERROR; } #endif @@ -204,12 +204,12 @@ SetAttrFromAny(Tcl_Interp *interp, ********************************************************************************** */ static ZnAttrConfig * -GetAttrDesc(Tcl_Interp *interp, - Tcl_Obj *arg, - ZnAttrConfig *desc_table) +GetAttrDesc(Tcl_Interp *interp, + Tcl_Obj *arg, + ZnAttrConfig *desc_table) { - Tk_Uid attr_uid; - ZnAttrConfig *desc; + Tk_Uid attr_uid; + ZnAttrConfig *desc; #ifndef PTK if (arg->typePtr == &ZnAttrObjType) { @@ -233,7 +233,7 @@ GetAttrDesc(Tcl_Interp *interp, else if (attr_uid == desc->uid) { #ifndef PTK if ((arg->typePtr != NULL) && (arg->typePtr->freeIntRepProc != NULL)) { - arg->typePtr->freeIntRepProc(arg); + arg->typePtr->freeIntRepProc(arg); } arg->internalRep.twoPtrValue.ptr1 = (void *) desc_table; arg->internalRep.twoPtrValue.ptr2 = (void *) desc; @@ -256,13 +256,13 @@ GetAttrDesc(Tcl_Interp *interp, ********************************************************************************** */ int -ZnAttributesInfo(Tcl_Interp *interp, - void *record, - ZnAttrConfig *desc_table, - int argc, - Tcl_Obj *CONST args[]) +ZnAttributesInfo(Tcl_Interp *interp, + void *record, + ZnAttrConfig *desc_table, + int argc, + Tcl_Obj *CONST args[]) { - Tcl_Obj *l, *entries[5]; + Tcl_Obj *l, *entries[5]; if (argc == 1) { ZnAttrConfig *desc = GetAttrDesc(interp, args[0], desc_table); @@ -303,18 +303,18 @@ ZnAttributesInfo(Tcl_Interp *interp, ********************************************************************************** */ int -ZnConfigureAttributes(ZnWInfo *wi, - ZnItem item, - void *record, - ZnAttrConfig *desc_table, - int argc, - Tcl_Obj *CONST args[], - int *flags) +ZnConfigureAttributes(ZnWInfo *wi, + ZnItem item, + void *record, + ZnAttrConfig *desc_table, + int argc, + Tcl_Obj *CONST args[], + int *flags) { - int i; - ZnAttrConfig *desc; - ZnPtr valp; - char *str; + int i; + ZnAttrConfig *desc; + ZnPtr valp; + char *str; for (i = 0; i < argc; i += 2) { desc = GetAttrDesc(wi->interp, args[i], desc_table); @@ -323,7 +323,7 @@ ZnConfigureAttributes(ZnWInfo *wi, } else if (desc->read_only) { Tcl_AppendResult(wi->interp, "attribute \"", - Tcl_GetString(args[i]), "\" can only be read", NULL); + Tcl_GetString(args[i]), "\" can only be read", NULL); return TCL_ERROR; } @@ -332,444 +332,444 @@ ZnConfigureAttributes(ZnWInfo *wi, switch (desc->type) { case ZN_CONFIG_GRADIENT: { - ZnGradient *g; - Tk_Uid new_name = Tk_GetUid(Tcl_GetString(args[i+1])); - char *name = NULL; - if (*((ZnGradient **) valp)) { - name = ZnNameOfGradient(*((ZnGradient **) valp)); - } - if (name != new_name) { - g = ZnGetGradient(wi->interp, wi->win, new_name); - if (!g) { - Tcl_AppendResult(wi->interp, - " gradient expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (*((ZnGradient **) valp)) { - ZnFreeGradient(*((ZnGradient **) valp)); - } - *((ZnGradient **) valp) = g; - *flags |= desc->flags; - } - break; + ZnGradient *g; + Tk_Uid new_name = Tk_GetUid(Tcl_GetString(args[i+1])); + char *name = NULL; + if (*((ZnGradient **) valp)) { + name = ZnNameOfGradient(*((ZnGradient **) valp)); + } + if (name != new_name) { + g = ZnGetGradient(wi->interp, wi->win, new_name); + if (!g) { + Tcl_AppendResult(wi->interp, + " gradient expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (*((ZnGradient **) valp)) { + ZnFreeGradient(*((ZnGradient **) valp)); + } + *((ZnGradient **) valp) = g; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_GRADIENT_LIST: { - ZnList new_grad_list = NULL; - ZnGradient **grads; - unsigned int num_grads, j, k; - Tcl_Obj **elems; - - if (Tcl_ListObjGetElements(wi->interp, args[i+1], - &num_grads, &elems) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, - " gradient list expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (num_grads) { - new_grad_list = ZnListNew(num_grads, sizeof(ZnGradient *)); - ZnListAssertSize(new_grad_list, num_grads); - grads = ZnListArray(new_grad_list); - for (j = 0; j < num_grads; j++) { - str = Tcl_GetString(elems[j]); - if (!*str) { - if (j == 0) { - goto grads_err; - } - grads[j] = grads[j-1]; - } - else { - grads[j] = ZnGetGradient(wi->interp, wi->win, str); - } - if (!grads[j]) { - grads_err: - Tcl_AppendResult(wi->interp, " invalid gradient \"", str, - "\" in gradient list", NULL); - for (k = 0; k < j; k++) { - ZnFreeGradient(grads[k]); - } - ZnListFree(new_grad_list); - return TCL_ERROR; - } - } - } - if (*((ZnList *) valp)) { - num_grads = ZnListSize(*((ZnList *) valp)); - grads = ZnListArray(*((ZnList *) valp)); - for (j = 0; j < num_grads; j++) { - if (grads[j]) { - ZnFreeGradient(grads[j]); - } - } - ZnListFree(*((ZnList *) valp)); - *((ZnList *) valp) = new_grad_list; - *flags |= desc->flags; - } - else { - if (new_grad_list) { - *((ZnList *) valp) = new_grad_list; - *flags |= desc->flags; - } - } - break; + ZnList new_grad_list = NULL; + ZnGradient **grads; + unsigned int num_grads, j, k; + Tcl_Obj **elems; + + if (Tcl_ListObjGetElements(wi->interp, args[i+1], + &num_grads, &elems) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, + " gradient list expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (num_grads) { + new_grad_list = ZnListNew(num_grads, sizeof(ZnGradient *)); + ZnListAssertSize(new_grad_list, num_grads); + grads = ZnListArray(new_grad_list); + for (j = 0; j < num_grads; j++) { + str = Tcl_GetString(elems[j]); + if (!*str) { + if (j == 0) { + goto grads_err; + } + grads[j] = grads[j-1]; + } + else { + grads[j] = ZnGetGradient(wi->interp, wi->win, str); + } + if (!grads[j]) { + grads_err: + Tcl_AppendResult(wi->interp, " invalid gradient \"", str, + "\" in gradient list", NULL); + for (k = 0; k < j; k++) { + ZnFreeGradient(grads[k]); + } + ZnListFree(new_grad_list); + return TCL_ERROR; + } + } + } + if (*((ZnList *) valp)) { + num_grads = ZnListSize(*((ZnList *) valp)); + grads = ZnListArray(*((ZnList *) valp)); + for (j = 0; j < num_grads; j++) { + if (grads[j]) { + ZnFreeGradient(grads[j]); + } + } + ZnListFree(*((ZnList *) valp)); + *((ZnList *) valp) = new_grad_list; + *flags |= desc->flags; + } + else { + if (new_grad_list) { + *((ZnList *) valp) = new_grad_list; + *flags |= desc->flags; + } + } + break; } case ZN_CONFIG_BOOL: { - int b; - if (Tcl_GetBooleanFromObj(wi->interp, args[i+1], &b) != TCL_OK) { - Tcl_AppendResult(wi->interp, " boolean expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (b ^ (ISSET(*((unsigned short *) valp), desc->bool_bit) != 0)) { - ASSIGN(*((unsigned short *) valp), desc->bool_bit, b); - *flags |= desc->flags; - } - break; + int b; + if (Tcl_GetBooleanFromObj(wi->interp, args[i+1], &b) != TCL_OK) { + Tcl_AppendResult(wi->interp, " boolean expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (b ^ (ISSET(*((unsigned short *) valp), desc->bool_bit) != 0)) { + ASSIGN(*((unsigned short *) valp), desc->bool_bit, b); + *flags |= desc->flags; + } + break; } case ZN_CONFIG_IMAGE: case ZN_CONFIG_BITMAP: { - ZnImage image = ZnUnspecifiedImage; - ZnBool is_bmap = True; - char *name = ""; - - if (*((ZnImage *) valp) != ZnUnspecifiedImage) { - name = ZnNameOfImage(*((ZnImage *) valp)); - } - str = Tcl_GetString(args[i+1]); - if (strcmp(name, str) != 0) { - if (strlen(str) != 0) { - if (desc->type == ZN_CONFIG_IMAGE) { - image = ZnGetImage(wi, str, ZnUpdateItemImage, record); - if (image == ZnUnspecifiedImage) { - Tcl_AppendResult(wi->interp, " image expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - } - else { - image = ZnGetImage(wi, str, NULL, NULL); - if ((image == ZnUnspecifiedImage) || - (!(is_bmap = ZnImageIsBitmap(image)))) { - if (!is_bmap) { - ZnFreeImage(image, NULL, NULL); - } - Tcl_AppendResult(wi->interp, " bitmap expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - } - } - if (*((ZnImage *) valp) != ZnUnspecifiedImage) { - ZnFreeImage(*((ZnImage *) valp), ZnUpdateItemImage, record); - } - *((ZnImage *) valp) = image; - *flags |= desc->flags; - } - break; + ZnImage image = ZnUnspecifiedImage; + ZnBool is_bmap = True; + char *name = ""; + + if (*((ZnImage *) valp) != ZnUnspecifiedImage) { + name = ZnNameOfImage(*((ZnImage *) valp)); + } + str = Tcl_GetString(args[i+1]); + if (strcmp(name, str) != 0) { + if (strlen(str) != 0) { + if (desc->type == ZN_CONFIG_IMAGE) { + image = ZnGetImage(wi, str, ZnUpdateItemImage, record); + if (image == ZnUnspecifiedImage) { + Tcl_AppendResult(wi->interp, " image expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + } + else { + image = ZnGetImage(wi, str, NULL, NULL); + if ((image == ZnUnspecifiedImage) || + (!(is_bmap = ZnImageIsBitmap(image)))) { + if (!is_bmap) { + ZnFreeImage(image, NULL, NULL); + } + Tcl_AppendResult(wi->interp, " bitmap expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + } + } + if (*((ZnImage *) valp) != ZnUnspecifiedImage) { + ZnFreeImage(*((ZnImage *) valp), ZnUpdateItemImage, record); + } + *((ZnImage *) valp) = image; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_BITMAP_LIST: { - ZnList new_pat_list = NULL; - ZnImage *pats; - unsigned int num_pats, j, k; - Tcl_Obj **elems; - ZnBool is_bmap = True; - - if (Tcl_ListObjGetElements(wi->interp, args[i+1], - &num_pats, &elems) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, - " pattern list expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (num_pats) { - new_pat_list = ZnListNew(num_pats, sizeof(Pixmap)); - ZnListAssertSize(new_pat_list, num_pats); - pats = ZnListArray(new_pat_list); - for (j = 0; j < num_pats; j++) { - str = Tcl_GetString(elems[j]); - if (strlen(str) != 0) { - pats[j] = ZnGetImage(wi, str, NULL, NULL); - if ((pats[j] == ZnUnspecifiedImage) || - !(is_bmap = ZnImageIsBitmap(pats[j]))) { - if (!is_bmap) { - ZnFreeImage(pats[j], NULL, NULL); - } - for (k = 0; k < j; k++) { - ZnFreeImage(pats[k], NULL, NULL); - } - ZnListFree(new_pat_list); - Tcl_AppendResult(wi->interp, " unknown pattern \"", str, - "\" in pattern list", NULL); - return TCL_ERROR; - } - } - else { - pats[j] = ZnUnspecifiedImage; - } - } - } - if (*((ZnList *) valp)) { - num_pats = ZnListSize(*((ZnList *) valp)); - pats = ZnListArray(*((ZnList *) valp)); - for (j = 0; j < num_pats; j++) { - if (pats[j] != ZnUnspecifiedImage) { - ZnFreeImage(pats[j], NULL, NULL); - } - } - ZnListFree(*((ZnList *) valp)); - *((ZnList *) valp) = new_pat_list; - *flags |= desc->flags; - } - else { - if (new_pat_list) { - *((ZnList *) valp) = new_pat_list; - *flags |= desc->flags; - } - } - break; + ZnList new_pat_list = NULL; + ZnImage *pats; + unsigned int num_pats, j, k; + Tcl_Obj **elems; + ZnBool is_bmap = True; + + if (Tcl_ListObjGetElements(wi->interp, args[i+1], + &num_pats, &elems) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, + " pattern list expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (num_pats) { + new_pat_list = ZnListNew(num_pats, sizeof(Pixmap)); + ZnListAssertSize(new_pat_list, num_pats); + pats = ZnListArray(new_pat_list); + for (j = 0; j < num_pats; j++) { + str = Tcl_GetString(elems[j]); + if (strlen(str) != 0) { + pats[j] = ZnGetImage(wi, str, NULL, NULL); + if ((pats[j] == ZnUnspecifiedImage) || + !(is_bmap = ZnImageIsBitmap(pats[j]))) { + if (!is_bmap) { + ZnFreeImage(pats[j], NULL, NULL); + } + for (k = 0; k < j; k++) { + ZnFreeImage(pats[k], NULL, NULL); + } + ZnListFree(new_pat_list); + Tcl_AppendResult(wi->interp, " unknown pattern \"", str, + "\" in pattern list", NULL); + return TCL_ERROR; + } + } + else { + pats[j] = ZnUnspecifiedImage; + } + } + } + if (*((ZnList *) valp)) { + num_pats = ZnListSize(*((ZnList *) valp)); + pats = ZnListArray(*((ZnList *) valp)); + for (j = 0; j < num_pats; j++) { + if (pats[j] != ZnUnspecifiedImage) { + ZnFreeImage(pats[j], NULL, NULL); + } + } + ZnListFree(*((ZnList *) valp)); + *((ZnList *) valp) = new_pat_list; + *flags |= desc->flags; + } + else { + if (new_pat_list) { + *((ZnList *) valp) = new_pat_list; + *flags |= desc->flags; + } + } + break; } case ZN_CONFIG_TAG_LIST: { - int num_tags, j; - Tcl_Obj **elems; - - if (Tcl_ListObjGetElements(wi->interp, args[i+1], - &num_tags, &elems) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, - " tag list expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (*((ZnList *) valp)) { - ZnITEM.FreeTags(item); - *flags |= desc->flags; - } - if (num_tags) { - for (j = 0; j < num_tags; j++) { - ZnITEM.AddTag(item, Tk_GetUid(Tcl_GetString(elems[j]))); - } - *flags |= desc->flags; - } - break; + int num_tags, j; + Tcl_Obj **elems; + + if (Tcl_ListObjGetElements(wi->interp, args[i+1], + &num_tags, &elems) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, + " tag list expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (*((ZnList *) valp)) { + ZnITEM.FreeTags(item); + *flags |= desc->flags; + } + if (num_tags) { + for (j = 0; j < num_tags; j++) { + ZnITEM.AddTag(item, Tk_GetUid(Tcl_GetString(elems[j]))); + } + *flags |= desc->flags; + } + break; } case ZN_CONFIG_STRING: case ZN_CONFIG_MAP_INFO: { - char *text = NULL; - str = Tcl_GetString(args[i+1]); - if (!*((char **) valp) || strcmp(str, *((char **) valp)) != 0) { - if (strlen(str)) { - text = (char *) ZnMalloc(strlen(str)+1); - strcpy(text, str); - } - if (*((char **) valp)) { - ZnFree(*((char **) valp)); - } - *((char **) valp) = text; - *flags |= desc->flags; - } - break; + char *text = NULL; + str = Tcl_GetString(args[i+1]); + if (!*((char **) valp) || strcmp(str, *((char **) valp)) != 0) { + if (strlen(str)) { + text = (char *) ZnMalloc(strlen(str)+1); + strcpy(text, str); + } + if (*((char **) valp)) { + ZnFree(*((char **) valp)); + } + *((char **) valp) = text; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_FONT: { - Tk_Font font; - Tk_Uid name = ""; - if (*((Tk_Font *) valp)) { - name = Tk_NameOfFont(*((Tk_Font *) valp)); - } - str = Tcl_GetString(args[i+1]); - if (strcmp(name, str) != 0) { - font = Tk_GetFont(wi->interp, wi->win, str); - if (!font) { - Tcl_AppendResult(wi->interp, " font expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (*((Tk_Font *) valp)) { - Tk_FreeFont(*((Tk_Font *) valp)); - } - *((Tk_Font *) valp) = font; - *flags |= desc->flags; - } - break; + Tk_Font font; + Tk_Uid name = ""; + if (*((Tk_Font *) valp)) { + name = Tk_NameOfFont(*((Tk_Font *) valp)); + } + str = Tcl_GetString(args[i+1]); + if (strcmp(name, str) != 0) { + font = Tk_GetFont(wi->interp, wi->win, str); + if (!font) { + Tcl_AppendResult(wi->interp, " font expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (*((Tk_Font *) valp)) { + Tk_FreeFont(*((Tk_Font *) valp)); + } + *((Tk_Font *) valp) = font; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_EDGE_LIST: { - ZnBorder border; - - if (ZnGetBorder(wi, args[i+1], &border) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " edge list expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (border != *((ZnBorder *) valp)) { - *((ZnBorder *) valp) = border; - *flags |= desc->flags; - } - break; + ZnBorder border; + + if (ZnGetBorder(wi, args[i+1], &border) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " edge list expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (border != *((ZnBorder *) valp)) { + *((ZnBorder *) valp) = border; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_LINE_SHAPE: { - ZnLineShape line_shape; - - if (ZnGetLineShape(wi, Tcl_GetString(args[i+1]), &line_shape) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " line shape expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (line_shape != *((ZnLineShape *) valp)) { - *((ZnLineShape *) valp) = line_shape; - *flags |= desc->flags; - } - break; + ZnLineShape line_shape; + + if (ZnGetLineShape(wi, Tcl_GetString(args[i+1]), &line_shape) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " line shape expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (line_shape != *((ZnLineShape *) valp)) { + *((ZnLineShape *) valp) = line_shape; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_LINE_STYLE: { - ZnLineStyle line_style; - - if (ZnGetLineStyle(wi, Tcl_GetString(args[i+1]), &line_style) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " line style expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (line_style != *((ZnLineStyle *) valp)) { - *((ZnLineStyle *) valp) = line_style; - *flags |= desc->flags; - } - break; + ZnLineStyle line_style; + + if (ZnGetLineStyle(wi, Tcl_GetString(args[i+1]), &line_style) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " line style expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (line_style != *((ZnLineStyle *) valp)) { + *((ZnLineStyle *) valp) = line_style; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_LINE_END: { - ZnLineEnd line_end = NULL; - str = Tcl_GetString(args[i+1]); - if (strlen(str) != 0) { - line_end = ZnLineEndCreate(wi->interp, str); - if (line_end == NULL) { - return TCL_ERROR; - } - } - if (*((ZnLineEnd *) valp) != NULL) { - ZnLineEndDelete(*((ZnLineEnd *) valp)); - *((ZnLineEnd *) valp) = line_end; - *flags |= desc->flags; - } - else { - if (line_end != NULL) { - *((ZnLineEnd *) valp) = line_end; - *flags |= desc->flags; - } - } - break; + ZnLineEnd line_end = NULL; + str = Tcl_GetString(args[i+1]); + if (strlen(str) != 0) { + line_end = ZnLineEndCreate(wi->interp, str); + if (line_end == NULL) { + return TCL_ERROR; + } + } + if (*((ZnLineEnd *) valp) != NULL) { + ZnLineEndDelete(*((ZnLineEnd *) valp)); + *((ZnLineEnd *) valp) = line_end; + *flags |= desc->flags; + } + else { + if (line_end != NULL) { + *((ZnLineEnd *) valp) = line_end; + *flags |= desc->flags; + } + } + break; } case ZN_CONFIG_RELIEF: { - ZnReliefStyle relief; - if (ZnGetRelief(wi, Tcl_GetString(args[i+1]), &relief) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " relief expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (relief != *((ZnReliefStyle *) valp)) { - /*printf("valp <0x%X>, flags <0x%X>, relief %d\n", valp, flags, relief);*/ - *((ZnReliefStyle *) valp) = relief; - *flags |= desc->flags; - } - break; + ZnReliefStyle relief; + if (ZnGetRelief(wi, Tcl_GetString(args[i+1]), &relief) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " relief expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (relief != *((ZnReliefStyle *) valp)) { + /*printf("valp <0x%X>, flags <0x%X>, relief %d\n", valp, flags, relief);*/ + *((ZnReliefStyle *) valp) = relief; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_JOIN_STYLE: { - int join; - if (Tk_GetJoinStyle(wi->interp, Tcl_GetString(args[i+1]), &join) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " join expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (join != *((int *) valp)) { - *((int *) valp) = join; - *flags |= desc->flags; - } - break; + int join; + if (Tk_GetJoinStyle(wi->interp, Tcl_GetString(args[i+1]), &join) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " join expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (join != *((int *) valp)) { + *((int *) valp) = join; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_CAP_STYLE: { - int cap; - if (Tk_GetCapStyle(wi->interp, Tcl_GetString(args[i+1]), &cap) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " cap expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (cap != *((int *) valp)) { - *((int *) valp) = cap; - *flags |= desc->flags; - } - break; + int cap; + if (Tk_GetCapStyle(wi->interp, Tcl_GetString(args[i+1]), &cap) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " cap expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (cap != *((int *) valp)) { + *((int *) valp) = cap; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_POINT: { - ZnPoint point; - int largc; - Tcl_Obj **largv; - double d; - - if ((Tcl_ListObjGetElements(wi->interp, args[i+1], - &largc, &largv) == TCL_ERROR) || - (largc != 2)) { - point_error: - Tcl_AppendResult(wi->interp, " position expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (Tcl_GetDoubleFromObj(wi->interp, largv[0], &d) == TCL_ERROR) { - goto point_error; - } - point.x = d; - if (Tcl_GetDoubleFromObj(wi->interp, largv[1], &d) == TCL_ERROR) { - goto point_error; - } - point.y = d; - if ((point.x != ((ZnPoint *) valp)->x) || - (point.y != ((ZnPoint *) valp)->y)) { - *((ZnPoint *) valp) = point; - *flags |= desc->flags; - } - break; + ZnPoint point; + int largc; + Tcl_Obj **largv; + double d; + + if ((Tcl_ListObjGetElements(wi->interp, args[i+1], + &largc, &largv) == TCL_ERROR) || + (largc != 2)) { + point_error: + Tcl_AppendResult(wi->interp, " position expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (Tcl_GetDoubleFromObj(wi->interp, largv[0], &d) == TCL_ERROR) { + goto point_error; + } + point.x = d; + if (Tcl_GetDoubleFromObj(wi->interp, largv[1], &d) == TCL_ERROR) { + goto point_error; + } + point.y = d; + if ((point.x != ((ZnPoint *) valp)->x) || + (point.y != ((ZnPoint *) valp)->y)) { + *((ZnPoint *) valp) = point; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_DIM: { - ZnDim dim; - if (Tcl_GetDoubleFromObj(wi->interp, args[i+1], &dim) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " dimension expected for attribute \"", - Tcl_GetString(args[i+1]), "\"", NULL); - return TCL_ERROR; - } - if (dim != *((ZnDim *) valp)) { - *((ZnDim *) valp) = dim; - *flags |= desc->flags; - } - break; + ZnDim dim; + if (Tcl_GetDoubleFromObj(wi->interp, args[i+1], &dim) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " dimension expected for attribute \"", + Tcl_GetString(args[i+1]), "\"", NULL); + return TCL_ERROR; + } + if (dim != *((ZnDim *) valp)) { + *((ZnDim *) valp) = dim; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_PRI: { - int pri; - if (Tcl_GetIntFromObj(wi->interp, args[i+1], &pri) == TCL_ERROR) { - return TCL_ERROR; - } - if (pri < 0) { - Tcl_AppendResult(wi->interp, " priority must be a positive integer \"", - Tcl_GetString(args[i+1]), "\"", NULL); - return TCL_ERROR; - } - if (pri != *((unsigned short *) valp)) { - *((unsigned short *) valp) = pri; - ZnITEM.UpdateItemPriority(item, ZN_NO_ITEM, True); - *flags |= desc->flags; - } - break; + int pri; + if (Tcl_GetIntFromObj(wi->interp, args[i+1], &pri) == TCL_ERROR) { + return TCL_ERROR; + } + if (pri < 0) { + Tcl_AppendResult(wi->interp, " priority must be a positive integer \"", + Tcl_GetString(args[i+1]), "\"", NULL); + return TCL_ERROR; + } + if (pri != *((unsigned short *) valp)) { + *((unsigned short *) valp) = pri; + ZnITEM.UpdateItemPriority(item, ZN_NO_ITEM, True); + *flags |= desc->flags; + } + break; } case ZN_CONFIG_ITEM: /* @@ -778,275 +778,275 @@ ZnConfigureAttributes(ZnWInfo *wi, * associated with the tag. */ { - ZnItem item2; - int result; - ZnTagSearch *search_var = NULL; - - if (strlen(Tcl_GetString(args[i+1])) == 0) { - item2 = ZN_NO_ITEM; - } - else { - result = ZnItemWithTagOrId(wi, args[i+1], &item2, &search_var); - ZnTagSearchDestroy(search_var); - if ((result == TCL_ERROR) || (item2 == ZN_NO_ITEM)) { - Tcl_AppendResult(wi->interp, " unknown item \"", - Tcl_GetString(args[i+1]), "\"", NULL); - return TCL_ERROR; - } - } - if (item2 != *((ZnItem *) valp)) { - *((ZnItem *) valp) = item2; - *flags |= desc->flags; - } + ZnItem item2; + int result; + ZnTagSearch *search_var = NULL; + + if (strlen(Tcl_GetString(args[i+1])) == 0) { + item2 = ZN_NO_ITEM; + } + else { + result = ZnItemWithTagOrId(wi, args[i+1], &item2, &search_var); + ZnTagSearchDestroy(search_var); + if ((result == TCL_ERROR) || (item2 == ZN_NO_ITEM)) { + Tcl_AppendResult(wi->interp, " unknown item \"", + Tcl_GetString(args[i+1]), "\"", NULL); + return TCL_ERROR; + } + } + if (item2 != *((ZnItem *) valp)) { + *((ZnItem *) valp) = item2; + *flags |= desc->flags; + } } break; case ZN_CONFIG_WINDOW: { - Tk_Window win, ancestor, parent; - str = Tcl_GetString(args[i+1]); - if (strlen(str) == 0) { - win = NULL; - } - else { - win = Tk_NameToWindow(wi->interp, str, wi->win); - if (win == NULL) { - return TCL_ERROR; - } - else { - /* - * Make sure that the zinc widget is either the parent of the - * window associated with the item or a descendant of that - * parent. Also, don't allow a toplevel window or the widget - * itself to be managed. - */ - parent = Tk_Parent(win); - for (ancestor = wi->win; ; ancestor = Tk_Parent(ancestor)) { - if (ancestor == parent) { - break; - } - if (((Tk_FakeWin *) (ancestor))->flags & TK_TOP_LEVEL) { - badWindow: - Tcl_AppendResult(wi->interp, "can't use ", - Tk_PathName(win), - " in a window item of this zinc widget", - (char *) NULL); - win = NULL; - return TCL_ERROR; - } - } - if (((Tk_FakeWin *) (win))->flags & TK_TOP_LEVEL) { - goto badWindow; - } - if (win == wi->win) { - goto badWindow; - } - if (win != *((Tk_Window *) valp)) { - *((Tk_Window *) valp) = win; - *flags |= desc->flags; - } - } - } + Tk_Window win, ancestor, parent; + str = Tcl_GetString(args[i+1]); + if (strlen(str) == 0) { + win = NULL; + } + else { + win = Tk_NameToWindow(wi->interp, str, wi->win); + if (win == NULL) { + return TCL_ERROR; + } + else { + /* + * Make sure that the zinc widget is either the parent of the + * window associated with the item or a descendant of that + * parent. Also, don't allow a toplevel window or the widget + * itself to be managed. + */ + parent = Tk_Parent(win); + for (ancestor = wi->win; ; ancestor = Tk_Parent(ancestor)) { + if (ancestor == parent) { + break; + } + if (((Tk_FakeWin *) (ancestor))->flags & TK_TOP_LEVEL) { + badWindow: + Tcl_AppendResult(wi->interp, "can't use ", + Tk_PathName(win), + " in a window item of this zinc widget", + (char *) NULL); + win = NULL; + return TCL_ERROR; + } + } + if (((Tk_FakeWin *) (win))->flags & TK_TOP_LEVEL) { + goto badWindow; + } + if (win == wi->win) { + goto badWindow; + } + if (win != *((Tk_Window *) valp)) { + *((Tk_Window *) valp) = win; + *flags |= desc->flags; + } + } + } } break; case ZN_CONFIG_CHAR: case ZN_CONFIG_UCHAR: case ZN_CONFIG_ALPHA: { - int integer; - if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { - return TCL_ERROR; - } - switch (desc->type) { - case ZN_CONFIG_UCHAR: - if (integer < 0) { - integer = 0; - } - case ZN_CONFIG_ALPHA: - if (integer < 0) { - integer = 0; - } - if (integer > 100) { - integer = 100; - } - break; - } - if (integer != *((char *) valp)) { - *((char *) valp) = integer; - *flags |= desc->flags; - } - break; + int integer; + if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { + return TCL_ERROR; + } + switch (desc->type) { + case ZN_CONFIG_UCHAR: + if (integer < 0) { + integer = 0; + } + case ZN_CONFIG_ALPHA: + if (integer < 0) { + integer = 0; + } + if (integer > 100) { + integer = 100; + } + break; + } + if (integer != *((char *) valp)) { + *((char *) valp) = integer; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_SHORT: case ZN_CONFIG_USHORT: { - int integer; - if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { - return TCL_ERROR; - } - if (desc->type == ZN_CONFIG_SHORT) { - if (integer < SHRT_MIN) { - integer = SHRT_MIN; - } - else if (integer > SHRT_MAX) { - integer = SHRT_MAX; - } - if (integer != *((short *) valp)) { - *((short *) valp) = integer; - *flags |= desc->flags; - } - } - else { - if (integer < 0) { - integer = 0; - } - else if (integer > USHRT_MAX) { - integer = USHRT_MAX; - } - if (integer != *((unsigned short *) valp)) { - *((unsigned short *) valp) = integer; - *flags |= desc->flags; - } - } - break; + int integer; + if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { + return TCL_ERROR; + } + if (desc->type == ZN_CONFIG_SHORT) { + if (integer < SHRT_MIN) { + integer = SHRT_MIN; + } + else if (integer > SHRT_MAX) { + integer = SHRT_MAX; + } + if (integer != *((short *) valp)) { + *((short *) valp) = integer; + *flags |= desc->flags; + } + } + else { + if (integer < 0) { + integer = 0; + } + else if (integer > USHRT_MAX) { + integer = USHRT_MAX; + } + if (integer != *((unsigned short *) valp)) { + *((unsigned short *) valp) = integer; + *flags |= desc->flags; + } + } + break; } case ZN_CONFIG_INT: case ZN_CONFIG_UINT: case ZN_CONFIG_ANGLE: { - int integer; - if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { - return TCL_ERROR; - } - switch (desc->type) { - case ZN_CONFIG_ANGLE: - if ((integer > 360) || (integer < -360)) { - integer = integer % 360; - } - break; - case ZN_CONFIG_UINT: - if (integer < 0) { - integer = 0; - } - break; - } - if (integer != *((int *) valp)) { - *((int *) valp) = integer; - *flags |= desc->flags; - } - break; + int integer; + if (Tcl_GetIntFromObj(wi->interp, args[i+1], &integer) == TCL_ERROR) { + return TCL_ERROR; + } + switch (desc->type) { + case ZN_CONFIG_ANGLE: + if ((integer > 360) || (integer < -360)) { + integer = integer % 360; + } + break; + case ZN_CONFIG_UINT: + if (integer < 0) { + integer = 0; + } + break; + } + if (integer != *((int *) valp)) { + *((int *) valp) = integer; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_FILL_RULE: { - ZnFillRule fill_rule; - - if (ZnGetFillRule(wi, Tcl_GetString(args[i+1]), &fill_rule) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " fill rule expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (fill_rule != *((ZnFillRule *) valp)) { - *((ZnFillRule *) valp) = fill_rule; - *flags |= desc->flags; - } - break; + ZnFillRule fill_rule; + + if (ZnGetFillRule(wi, Tcl_GetString(args[i+1]), &fill_rule) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " fill rule expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (fill_rule != *((ZnFillRule *) valp)) { + *((ZnFillRule *) valp) = fill_rule; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_ALIGNMENT: { - Tk_Justify justify; - if (Tk_GetJustify(wi->interp, Tcl_GetString(args[i+1]), &justify) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " justify expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (justify != *((Tk_Justify *) valp)) { - *((Tk_Justify *) valp) = justify; - *flags |= desc->flags; - } - break; + Tk_Justify justify; + if (Tk_GetJustify(wi->interp, Tcl_GetString(args[i+1]), &justify) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " justify expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (justify != *((Tk_Justify *) valp)) { + *((Tk_Justify *) valp) = justify; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_ANCHOR: { - Tk_Anchor anchor; - if (Tk_GetAnchor(wi->interp, Tcl_GetString(args[i+1]), &anchor) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " anchor expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (anchor != *((Tk_Anchor *) valp)) { - *((Tk_Anchor *) valp) = anchor; - *flags |= desc->flags; - } - break; + Tk_Anchor anchor; + if (Tk_GetAnchor(wi->interp, Tcl_GetString(args[i+1]), &anchor) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " anchor expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (anchor != *((Tk_Anchor *) valp)) { + *((Tk_Anchor *) valp) = anchor; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_LABEL_FORMAT: { - ZnLabelFormat frmt = NULL; - - str = Tcl_GetString(args[i+1]); - while (*str && (*str == ' ')) { - str++; - } - if (strlen(str) != 0) { - frmt = ZnLFCreate(wi->interp, str, - ZnFIELD.NumFields(item->class->GetFieldSet(item))); - if (frmt == NULL) { - return TCL_ERROR; - } - } - - if (*((ZnLabelFormat *) valp) != NULL) { - ZnLFDelete(*((ZnLabelFormat *) valp)); - *((ZnLabelFormat *) valp) = frmt; - *flags |= desc->flags; - } - else { - if (frmt != NULL) { - *((ZnLabelFormat *) valp) = frmt; - *flags |= desc->flags; - } - } - break; + ZnLabelFormat frmt = NULL; + + str = Tcl_GetString(args[i+1]); + while (*str && (*str == ' ')) { + str++; + } + if (strlen(str) != 0) { + frmt = ZnLFCreate(wi->interp, str, + ZnFIELD.NumFields(item->class->GetFieldSet(item))); + if (frmt == NULL) { + return TCL_ERROR; + } + } + + if (*((ZnLabelFormat *) valp) != NULL) { + ZnLFDelete(*((ZnLabelFormat *) valp)); + *((ZnLabelFormat *) valp) = frmt; + *flags |= desc->flags; + } + else { + if (frmt != NULL) { + *((ZnLabelFormat *) valp) = frmt; + *flags |= desc->flags; + } + } + break; } case ZN_CONFIG_AUTO_ALIGNMENT: { - ZnAutoAlign aa; - - if (ZnGetAutoAlign(wi, Tcl_GetString(args[i+1]), &aa) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " auto alignment expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if ((aa.automatic != ((ZnAutoAlign *) valp)->automatic) || - (aa.align[0] != ((ZnAutoAlign *) valp)->align[0]) || - (aa.align[1] != ((ZnAutoAlign *) valp)->align[1]) || - (aa.align[2] != ((ZnAutoAlign *) valp)->align[2])) { - *((ZnAutoAlign *) valp) = aa; - *flags |= desc->flags; - } - break; + ZnAutoAlign aa; + + if (ZnGetAutoAlign(wi, Tcl_GetString(args[i+1]), &aa) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " auto alignment expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if ((aa.automatic != ((ZnAutoAlign *) valp)->automatic) || + (aa.align[0] != ((ZnAutoAlign *) valp)->align[0]) || + (aa.align[1] != ((ZnAutoAlign *) valp)->align[1]) || + (aa.align[2] != ((ZnAutoAlign *) valp)->align[2])) { + *((ZnAutoAlign *) valp) = aa; + *flags |= desc->flags; + } + break; } case ZN_CONFIG_LEADER_ANCHORS: { - ZnLeaderAnchors lanch = NULL; - if (ZnGetLeaderAnchors(wi, Tcl_GetString(args[i+1]), &lanch) == TCL_ERROR) { - Tcl_AppendResult(wi->interp, " leader anchors expected for attribute \"", - Tcl_GetString(args[i]), "\"", NULL); - return TCL_ERROR; - } - if (*((ZnLeaderAnchors *) valp) != NULL) { - ZnFree(*((ZnLeaderAnchors *) valp)); - *((ZnLeaderAnchors *) valp) = lanch; - *flags |= desc->flags; - } - else { - if (lanch != NULL) { - *((ZnLeaderAnchors *) valp) = lanch; - *flags |= desc->flags; - } - } - break; + ZnLeaderAnchors lanch = NULL; + if (ZnGetLeaderAnchors(wi, Tcl_GetString(args[i+1]), &lanch) == TCL_ERROR) { + Tcl_AppendResult(wi->interp, " leader anchors expected for attribute \"", + Tcl_GetString(args[i]), "\"", NULL); + return TCL_ERROR; + } + if (*((ZnLeaderAnchors *) valp) != NULL) { + ZnFree(*((ZnLeaderAnchors *) valp)); + *((ZnLeaderAnchors *) valp) = lanch; + *flags |= desc->flags; + } + else { + if (lanch != NULL) { + *((ZnLeaderAnchors *) valp) = lanch; + *flags |= desc->flags; + } + } + break; } } } @@ -1060,23 +1060,23 @@ ZnConfigureAttributes(ZnWInfo *wi, * * AttributeToObj -- * - * Returns the obj representation of the attribute pointed - * by 'valp'. The attribute type is given by 'type'. The function - * never fail. + * Returns the obj representation of the attribute pointed + * by 'valp'. The attribute type is given by 'type'. The function + * never fail. * ********************************************************************************** */ static void -AttributeToObj(Tcl_Interp *interp, - void *record, - ZnAttrConfig *desc, - Tcl_Obj *result) +AttributeToObj(Tcl_Interp *interp, + void *record, + ZnAttrConfig *desc, + Tcl_Obj *result) { - char *valp = ((char *) record) + desc->offset; - char *str = ""; - Tcl_Obj *o; - unsigned int i; - char buffer[256]; + char *valp = ((char *) record) + desc->offset; + char *str = ""; + Tcl_Obj *o; + unsigned int i; + char buffer[256]; switch (desc->type) { case ZN_CONFIG_GRADIENT: @@ -1090,14 +1090,14 @@ AttributeToObj(Tcl_Interp *interp, ZnGradient **grads; if (*((ZnList *) valp)) { - grads = ZnListArray(*((ZnList *) valp)); - num_grads = ZnListSize(*((ZnList *) valp)); - - for (i = 0; i < num_grads; i++) { - o = Tcl_NewStringObj(ZnNameOfGradient(grads[i]), -1); - Tcl_ListObjAppendElement(interp, result, o); - } - return; + grads = ZnListArray(*((ZnList *) valp)); + num_grads = ZnListSize(*((ZnList *) valp)); + + for (i = 0; i < num_grads; i++) { + o = Tcl_NewStringObj(ZnNameOfGradient(grads[i]), -1); + Tcl_ListObjAppendElement(interp, result, o); + } + return; } } break; @@ -1113,38 +1113,38 @@ AttributeToObj(Tcl_Interp *interp, case ZN_CONFIG_BITMAP_LIST: { unsigned int num_pats=0; - ZnImage *pats; + ZnImage *pats; if (*((ZnList *) valp)) { - pats = (ZnImage *) ZnListArray(*((ZnList *) valp)); - num_pats = ZnListSize(*((ZnList *) valp)); - - for (i = 0; i < num_pats; i++) { - if (pats[i] != ZnUnspecifiedImage) { - o = Tcl_NewStringObj(ZnNameOfImage(pats[i]), -1); - } - else { - o = Tcl_NewStringObj("", -1); - } - Tcl_ListObjAppendElement(interp, result, o); - } - return; + pats = (ZnImage *) ZnListArray(*((ZnList *) valp)); + num_pats = ZnListSize(*((ZnList *) valp)); + + for (i = 0; i < num_pats; i++) { + if (pats[i] != ZnUnspecifiedImage) { + o = Tcl_NewStringObj(ZnNameOfImage(pats[i]), -1); + } + else { + o = Tcl_NewStringObj("", -1); + } + Tcl_ListObjAppendElement(interp, result, o); + } + return; } break; } case ZN_CONFIG_TAG_LIST: { unsigned int num_tags=0; - Tk_Uid *tags; + Tk_Uid *tags; if (*((ZnList *) valp)) { - tags = (Tk_Uid *) ZnListArray(*((ZnList *) valp)); - num_tags = ZnListSize(*((ZnList *) valp)); - for (i = 0; i < num_tags; i++) { - Tcl_ListObjAppendElement(interp, result, - Tcl_NewStringObj(tags[i], -1)); - } - return; + tags = (Tk_Uid *) ZnListArray(*((ZnList *) valp)); + num_tags = ZnListSize(*((ZnList *) valp)); + for (i = 0; i < num_tags; i++) { + Tcl_ListObjAppendElement(interp, result, + Tcl_NewStringObj(tags[i], -1)); + } + return; } break; } @@ -1257,12 +1257,12 @@ AttributeToObj(Tcl_Interp *interp, ********************************************************************************** */ int -ZnQueryAttribute(Tcl_Interp *interp, - void *record, - ZnAttrConfig *desc_table, - Tcl_Obj *attr_name) +ZnQueryAttribute(Tcl_Interp *interp, + void *record, + ZnAttrConfig *desc_table, + Tcl_Obj *attr_name) { - ZnAttrConfig *desc = GetAttrDesc(interp, attr_name, desc_table); + ZnAttrConfig *desc = GetAttrDesc(interp, attr_name, desc_table); if (!desc) { return TCL_ERROR; @@ -1294,10 +1294,10 @@ ZnItemClassList() ********************************************************************************** */ ZnItemClass -ZnLookupItemClass(char *class_name) +ZnLookupItemClass(char *class_name) { - ZnItemClass *class; - int i, num_classes; + ZnItemClass *class; + int i, num_classes; class = (ZnItemClass *) ZnListArray(item_classes); num_classes = ZnListSize(item_classes); @@ -1318,7 +1318,7 @@ ZnLookupItemClass(char *class_name) ********************************************************************************** */ void -ZnAddItemClass(ZnItemClass class) +ZnAddItemClass(ZnItemClass class) { if (!ZnLookupItemClass(class->name)) { ZnListAdd(item_classes, &class, ZnListTail); @@ -1330,7 +1330,7 @@ ZnAddItemClass(ZnItemClass class) ********************************************************************************** * * ZnItemInit -- - * Initialize classes static state. + * Initialize classes static state. * ********************************************************************************** */ @@ -1364,14 +1364,14 @@ ZnItemInit() ********************************************************************************** * * UpdateItemDependency -- Method - * Update the group dependency list following a change in the - * connection of an item. + * Update the group dependency list following a change in the + * connection of an item. * ********************************************************************************** */ static void -UpdateItemDependency(ZnItem item, - ZnItem old_connection) +UpdateItemDependency(ZnItem item, + ZnItem old_connection) { if (old_connection == ZN_NO_ITEM) { /* Add a connection */ @@ -1395,16 +1395,16 @@ UpdateItemDependency(ZnItem item, ********************************************************************************** * * ExtractItem -- - * Extract an item from its context, includes updating graphic - * state flags. + * Extract an item from its context, includes updating graphic + * state flags. * ********************************************************************************** */ static void -ExtractItem(ZnItem item) +ExtractItem(ZnItem item) { - ZnWInfo *wi = item->wi; - ZnItem group = item->parent; + ZnWInfo *wi = item->wi; + ZnItem group = item->parent; /* damage bounding boxes */ if (ISSET(item->flags, ZN_VISIBLE_BIT)) { @@ -1441,19 +1441,19 @@ ExtractItem(ZnItem item) * * InsertItem -- Method * - * Insert an item in the display list according to its priority. - * It is inserted in front of items of lower or same priority. If - * mark_item is not ZN_NO_ITEM the insertion is done relative - * to this item, before it if 'before' is True, after it otherwise. - * mark_item must be in the group 'group'. + * Insert an item in the display list according to its priority. + * It is inserted in front of items of lower or same priority. If + * mark_item is not ZN_NO_ITEM the insertion is done relative + * to this item, before it if 'before' is True, after it otherwise. + * mark_item must be in the group 'group'. * ********************************************************************************** */ static void -InsertItem(ZnItem item, - ZnItem grp, - ZnItem mark_item, - ZnBool before) +InsertItem(ZnItem item, + ZnItem grp, + ZnItem mark_item, + ZnBool before) { if (!grp) { grp = item->wi->top_group; @@ -1472,17 +1472,17 @@ InsertItem(ZnItem item, ********************************************************************************** * * UpdateItemPriority -- Method - * Reorder a group's item list following a change in an - * item priority or a call to lower/raise. + * Reorder a group's item list following a change in an + * item priority or a call to lower/raise. * ********************************************************************************** */ static void -UpdateItemPriority(ZnItem item, - ZnItem mark_item, - ZnBool before) +UpdateItemPriority(ZnItem item, + ZnItem mark_item, + ZnBool before) { - ZnItem parent = item->parent; + ZnItem parent = item->parent; ZnGroupExtractItem(item); InsertItem(item, parent, mark_item, before); @@ -1496,19 +1496,19 @@ UpdateItemPriority(ZnItem item, * * SetId, * FreeId -- Method - * Get a fresh object id from the widget and enter the new - * object with this id in the object hash table. The id is - * incremented. FreeId on the other hand suppress the item - * from the hash table and set its object id to zero. + * Get a fresh object id from the widget and enter the new + * object with this id in the object hash table. The id is + * incremented. FreeId on the other hand suppress the item + * from the hash table and set its object id to zero. * ********************************************************************************** */ static void -SetId(ZnItem item) +SetId(ZnItem item) { - ZnWInfo *wi = item->wi; - Tcl_HashEntry *entry; - int dummy; + ZnWInfo *wi = item->wi; + Tcl_HashEntry *entry; + int dummy; item->id = wi->obj_id; wi->obj_id++; @@ -1517,9 +1517,9 @@ SetId(ZnItem item) } static void -FreeId(ZnItem item) +FreeId(ZnItem item) { - Tcl_HashEntry *entry; + Tcl_HashEntry *entry; if (item->id) { entry = Tcl_FindHashEntry(item->wi->id_table, (char *) item->id); @@ -1534,19 +1534,19 @@ FreeId(ZnItem item) ********************************************************************************** * * AddTag -- Method - * Add a tag to the item. If the tag is already on the list it - * is not added. As a side effect the tag/item pair is added to - * the tag table of the widget. - * 'tag' must be a Tk_Uid. + * Add a tag to the item. If the tag is already on the list it + * is not added. As a side effect the tag/item pair is added to + * the tag table of the widget. + * 'tag' must be a Tk_Uid. * ********************************************************************************** */ static void -AddTag(ZnItem item, - Tk_Uid tag) +AddTag(ZnItem item, + Tk_Uid tag) { - int num, i; - char **ptr; + int num, i; + char **ptr; /* * No tags yet. @@ -1562,7 +1562,7 @@ AddTag(ZnItem item, num = ZnListSize(item->tags); for (i = 0; i < num; i++) { if (ptr[i] == tag) { - return; + return; } } } @@ -1580,11 +1580,11 @@ AddTag(ZnItem item, ********************************************************************************** */ static void -RemoveTag(ZnItem item, - Tk_Uid tag) +RemoveTag(ZnItem item, + Tk_Uid tag) { - unsigned int indx, num; - char **ptr; + unsigned int indx, num; + char **ptr; if (!item->tags) { return; @@ -1612,7 +1612,7 @@ RemoveTag(ZnItem item, ********************************************************************************** */ static void -FreeTags(ZnItem item) +FreeTags(ZnItem item) { if (!item->tags) { return; @@ -1630,11 +1630,11 @@ FreeTags(ZnItem item) ********************************************************************************** */ static ZnBool -HasTag(ZnItem item, - Tk_Uid tag) +HasTag(ZnItem item, + Tk_Uid tag) { - int num; - Tk_Uid *tags; + int num; + Tk_Uid *tags; if (!item->tags || !ZnListSize(item->tags)) { return False; @@ -1644,7 +1644,7 @@ HasTag(ZnItem item, tags = ZnListArray(item->tags); for (tags = ZnListArray(item->tags); num > 0; tags++, num--) { if (*tags == tag) { - return True; + return True; } } } @@ -1657,21 +1657,21 @@ HasTag(ZnItem item, * * ZnCreateItem -- * - * InsertItem and ConfigureItem must be called after CreateItem - * to finalize the setup of a new item. This is so even if - * there are no attributes to be changed after creation. - * ConfigureItem must be called in this case with the 'init' - * parameter set to True. + * InsertItem and ConfigureItem must be called after CreateItem + * to finalize the setup of a new item. This is so even if + * there are no attributes to be changed after creation. + * ConfigureItem must be called in this case with the 'init' + * parameter set to True. * ********************************************************************************** */ ZnItem -ZnCreateItem(ZnWInfo *wi, - ZnItemClass item_class, - int *argc, - Tcl_Obj *CONST *args[]) +ZnCreateItem(ZnWInfo *wi, + ZnItemClass item_class, + int *argc, + Tcl_Obj *CONST *args[]) { - ZnItem item; + ZnItem item; item = ZnMalloc(item_class->size); @@ -1713,18 +1713,18 @@ ZnCreateItem(ZnWInfo *wi, ********************************************************************************** * * CloneItem -- Method - * Can't clone the top level group. + * Can't clone the top level group. * ********************************************************************************** */ static ZnItem -CloneItem(ZnItem model) +CloneItem(ZnItem model) { - ZnWInfo *wi = model->wi; - ZnItem item; - Tk_Uid *tags; - unsigned int num_tags; - int i; + ZnWInfo *wi = model->wi; + ZnItem item; + Tk_Uid *tags; + unsigned int num_tags; + int i; if (!model->parent) { return ZN_NO_ITEM; @@ -1773,31 +1773,31 @@ CloneItem(ZnItem model) ********************************************************************************** */ static int -ConfigureItem(ZnItem item, - int field, - int argc, - Tcl_Obj *CONST argv[], - ZnBool init) +ConfigureItem(ZnItem item, + int field, + int argc, + Tcl_Obj *CONST argv[], + ZnBool init) { - ZnWInfo *wi = item->wi; - int flags; - ZnBool previous_visible = init ? False : ISSET(item->flags, ZN_VISIBLE_BIT); + ZnWInfo *wi = item->wi; + int flags; + ZnBool previous_visible = init ? False : ISSET(item->flags, ZN_VISIBLE_BIT); flags = 0; ASSIGN(flags, ZN_COORDS_FLAG, init); if (argv) { if (field < 0){ if (item->class->Configure(item, argc, argv, &flags) == TCL_ERROR) { - return TCL_ERROR; + return TCL_ERROR; } if (item->class->GetFieldSet && ISSET(flags, ZN_CLFC_FLAG)) { - ZnFIELD.ClearFieldCache(item->class->GetFieldSet(item), -1); + ZnFIELD.ClearFieldCache(item->class->GetFieldSet(item), -1); } } else if (item->class->GetFieldSet) { if (ZnFIELD.ConfigureField(item->class->GetFieldSet(item), - field, argc, argv, &flags) == TCL_ERROR) { - return TCL_ERROR; + field, argc, argv, &flags) == TCL_ERROR) { + return TCL_ERROR; } } else { @@ -1827,17 +1827,17 @@ ConfigureItem(ZnItem item, ********************************************************************************** */ static int -QueryItem(ZnItem item, - int field, - int argc, - Tcl_Obj *CONST argv[]) +QueryItem(ZnItem item, + int field, + int argc, + Tcl_Obj *CONST argv[]) { if (field < 0) { return item->class->Query(item, argc, argv); } else if (item->class->GetFieldSet) { return ZnFIELD.QueryField(item->class->GetFieldSet(item), - field, argc, argv); + field, argc, argv); } return TCL_ERROR; @@ -1848,20 +1848,20 @@ QueryItem(ZnItem item, ********************************************************************************** * * ComposeTransform -- - * Compose a transform transfo with current_t to new_t. + * Compose a transform transfo with current_t to new_t. * ********************************************************************************** */ static void -ComposeTransform(ZnTransfo *transfo, - ZnPoint *pos, - ZnTransfo *current_t, - ZnTransfo *new_t, - ZnBool compose_scale, - ZnBool compose_rot) +ComposeTransform(ZnTransfo *transfo, + ZnPoint *pos, + ZnTransfo *current_t, + ZnTransfo *new_t, + ZnBool compose_scale, + ZnBool compose_rot) { - ZnBool full; - ZnTransfo t, t2; + ZnBool full; + ZnTransfo t, t2; full = compose_scale && compose_rot; @@ -1876,10 +1876,10 @@ ComposeTransform(ZnTransfo *transfo, /*ZnPrintTransfo(transfo);*/ if (pos) { if (!transfo) { - ZnTransfoSetIdentity(&t); + ZnTransfoSetIdentity(&t); } else { - t = *transfo; + t = *transfo; } ZnTranslate(&t, pos->x, pos->y, False); ZnTransfoCompose(new_t, &t, current_t); @@ -1889,8 +1889,8 @@ ComposeTransform(ZnTransfo *transfo, } } else { - ZnPoint scale, trans, local_scale, local_trans, p; - ZnReal local_rot, rot; + ZnPoint scale, trans, local_scale, local_trans, p; + ZnReal local_rot, rot; ZnTransfoSetIdentity(new_t); ZnTransfoDecompose(transfo, &local_scale, &local_trans, &local_rot, NULL); @@ -1924,18 +1924,18 @@ ComposeTransform(ZnTransfo *transfo, ********************************************************************************** * * GetItemTransform -- Method - * Compute the current transform for an item. + * Compute the current transform for an item. * ********************************************************************************** */ static void -GetItemTransform(ZnItem item, - ZnTransfo *t) +GetItemTransform(ZnItem item, + ZnTransfo *t) { - ZnItem *items; - int i; - ZnTransfo t_tmp, *t1, *t2, *swap; - ZnPoint *pos; + ZnItem *items; + int i; + ZnTransfo t_tmp, *t1, *t2, *swap; + ZnPoint *pos; if (item_stack == NULL) { item_stack = ZnListNew(16, sizeof(ZnItem)); @@ -1958,12 +1958,12 @@ GetItemTransform(ZnItem item, if (items[i]->class->pos_offset >= 0) { pos = (ZnPoint *) (((char *) items[i]) + items[i]->class->pos_offset); if (pos->x == 0 && pos->y == 0) { - pos = NULL; + pos = NULL; } } ComposeTransform(items[i]->transfo, pos, t1, t2, - ISSET(items[i]->flags, ZN_COMPOSE_SCALE_BIT), - ISSET(items[i]->flags, ZN_COMPOSE_ROTATION_BIT)); + ISSET(items[i]->flags, ZN_COMPOSE_SCALE_BIT), + ISSET(items[i]->flags, ZN_COMPOSE_ROTATION_BIT)); swap = t2; t2 = t1; t1 = swap; @@ -1988,7 +1988,7 @@ GetItemTransform(ZnItem item, ********************************************************************************** */ void -ZnResetTransformStack(ZnWInfo *wi) +ZnResetTransformStack(ZnWInfo *wi) { ZnListAssertSize(wi->transfo_stack, 1); wi->current_transfo = (ZnTransfo *) ZnListAt(wi->transfo_stack, 0); @@ -1996,27 +1996,27 @@ ZnResetTransformStack(ZnWInfo *wi) } void -ZnInitTransformStack(ZnWInfo *wi) +ZnInitTransformStack(ZnWInfo *wi) { wi->transfo_stack = ZnListNew(8, sizeof(ZnTransfo)); ZnResetTransformStack(wi); } void -ZnFreeTransformStack(ZnWInfo *wi) +ZnFreeTransformStack(ZnWInfo *wi) { ZnListFree(wi->transfo_stack); } void -ZnPushTransform(ZnWInfo *wi, - ZnTransfo *transfo, - ZnPoint *pos, - ZnBool compose_scale, - ZnBool compose_rot) +ZnPushTransform(ZnWInfo *wi, + ZnTransfo *transfo, + ZnPoint *pos, + ZnBool compose_scale, + ZnBool compose_rot) { - ZnTransfo *next_t; - unsigned int num_t; + ZnTransfo *next_t; + unsigned int num_t; /* * Push the current transform and concatenate @@ -2027,12 +2027,12 @@ ZnPushTransform(ZnWInfo *wi, ZnListAssertSize(wi->transfo_stack, num_t+1); next_t = (ZnTransfo *) ZnListAt(wi->transfo_stack, num_t); ComposeTransform(transfo, pos, wi->current_transfo, next_t, - compose_scale, compose_rot); + compose_scale, compose_rot); wi->current_transfo = next_t; } void -ZnPopTransform(ZnWInfo *wi) +ZnPopTransform(ZnWInfo *wi) { /* * Restore the previous transform. @@ -2059,17 +2059,17 @@ ZnPopTransform(ZnWInfo *wi) * of the item hierarchy. */ typedef struct _ClipState { - ZnBool simple; /* The clip is an aligned rectangle. */ - TkRegion region; /* The region used to draw and to */ - /* probe for picking. */ - ZnBBox clip_box; /* The bounding box of the clip area. */ + ZnBool simple; /* The clip is an aligned rectangle. */ + TkRegion region; /* The region used to draw and to */ + /* probe for picking. */ + ZnBBox clip_box; /* The bounding box of the clip area. */ } ClipState; void -ZnResetClipStack(ZnWInfo *wi) +ZnResetClipStack(ZnWInfo *wi) { - int i; - ClipState *clips = (ClipState *) ZnListArray(wi->clip_stack); + int i; + ClipState *clips = (ClipState *) ZnListArray(wi->clip_stack); /* * Should not happen, clip stack should be @@ -2083,23 +2083,23 @@ ZnResetClipStack(ZnWInfo *wi) } void -ZnInitClipStack(ZnWInfo *wi) +ZnInitClipStack(ZnWInfo *wi) { wi->clip_stack = ZnListNew(8, sizeof(ClipState)); ZnResetClipStack(wi); } void -ZnFreeClipStack(ZnWInfo *wi) +ZnFreeClipStack(ZnWInfo *wi) { ZnListFree(wi->clip_stack); } ZnBool -ZnCurrentClip(ZnWInfo *wi, - TkRegion *reg, - ZnBBox **clip_box, - ZnBool *simple) +ZnCurrentClip(ZnWInfo *wi, + TkRegion *reg, + ZnBBox **clip_box, + ZnBool *simple) { if (wi->current_clip) { if (reg) { @@ -2123,18 +2123,18 @@ ZnCurrentClip(ZnWInfo *wi, * is a regular pointer to a multi contour poly. */ void -ZnPushClip(ZnWInfo *wi, - ZnTriStrip *tristrip, - ZnBool simple, - ZnBool set_gc) +ZnPushClip(ZnWInfo *wi, + ZnTriStrip *tristrip, + ZnBool simple, + ZnBool set_gc) { - unsigned int i, j, num_clips; - unsigned int num_pts, max_num_pts; - ZnPoint *p; - ClipState *previous_clip=NULL; - TkRegion reg, reg_op, reg_to; - XRectangle rect; - XPoint xpts[3]; + unsigned int i, j, num_clips; + unsigned int num_pts, max_num_pts; + ZnPoint *p; + ClipState *previous_clip=NULL; + TkRegion reg, reg_op, reg_to; + XRectangle rect; + XPoint xpts[3]; if (tristrip->num_strips == 0) { return; @@ -2167,9 +2167,9 @@ ZnPushClip(ZnWInfo *wi, rect.x = (short) tristrip->strips[0].points[0].x; rect.y = (short) tristrip->strips[0].points[0].y; rect.width = ((unsigned short) (tristrip->strips[0].points[1].x - - tristrip->strips[0].points[0].x)); + tristrip->strips[0].points[0].x)); rect.height = ((unsigned short) (tristrip->strips[0].points[1].y - - tristrip->strips[0].points[0].y)); + tristrip->strips[0].points[0].y)); reg = TkCreateRegion(); TkUnionRectWithRegion(&rect, reg, reg); /*printf("Adding a simple clip: %d, %d, %d, %d\n", @@ -2181,43 +2181,43 @@ ZnPushClip(ZnWInfo *wi, num_pts = tristrip->strips[j].num_points; p = tristrip->strips[j].points; if (tristrip->strips[j].fan) { - xpts[0].x = ZnNearestInt(p->x); - xpts[0].y = ZnNearestInt(p->y); - p++; - xpts[1].x = ZnNearestInt(p->x); - xpts[1].y = ZnNearestInt(p->y); - p++; - for (i = 2; i < num_pts; i++, p++) { - xpts[2].x = ZnNearestInt(p->x); - xpts[2].y = ZnNearestInt(p->y); - reg_op = (TkRegion) ZnPolygonRegion(xpts, 3, EvenOddRule); - reg_to = TkCreateRegion(); - ZnUnionRegion(reg, reg_op, reg_to); - TkDestroyRegion(reg); - TkDestroyRegion(reg_op); - reg = reg_to; - xpts[1] = xpts[2]; - } + xpts[0].x = ZnNearestInt(p->x); + xpts[0].y = ZnNearestInt(p->y); + p++; + xpts[1].x = ZnNearestInt(p->x); + xpts[1].y = ZnNearestInt(p->y); + p++; + for (i = 2; i < num_pts; i++, p++) { + xpts[2].x = ZnNearestInt(p->x); + xpts[2].y = ZnNearestInt(p->y); + reg_op = (TkRegion) ZnPolygonRegion(xpts, 3, EvenOddRule); + reg_to = TkCreateRegion(); + ZnUnionRegion(reg, reg_op, reg_to); + TkDestroyRegion(reg); + TkDestroyRegion(reg_op); + reg = reg_to; + xpts[1] = xpts[2]; + } } else { - xpts[0].x = (short) p->x; - xpts[0].y = (short) p->y; - p++; - xpts[1].x = (short) p->x; - xpts[1].y = (short) p->y; - p++; - for (i = 2 ; i < num_pts; i++, p++) { - xpts[2].x = (short) p->x; - xpts[2].y = (short) p->y; - reg_op = (TkRegion) ZnPolygonRegion(xpts, 3, EvenOddRule); - reg_to = TkCreateRegion(); - ZnUnionRegion(reg, reg_op, reg_to); - TkDestroyRegion(reg); - TkDestroyRegion(reg_op); - reg = reg_to; - xpts[0] = xpts[1]; - xpts[1] = xpts[2]; - } + xpts[0].x = (short) p->x; + xpts[0].y = (short) p->y; + p++; + xpts[1].x = (short) p->x; + xpts[1].y = (short) p->y; + p++; + for (i = 2 ; i < num_pts; i++, p++) { + xpts[2].x = (short) p->x; + xpts[2].y = (short) p->y; + reg_op = (TkRegion) ZnPolygonRegion(xpts, 3, EvenOddRule); + reg_to = TkCreateRegion(); + ZnUnionRegion(reg, reg_op, reg_to); + TkDestroyRegion(reg); + TkDestroyRegion(reg_op); + reg = reg_to; + xpts[0] = xpts[1]; + xpts[1] = xpts[2]; + } } } } @@ -2252,34 +2252,34 @@ ZnPushClip(ZnWInfo *wi, glStencilOp(GL_KEEP, GL_INCR, GL_INCR); glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); if (simple) { - /* printf("Clip box is : %d, %d, %d, %d, num_clips : %d\n", - rect.x, rect.y, rect.width, rect.height, num_clips);*/ - glBegin(GL_QUADS); - glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.orig.y); - glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.corner.y); - glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.corner.y); - glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.orig.y); - glEnd(); + /* printf("Clip box is : %d, %d, %d, %d, num_clips : %d\n", + rect.x, rect.y, rect.width, rect.height, num_clips);*/ + glBegin(GL_QUADS); + glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.orig.y); + glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.corner.y); + glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.corner.y); + glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.orig.y); + glEnd(); } else { - for (j = 0; j < tristrip->num_strips; j++) { - num_pts = tristrip->strips[j].num_points; - p = tristrip->strips[j].points; - if (tristrip->strips[j].fan) { - glBegin(GL_TRIANGLE_FAN); - } - else { - glBegin(GL_TRIANGLE_STRIP); - } - for (i = 0; i < num_pts; i++, p++) { - glVertex2d(p->x, p->y); - } - glEnd(); - } + for (j = 0; j < tristrip->num_strips; j++) { + num_pts = tristrip->strips[j].num_points; + p = tristrip->strips[j].points; + if (tristrip->strips[j].fan) { + glBegin(GL_TRIANGLE_FAN); + } + else { + glBegin(GL_TRIANGLE_STRIP); + } + for (i = 0; i < num_pts; i++, p++) { + glVertex2d(p->x, p->y); + } + glEnd(); + } } glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glStencilFunc(GL_EQUAL, (GLint) (num_clips+1), 0xFF); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); #endif } else { @@ -2289,10 +2289,10 @@ ZnPushClip(ZnWInfo *wi, } void -ZnPopClip(ZnWInfo *wi, - ZnBool set_gc) +ZnPopClip(ZnWInfo *wi, + ZnBool set_gc) { - int num_clips; + int num_clips; if (wi->current_clip == NULL) { return; @@ -2316,42 +2316,42 @@ ZnPopClip(ZnWInfo *wi, if (num_clips != 0) { if (wi->render) { #ifdef GL - glStencilFunc(GL_EQUAL, (GLint) (num_clips+1), 0xFF); - glStencilOp(GL_KEEP, GL_DECR, GL_DECR); - glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); + glStencilFunc(GL_EQUAL, (GLint) (num_clips+1), 0xFF); + glStencilOp(GL_KEEP, GL_DECR, GL_DECR); + glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); #if 0 - if (wi->current_clip->simple) { + if (wi->current_clip->simple) { #endif - glBegin(GL_QUADS); - glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.orig.y); - glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.corner.y); - glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.corner.y); - glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.orig.y); - glEnd(); + glBegin(GL_QUADS); + glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.orig.y); + glVertex2d(wi->current_clip->clip_box.orig.x, wi->current_clip->clip_box.corner.y); + glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.corner.y); + glVertex2d(wi->current_clip->clip_box.corner.x, wi->current_clip->clip_box.orig.y); + glEnd(); #if 0 - } - else { - } + } + else { + } #endif - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - glStencilFunc(GL_EQUAL, (GLint) num_clips, 0xFF); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + glStencilFunc(GL_EQUAL, (GLint) num_clips, 0xFF); + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); #endif } else { - TkSetRegion(wi->dpy, wi->gc, wi->current_clip->region); + TkSetRegion(wi->dpy, wi->gc, wi->current_clip->region); } } else { /*printf("resetting clip mask\n");*/ if (wi->render) { #ifdef GL - glClear(GL_STENCIL_BUFFER_BIT); - glDisable(GL_STENCIL_TEST); + glClear(GL_STENCIL_BUFFER_BIT); + glDisable(GL_STENCIL_TEST); #endif } else { - XSetClipMask(wi->dpy, wi->gc, None); + XSetClipMask(wi->dpy, wi->gc, None); } } } @@ -2367,8 +2367,8 @@ ZnPopClip(ZnWInfo *wi, ********************************************************************************** */ static void -Invalidate(ZnItem item, - int reason) +Invalidate(ZnItem item, + int reason) { /* * Why this test has to be so an abrupt shortcut ? @@ -2383,8 +2383,8 @@ Invalidate(ZnItem item, ISSET(reason, ZN_TRANSFO_FLAG)) { ZnItem parent = item->parent; while ((parent != NULL) && - ISCLEAR(parent->inv_flags, ZN_COORDS_FLAG) && - ISCLEAR(parent->inv_flags, ZN_TRANSFO_FLAG)) { + ISCLEAR(parent->inv_flags, ZN_COORDS_FLAG) && + ISCLEAR(parent->inv_flags, ZN_TRANSFO_FLAG)) { SET(parent->inv_flags, ZN_COORDS_FLAG); /*printf("invalidate coords for parent %d\n", parent->id);*/ parent = parent->parent; @@ -2396,8 +2396,8 @@ Invalidate(ZnItem item, */ item->inv_flags |= reason; /*printf("invalidate %s for item %d, flags %s\n", - ISSET(reason, ZN_TRANSFO_FLAG)?"TRANSFO":"COORDS", item->id, - ISSET(item->inv_flags, ZN_TRANSFO_FLAG)?"TRANSFO":"COORDS");*/ + ISSET(reason, ZN_TRANSFO_FLAG)?"TRANSFO":"COORDS", item->id, + ISSET(item->inv_flags, ZN_TRANSFO_FLAG)?"TRANSFO":"COORDS");*/ ZnNeedRedisplay(item->wi); } else if (ISSET(reason, ZN_DRAW_FLAG)) { @@ -2411,8 +2411,8 @@ Invalidate(ZnItem item, * to reflect the changes. */ if (item->gl_list) { - glDeleteLists(item->gl_list, 1); - item->gl_list = 0; + glDeleteLists(item->gl_list, 1); + item->gl_list = 0; } #endif #endif @@ -2420,22 +2420,22 @@ Invalidate(ZnItem item, } } - + /* ********************************************************************************** * * InvalidateItems -- Method - * Invalidate the geometric state of all items belonging - * to a given class. The search for items starts at group - * and proceed depth first. + * Invalidate the geometric state of all items belonging + * to a given class. The search for items starts at group + * and proceed depth first. * ********************************************************************************** */ static void -InvalidateItems(ZnItem group, - ZnItemClass item_class) +InvalidateItems(ZnItem group, + ZnItemClass item_class) { - ZnItem item; + ZnItem item; if (group->class != ZnGroup) { return; @@ -2462,14 +2462,14 @@ InvalidateItems(ZnItem group, * ScaleItem * SkewItem * RotateItem -- Methods - * Set of functions that deal with item transform. They take care - * of all details including managing NULL transforms and invalidating - * the item hierarchy. + * Set of functions that deal with item transform. They take care + * of all details including managing NULL transforms and invalidating + * the item hierarchy. * ********************************************************************************** */ static void -ResetTransfo(ZnItem item) +ResetTransfo(ZnItem item) { if (item->transfo) { ZnFree(item->transfo); @@ -2480,8 +2480,8 @@ ResetTransfo(ZnItem item) static void -SetTransfo(ZnItem item, - ZnTransfo *t) +SetTransfo(ZnItem item, + ZnTransfo *t) { if (item->transfo) { ZnFree(item->transfo); @@ -2497,10 +2497,10 @@ SetTransfo(ZnItem item, static void -TranslateItem(ZnItem item, - ZnReal dx, - ZnReal dy, - ZnBool abs) +TranslateItem(ZnItem item, + ZnReal dx, + ZnReal dy, + ZnBool abs) { if (!item->transfo) { item->transfo = ZnTransfoNew(); @@ -2511,10 +2511,10 @@ TranslateItem(ZnItem item, static void -ScaleItem(ZnItem item, - ZnReal sx, - ZnReal sy, - ZnPoint *p) +ScaleItem(ZnItem item, + ZnReal sx, + ZnReal sy, + ZnPoint *p) { if (!item->transfo) { item->transfo = ZnTransfoNew(); @@ -2531,9 +2531,9 @@ ScaleItem(ZnItem item, static void -SkewItem(ZnItem item, - ZnReal x_skew, - ZnReal y_skew) +SkewItem(ZnItem item, + ZnReal x_skew, + ZnReal y_skew) { if (!item->transfo) { item->transfo = ZnTransfoNew(); @@ -2544,10 +2544,10 @@ SkewItem(ZnItem item, static void -RotateItem(ZnItem item, - ZnReal angle, - ZnBool deg, - ZnPoint *p) +RotateItem(ZnItem item, + ZnReal angle, + ZnBool deg, + ZnPoint *p) { if (!item->transfo) { item->transfo = ZnTransfoNew(); @@ -2577,10 +2577,10 @@ RotateItem(ZnItem item, ********************************************************************************** */ static void -DestroyItem(ZnItem item) +DestroyItem(ZnItem item) { - ZnWInfo *wi = item->wi; - ZnTextInfo *ti = &wi->text_info; + ZnWInfo *wi = item->wi; + ZnTextInfo *ti = &wi->text_info; /* * Extract it from its group. |