void AG_ButtonJustify(AG_Button *bu, enum ag_text_justify jus) { AG_ObjectLock(bu); bu->justify = jus; if (bu->lbl != NULL) { AG_LabelJustify(bu->lbl, jus); } AG_ObjectUnlock(bu); }
/* Set the label text (C string). */ void AG_ButtonTextS(AG_Button *bu, const char *label) { AG_ObjectLock(bu); if (bu->surface != -1) { AG_ButtonSurface(bu, NULL); } if (bu->lbl == NULL) { bu->lbl = AG_LabelNewS(bu, 0, label); AG_LabelJustify(bu->lbl, bu->justify); AG_LabelValign(bu->lbl, bu->valign); } else { AG_LabelTextS(bu->lbl, label); } AG_ObjectUnlock(bu); AG_Redraw(bu); }
AG_Box *AGOL_About::CreateDevBox(void *parent) { AG_Box *dbox; AG_Label *label; dbox = AG_BoxNewVert(parent, AG_BOX_HFILL); AG_LabelNewS(dbox, 0, "Developed by"); dbox = AG_BoxNewHoriz(dbox, AG_BOX_EXPAND); AG_BoxSetPadding(dbox, 5); AG_BoxSetSpacing(dbox, 5); dbox = AG_BoxNewHoriz(dbox, AG_BOX_FRAME | AG_BOX_EXPAND); label = AG_LabelNewS(dbox, AG_LABEL_EXPAND, "Michael Wood (mailto:[email protected])\n" "Russell Rice (mailto:[email protected])"); AG_LabelJustify(label, AG_TEXT_CENTER); return dbox; }
AG_Button * AG_ButtonNewS(void *parent, Uint flags, const char *label) { AG_Button *bu; bu = Malloc(sizeof(AG_Button)); AG_ObjectInit(bu, &agButtonClass); if (label != NULL) { bu->lbl = AG_LabelNewS(bu, 0, label); AG_LabelJustify(bu->lbl, bu->justify); AG_LabelValign(bu->lbl, bu->valign); } bu->flags |= flags; if (flags & AG_BUTTON_HFILL) { AG_ExpandHoriz(bu); } if (flags & AG_BUTTON_VFILL) { AG_ExpandVert(bu); } AG_ObjectAttach(parent, bu); return (bu); }
static void CreateWindow(void) { AG_Window *win; AG_Label *lbl; AG_Console *cons; win = AG_WindowNew(0); AG_WindowSetCaption(win, "Agar keyboard events demo"); lbl = AG_LabelNew(win, AG_LABEL_HFILL, "Agar keyboard events demo"); AG_LabelJustify(lbl, AG_TEXT_CENTER); AG_SeparatorNewHoriz(win); cons = AG_ConsoleNew(win, AG_CONSOLE_EXPAND); AG_ConsoleMsg(cons, "Press any key..."); /* * Attach our event handler function to both keydown and keyup * events of the Window object. Note that we could have used * any other object derived from the Widget class. */ AG_SetEvent(win, "key-down", MyKeyboardHandler, "%p", cons); AG_SetEvent(win, "key-up", MyKeyboardHandler, "%p", cons); /* * Enable reception of keydown/keyup events by the window, regardless * of whether it is currently focused or not. */ AGWIDGET(win)->flags |= AG_WIDGET_UNFOCUSED_KEYUP; AGWIDGET(win)->flags |= AG_WIDGET_UNFOCUSED_KEYDOWN; AG_ButtonNewFn(win, AG_BUTTON_HFILL, "Quit", Quit, NULL); AG_WindowShow(win); AG_WindowSetGeometryAlignedPct(win, AG_WINDOW_MC, 30, 30); }
AG_Box *AGOL_About::CreateTopBox(void *parent) { AG_Box *tbox; AG_Box *box; AG_Label *label; AG_DataSource *pngdata; AG_AgarVersion agv; tbox = AG_BoxNewHoriz(parent, 0); box = AG_BoxNewHoriz(tbox, 0); if((pngdata = AG_OpenConstCore(icon_odalaunch_96, sizeof(icon_odalaunch_96))) != NULL) { AG_PixmapFromSurface(box, AG_PIXMAP_EXPAND, AG_ReadSurfaceFromPNG(pngdata)); AG_CloseDataSource(pngdata); } box = AG_BoxNewVert(tbox, AG_BOX_HFILL); label = AG_LabelNewS(box, AG_LABEL_HFILL, "The Odamex Launcher"); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNewS(box, AG_LABEL_HFILL, "Copyright (C) 2010-2012 by The Odamex Team"); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNew(box, AG_LABEL_HFILL, "Version %d.%d.%d - Protocol Version %d", VERSIONMAJOR(VERSION), VERSIONMINOR(VERSION), VERSIONPATCH(VERSION), PROTOCOL_VERSION); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNewS(box, AG_LABEL_HFILL, "http://www.odamex.net"); AG_LabelJustify(label, AG_TEXT_CENTER); AG_GetVersion(&agv); label = AG_LabelNew(parent, AG_LABEL_HFILL, "Built with Agar, Version %d.%d.%d", agv.major, agv.minor, agv.patch); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNew(parent, AG_LABEL_HFILL, "(%s)", agv.release); AG_LabelJustify(label, AG_TEXT_CENTER); return tbox; }
AG_Box *AGOL_About::CreateTopBox(void *parent) { AG_Box *tbox; AG_Box *box; AG_Label *label; SDL_Surface *sf; AG_AgarVersion agv; tbox = AG_BoxNewHoriz(parent, 0); box = AG_BoxNewHoriz(tbox, 0); sf = IMG_Load_RW(SDL_RWFromConstMem(icon_odalaunch_96, sizeof(icon_odalaunch_96)), 1); if(sf) AG_PixmapFromSurface(box, AG_PIXMAP_EXPAND, AG_SurfaceFromSDL(sf)); box = AG_BoxNewVert(tbox, 0); label = AG_LabelNewS(box, AG_LABEL_HFILL, "The Odamex Launcher"); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNewS(box, AG_LABEL_HFILL, "Copyright (C) 2010 by The Odamex Team"); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNew(box, AG_LABEL_HFILL, "Version %d.%d.%d - Protocol Version %d", VERSIONMAJOR(VERSION), VERSIONMINOR(VERSION), VERSIONPATCH(VERSION), PROTOCOL_VERSION); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNewS(box, AG_LABEL_HFILL, "http://www.odamex.net"); AG_LabelJustify(label, AG_TEXT_CENTER); AG_GetVersion(&agv); label = AG_LabelNew(parent, AG_LABEL_HFILL, "Built with Agar, Version %d.%d.%d", agv.major, agv.minor, agv.patch); AG_LabelJustify(label, AG_TEXT_CENTER); label = AG_LabelNew(parent, AG_LABEL_HFILL, "(%s)", agv.release); AG_LabelJustify(label, AG_TEXT_CENTER); return tbox; }