void osdInitPlaybackWindow() { AG_Box *box; view.playbackWindow = osdNewWindow("Quick Controls"); box = AG_BoxNewHoriz(view.playbackWindow, AG_BOX_EXPAND); // The labels for Record and Pause are the "longest legnth" versions of the // state of the button, so that no button resizing is necessary. AG_ButtonNewFn(box, 0, "Respawn", osdHandleRespawn, 0); AG_SpacerNewVert(box); view.recordButton = AG_ButtonNewFn(box, 0, "Record", osdHandleRecord, 0); AG_ButtonNewFn(box, 0, "<<", osdHandleFirst, 0); AG_ButtonNewFn(box, AG_BUTTON_REPEAT, "<", osdHandlePrev, 0); view.playButton = AG_ButtonNewFn(box, 0, "Pause", osdHandlePlay, 0); AG_ButtonNewFn(box, AG_BUTTON_REPEAT, ">", osdHandleNext, 0); AG_ButtonNewFn(box, 0, ">>", osdHandleLast, 0); AG_SpacerNewVert(box); AG_ButtonNewFn(box, 0, "Quit", osdHandleQuit, 0); AG_WindowSetPosition(view.playbackWindow, AG_WINDOW_TR, 0); AG_WindowShow(view.playbackWindow); osdUpdate(); }
/* Edition routine. */ static void * Edit(void *obj) { Mammal *mammal = obj; AG_Window *win, *winSuper; AG_HSVPal *pal; AG_ObjectClass *super; win = AG_WindowNew(0); AG_WindowSetCaption(win, "Mammal: %s", AGOBJECT(mammal)->name); /* Invoke the "edit" operation of the superclass. */ super = AG_ObjectSuperclass(mammal); if (super->edit != NULL) { winSuper = super->edit(mammal); AG_WindowSetPosition(winSuper, AG_WINDOW_UPPER_CENTER, 0); AG_WindowShow(winSuper); } /* Allow user to edit paramters specific to this class. */ AG_LabelNew(win, 0, "Hair color:"); pal = AG_HSVPalNew(win, AG_HSVPAL_EXPAND); AG_BindFloat(pal, "hue", &mammal->hairColor.h); AG_BindFloat(pal, "saturation", &mammal->hairColor.s); AG_BindFloat(pal, "value", &mammal->hairColor.v); return (win); }
static int TestGUI(void *obj, AG_Window *win) { AG_FileDlg *fd; AG_DirDlg *dd; AG_FileType *ft[3]; AG_Box *box; AG_Notebook *nb; AG_NotebookTab *ntab; int i; nb = AG_NotebookNew(win, AG_NOTEBOOK_EXPAND); ntab = AG_NotebookAdd(nb, "Load file", AG_BOX_VERT); { /* Create the file loader widget. */ fd = AG_FileDlgNew(ntab, AG_FILEDLG_EXPAND); /* Set some default directory. */ if (strcmp(DATADIR, "NONE") != 0) { AG_FileDlgSetDirectoryMRU(fd, "images-dir", DATADIR); } else { AG_FileDlgSetDirectoryMRU(fd, "images-dir", "."); } /* Set some default filename. */ AG_FileDlgSetFilenameS(fd, "agar.bmp"); /* * Register the loader functions. We can assign a set of user * specified options to specific types as well. */ ft[0] = AG_FileDlgAddType(fd, "Windows Bitmap", "*.bmp", LoadImage, "%p", win); ft[1] = AG_FileDlgAddType(fd, "JPEG image", "*.jpg,*.jpeg", LoadImage, "%p", win); ft[2] = AG_FileDlgAddType(fd, "Portable Network Graphics", "*.png", LoadImage, "%p", win); for (i = 0; i < 3; i++) AG_FileOptionNewBool(ft[i], "Inverted", "invert", 0); /* * As different file types are selected, FileDlg may create * widgets for type specific options. We specify where those * widgets will be created here. */ box = AG_BoxNewVert(ntab, AG_BOX_HFILL|AG_BOX_FRAME); AG_BoxSetPadding(box, 10); AG_FileDlgSetOptionContainer(fd, box); } ntab = AG_NotebookAdd(nb, "Select directory", AG_BOX_VERT); { /* Create the directory selector widget. */ dd = AG_DirDlgNew(ntab, AG_DIRDLG_EXPAND); /* Set some default directory. */ AG_DirDlgSetDirectoryMRU(dd, "images-dir", "./Images"); } AG_WindowSetPosition(win, AG_WINDOW_MIDDLE_LEFT, 0); return (0); }
/* Initialize the performance monitor window. */ void AG_PerfMonInit(void) { AG_Label *lbl; agPerfWindow = AG_WindowNewNamedS(0, "event-fps-counter"); AG_WindowSetCaptionS(agPerfWindow, _("Performance counters")); AG_WindowSetPosition(agPerfWindow, AG_WINDOW_LOWER_CENTER, 0); lbl = AG_LabelNewPolled(agPerfWindow, AG_LABEL_HFILL, "%d evnt, %dms idle", &agEventAvg, &agIdleAvg); AG_LabelSizeHint(lbl, 1, "00 evnt, 000ms idle"); agPerfGraph = AG_FixedPlotterNew(agPerfWindow, AG_FIXED_PLOTTER_LINES, AG_FIXED_PLOTTER_XAXIS| AG_FIXED_PLOTTER_EXPAND); agPerfFPS = AG_FixedPlotterCurve(agPerfGraph, "refresh", 0,160,0, 99); agPerfEvnts = AG_FixedPlotterCurve(agPerfGraph, "event", 0,0,180, 99); agPerfIdle = AG_FixedPlotterCurve(agPerfGraph, "idle", 180,180,180, 99); }
AGOL_Settings::AGOL_Settings() : DirSel(NULL), CloseEventHandler(NULL) { SettingsDialog = AG_WindowNew(AG_WINDOW_MODAL); AG_WindowSetCaptionS(SettingsDialog, "Configure Settings"); AG_WindowSetPosition(SettingsDialog, AG_WINDOW_MC, 0); TopOptionsBox = CreateTopOptionsBox(SettingsDialog); SrvOptionsBox = CreateSrvOptionsBox(TopOptionsBox); GuiOptionsBox = CreateGuiOptionsBox(TopOptionsBox); #ifndef GCONSOLE OdamexPathBox = CreateOdamexPathBox(SettingsDialog); OdamexPathLabel = CreateOdamexPathLabel(OdamexPathBox); #endif WadDirConfigBox = CreateWadDirConfigBox(SettingsDialog); WadDirList = CreateWadDirList(WadDirConfigBox); WadDirButtonBox = CreateWadDirButtonBox(WadDirConfigBox); ExtraCmdParamsBox = CreateExtraCmdParamsBox(SettingsDialog); ExtraCmdParamsEntry = CreateExtraCmdParamsEntry(ExtraCmdParamsBox); MainButtonBox = CreateMainButtonBox(SettingsDialog); AG_WindowShow(SettingsDialog); }
static void EditNumValues(AG_Event *event) { AG_HSVPal *pal = AG_PTR(1); AG_Window *pwin; AG_Window *win; AG_Numerical *num; AG_Variable *b1, *b2; float v; if ((pwin = AG_ParentWindow(pal)) == NULL) return; if ((win = AG_WindowNewNamed(AG_WINDOW_NOMAXIMIZE, "hsvpal-%p-numedit", pal)) == NULL) { return; } AG_WindowSetCaption(win, _("Color values")); AG_WindowSetPosition(win, AG_WINDOW_LOWER_LEFT, 0); AG_WindowSetCloseAction(win, AG_WINDOW_DETACH); { AG_Variable *bAlpha; void *pAlpha; num = AG_NumericalNew(win, 0, NULL, _("Hue: ")); AG_NumericalSizeHint(num, "000"); AG_WidgetCopyBinding(num, "value", pal, "hue"); AG_NumericalSetRange(num, 0.0, 359.0); AG_NumericalSetIncrement(num, 1); AG_NumericalSetPrecision(num, "f", 0); num = AG_NumericalNew(win, 0, NULL, _("Saturation: ")); AG_NumericalSizeHint(num, "00.00"); AG_WidgetCopyBinding(num, "value", pal, "saturation"); AG_NumericalSetRange(num, 0.0, 1.0); AG_NumericalSetIncrement(num, 0.01); AG_NumericalSetPrecision(num, "f", 2); num = AG_NumericalNew(win, 0, NULL, _("Value: ")); AG_NumericalSizeHint(num, "00.00"); AG_WidgetCopyBinding(num, "value", pal, "value"); AG_NumericalSetRange(num, 0.0, 1.0); AG_NumericalSetIncrement(num, 0.01); AG_NumericalSetPrecision(num, "f", 2); num = AG_NumericalNew(win, 0, NULL, _("Alpha: ")); AG_NumericalSizeHint(num, "0.000"); AG_WidgetCopyBinding(num, "value", pal, "alpha"); bAlpha = AG_GetVariable(pal, "alpha", &pAlpha); switch (AG_VARIABLE_TYPE(bAlpha)) { case AG_VARIABLE_FLOAT: case AG_VARIABLE_DOUBLE: AG_NumericalSetRange(num, 0.0, 1.0); AG_NumericalSetIncrement(num, 0.005); AG_NumericalSetPrecision(num, "f", 3); break; case AG_VARIABLE_INT: case AG_VARIABLE_UINT: case AG_VARIABLE_UINT8: AG_NumericalSetRange(num, 0.0, 255.0); AG_NumericalSetIncrement(num, 1.0); AG_NumericalSetPrecision(num, "f", 0); break; default: break; } AG_UnlockVariable(bAlpha); } AG_WindowAttach(pwin, win); AG_WindowShow(win); }
static void TestDesktopAlign(AG_Event *event) { AG_Window *winParent = AG_PTR(1); AG_Window *win; int i; for (i = 0; i < 2; i++) { if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "Auto%d", i); AG_LabelNew(win, 0, "Autopositioned #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_ALIGNMENT_NONE)"); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "TL%d", i); AG_LabelNew(win, 0, "Top Left #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_TL)"); AG_WindowSetPosition(win, AG_WINDOW_TL, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "TC%d", i); AG_LabelNew(win, 0, "Top Center #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_TC)"); AG_WindowSetPosition(win, AG_WINDOW_TC, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "TR%d", i); AG_LabelNew(win, 0, "Top Right #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_TR)"); AG_WindowSetPosition(win, AG_WINDOW_TR, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "MC%d", i); AG_LabelNew(win, 0, "Center #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_MC)"); AG_WindowSetPosition(win, AG_WINDOW_MC, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "BL%d", i); AG_LabelNew(win, 0, "Bottom Left #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_BL)"); AG_WindowSetPosition(win, AG_WINDOW_BL, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "BR%d", i); AG_LabelNew(win, 0, "Bottom Right #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_BR)"); AG_WindowSetPosition(win, AG_WINDOW_BR, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } if ((win = AG_WindowNew(0))) { AG_WindowSetCaption(win, "BC%d", i); AG_LabelNew(win, 0, "Bottom Center #%d", i); AG_LabelNewS(win, 0, "(AG_WINDOW_BC)"); AG_WindowSetPosition(win, AG_WINDOW_BC, 1); AG_WindowAttach(winParent, win); AG_WindowMakeTransient(winParent, win); AG_WindowShow(win); } } AG_LabelNewS(winParent, 0, "OK"); }