diff options
-rw-r--r-- | generic/Item.c | 31 | ||||
-rw-r--r-- | generic/Item.h | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/generic/Item.c b/generic/Item.c index 43121eb..2668f1a 100644 --- a/generic/Item.c +++ b/generic/Item.c @@ -1759,6 +1759,36 @@ FreeTags(Item item) /* ********************************************************************************** * + * HasTag -- Method + * + ********************************************************************************** + */ +static ZnBool +HasTag(Item item, + Tk_Uid tag) +{ + int num; + Tk_Uid *tags; + + if (!item->tags || !ZnListSize(item->tags)) { + return False; + } + else { + num = ZnListSize(item->tags); + tags = ZnListArray(item->tags); + for (tags = ZnListArray(item->tags); num > 0; tags++, num--) { + if (*tags == tag) { + return True; + } + } + } + return False; +} + + +/* + ********************************************************************************** + * * ZnCreateItem -- * * InsertItem and ConfigureItem must be called after CreateItem @@ -2685,6 +2715,7 @@ struct _ITEM ITEM = { AddTag, RemoveTag, FreeTags, + HasTag, ResetTransfo, SetTransfo, TranslateItem, diff --git a/generic/Item.h b/generic/Item.h index 21dc2c2..8fb19e7 100644 --- a/generic/Item.h +++ b/generic/Item.h @@ -223,6 +223,7 @@ extern struct _ITEM { void (*AddTag)(Item item, Tk_Uid tag); void (*RemoveTag)(Item item, Tk_Uid tag); void (*FreeTags)(Item item); + ZnBool (*HasTag)(Item item, Tk_Uid tag); void (*ResetTransfo)(Item item); void (*SetTransfo)(Item item, struct _ZnTransfo *t); void (*TranslateItem)(Item item, ZnReal tx, ZnReal ty); |