static void FindWindows(AG_Tlist *tl, AG_Window *win, int depth) { char text[AG_TLIST_LABEL_MAX]; AG_Window *wSub; AG_Widget *wChild; AG_TlistItem *it; if (strncmp(OBJECT(win)->name, "_Popup-", sizeof("_Popup-")) == 0) return; Strlcpy(text, win->caption, sizeof(text)); if (strcmp(OBJECT(win)->name, "generic") == 0) { it = AG_TlistAddS(tl, NULL, win->caption[0] != '\0' ? win->caption : _("Untitled")); } else { it = AG_TlistAdd(tl, NULL, "%s (<%s>)", win->caption[0] != '\0' ? win->caption : _("Untitled"), OBJECT(win)->name); } it->p1 = win; it->depth = depth; it->cat = "window"; if (!TAILQ_EMPTY(&OBJECT(win)->children) || !TAILQ_EMPTY(&win->subwins)) { it->flags |= AG_TLIST_HAS_CHILDREN; } if ((it->flags & AG_TLIST_HAS_CHILDREN) && AG_TlistVisibleChildren(tl, it)) { TAILQ_FOREACH(wSub, &win->subwins, swins) FindWindows(tl, wSub, depth+1); OBJECT_FOREACH_CHILD(wChild, win, ag_widget) FindWidgets(wChild, tl, depth+1); } }
static void FindWidgets(AG_Widget *wid, AG_Tlist *tl, int depth) { char text[AG_TLIST_LABEL_MAX]; AG_TlistItem *it; AG_Widget *widChld; Strlcpy(text, OBJECT(wid)->name, sizeof(text)); if (AG_OfClass(wid, "AG_Widget:AG_Window:*")) { AG_Window *win = (AG_Window *)wid; Strlcat(text, " (\"", sizeof(text)); Strlcat(text, win->caption, sizeof(text)); Strlcat(text, "\")", sizeof(text)); } it = AG_TlistAddPtr(tl, NULL, text, wid); it->depth = depth; it->cat = "widget"; if (!TAILQ_EMPTY(&OBJECT(wid)->children)) { it->flags |= AG_TLIST_HAS_CHILDREN; } if ((it->flags & AG_TLIST_HAS_CHILDREN) && AG_TlistVisibleChildren(tl, it)) { OBJECT_FOREACH_CHILD(widChld, wid, ag_widget) FindWidgets(widChld, tl, depth+1); } }
static void Draw(void *obj) { AG_Widget *chld; OBJECT_FOREACH_CHILD(chld, obj, ag_widget) AG_WidgetDraw(chld); }
static void Draw(void *obj) { AG_Box *box = obj; AG_Widget *chld; if (box->flags & AG_BOX_FRAME) { AG_DrawBox(box, AG_RECT(0, 0, WIDTH(box), HEIGHT(box)), box->depth, WCOLOR(box,AG_COLOR)); } OBJECT_FOREACH_CHILD(chld, box, ag_widget) AG_WidgetDraw(chld); }