static void Init(void *obj) { AG_Titlebar *tbar = obj; AG_Box *box = obj; WIDGET(tbar)->flags |= AG_WIDGET_HFILL| AG_WIDGET_UNFOCUSED_BUTTONUP; AG_BoxSetType(box, AG_BOX_HORIZ); AG_BoxSetPadding(&tbar->hb, 3); AG_BoxSetSpacing(&tbar->hb, 1); tbar->flags = 0; tbar->pressed = 0; tbar->win = NULL; tbar->maximize_btn = NULL; tbar->minimize_btn = NULL; tbar->close_btn = NULL; tbar->label = AG_LabelNewS(tbar, AG_LABEL_HFILL|AG_LABEL_NOMINSIZE, _("Untitled")); AG_LabelSizeHint(tbar->label, 1, "X"); AG_LabelSetPadding(tbar->label, 5,5,2,2); AG_SetEvent(tbar, "mouse-button-down", MouseButtonDown, NULL); AG_SetEvent(tbar, "mouse-button-up", MouseButtonUp, NULL); }
AG_Textbox * AG_TextboxNewS(void *parent, Uint flags, const char *label) { AG_Textbox *tb; tb = Malloc(sizeof(AG_Textbox)); AG_ObjectInit(tb, &agTextboxClass); if (flags & AG_TEXTBOX_HFILL) AG_ExpandHoriz(tb); if (flags & AG_TEXTBOX_VFILL) AG_ExpandVert(tb); if (flags & AG_TEXTBOX_READONLY) { AG_WidgetDisable(tb); AG_WidgetDisable(tb->ed); } if (flags & AG_TEXTBOX_PASSWORD) tb->ed->flags |= AG_EDITABLE_PASSWORD; if (flags & AG_TEXTBOX_ABANDON_FOCUS) tb->ed->flags |= AG_EDITABLE_ABANDON_FOCUS; if (flags & AG_TEXTBOX_INT_ONLY) tb->ed->flags |= AG_EDITABLE_INT_ONLY; if (flags & AG_TEXTBOX_FLT_ONLY) tb->ed->flags |= AG_EDITABLE_FLT_ONLY; if (flags & AG_TEXTBOX_CATCH_TAB) { WIDGET(tb)->flags |= AG_WIDGET_CATCH_TAB; WIDGET(tb->ed)->flags |= AG_WIDGET_CATCH_TAB; } if (flags & AG_TEXTBOX_NOEMACS) tb->ed->flags |= AG_EDITABLE_NOEMACS; if (flags & AG_TEXTBOX_NOWORDSEEK) tb->ed->flags |= AG_EDITABLE_NOWORDSEEK; if (flags & AG_TEXTBOX_NOLATIN1) tb->ed->flags |= AG_EDITABLE_NOLATIN1; if (flags & AG_TEXTBOX_MULTILINE) { tb->ed->flags |= AG_EDITABLE_MULTILINE; tb->vBar = AG_ScrollbarNew(tb, AG_SCROLLBAR_VERT, AG_SCROLLBAR_AUTOHIDE); AG_BindInt(tb->vBar, "value", &tb->ed->y); AG_BindInt(tb->vBar, "max", &tb->ed->yMax); AG_BindInt(tb->vBar, "visible", &tb->ed->yVis); AG_SetEvent(tb->vBar, "scrollbar-drag-begin", BeginScrollbarDrag, "%p", tb); AG_SetEvent(tb->vBar, "scrollbar-drag-end", EndScrollbarDrag, "%p", tb); } AG_TextboxSetStatic(tb, (flags & AG_TEXTBOX_STATIC)); AG_TextboxSetWordWrap(tb, (flags & AG_TEXTBOX_WORDWRAP)); tb->flags |= flags; if (label != NULL) { tb->lbl = AG_LabelNewS(tb, 0, label); AG_LabelSetPadding(tb->lbl, -1, 10, -1, -1); } AG_ObjectAttach(parent, tb); return (tb); }
/* Set the textbox label (C string). */ void AG_TextboxSetLabelS(AG_Textbox *tb, const char *s) { AG_ObjectLock(tb); if (tb->lbl != NULL) { AG_LabelTextS(tb->lbl, s); } else { tb->lbl = AG_LabelNewS(tb, 0, s); AG_LabelSetPadding(tb->lbl, -1, 10, -1, -1); } AG_ObjectUnlock(tb); }
static void Init(void *obj) { AG_UCombo *com = obj; WIDGET(com)->flags |= AG_WIDGET_UNFOCUSED_BUTTONUP| AG_WIDGET_TABLE_EMBEDDABLE; com->flags = 0; com->panel = NULL; com->wSaved = 0; com->hSaved = 0; com->wPreList = -1; com->hPreList = -1; com->button = AG_ButtonNewS(com, AG_BUTTON_STICKY, _("...")); AG_ButtonSetPadding(com->button, 0,0,0,0); AG_LabelSetPadding(com->button->lbl, 0,0,0,0); AG_WidgetSetFocusable(com->button, 0); com->list = Malloc(sizeof(AG_Tlist)); AG_ObjectInit(com->list, &agTlistClass); AG_Expand(com->list); AG_WidgetForwardFocus(com, com->button); AG_SetEvent(com, "detached", OnDetach, NULL); AG_SetEvent(com->button, "button-pushed", Expand, "%p", com); AG_SetEvent(com->list, "tlist-changed", SelectedItem, "%p", com); #ifdef AG_DEBUG AG_BindUint(com, "flags", &com->flags); AG_BindPointer(com, "list", (void *)&com->list); AG_BindPointer(com, "panel", (void *)&com->panel); AG_BindInt(com, "wSaved", &com->wSaved); AG_BindInt(com, "hSaved", &com->hSaved); AG_BindInt(com, "wPreList", &com->wPreList); AG_BindInt(com, "hPreList", &com->hPreList); #endif }