static int TestGUI(void *obj, AG_Window *win) { char path[AG_PATHNAME_MAX]; AG_TestInstance *ti = obj; AG_Box *box; AG_Textbox *tb; someString[0] = '\0'; AG_GetString(agConfig, "load-path", path, sizeof(path)); AG_LabelNew(win, 0, "load-path: %s", path); AG_GetString(agConfig, "save-path", path, sizeof(path)); AG_LabelNew(win, 0, "save-path: %s", path); /* Tie some globals to the config settings */ AG_BindInt(agConfig, "some-int", &someInt); AG_BindInt(agConfig, "some-bool", &someBool); AG_BindString(agConfig, "some-string", someString, sizeof(someString)); AG_SetInt(agConfig, "some-int", 2345); /* Create some widgets */ AG_NumericalNewInt(win, 0, NULL, "Some int: ", &someInt); AG_CheckboxNewInt(win, 0, "Some bool", &someBool); tb = AG_TextboxNew(win, AG_TEXTBOX_HFILL, "Some string: "); AG_TextboxBindUTF8(tb, someString, sizeof(someString)); box = AG_BoxNewHoriz(win, AG_BOX_EXPAND); { AG_ButtonNewFn(box, 0, "Load configuration", LoadConfig, "%p", ti); AG_ButtonNewFn(box, 0, "Save configuration", SaveConfig, "%p", ti); } return (0); }
static void SoundMenu(AG_NotebookTab *parent, struct gui_sound *cfg) { AG_Radio *radio; AG_Checkbox *check; AG_Numerical *num; AG_Label *lbl; AG_Box *box; AG_Box *box2; int i; for(i = 0; i < 6 ; i++) { if(cfg->nSampleRate == SampleRates[i]) break; } if(i > 6) i = 6; box = AG_BoxNewVert(AGWIDGET(parent), AG_BOX_VFILL); { lbl = AG_LabelNew(AGWIDGET(box), 0, "%s", gettext("Sample Rate")); radio = AG_RadioNewFn(AGWIDGET(box), 0, SampleRateName, OnChangeSampleRate, "%p", cfg); AG_SetInt(radio, "value", i); box = AG_BoxNewVert(AGWIDGET(parent), AG_BOX_HFILL); check = AG_CheckboxNewInt(AGWIDGET(box), AG_CHECKBOX_HFILL, gettext("HQ Rendering"), &(cfg->bFMHQmode)); } box = AG_BoxNewVert(AGWIDGET(parent), AG_BOX_VFILL); { num = AG_NumericalNewInt(AGWIDGET(box), AG_NUMERICAL_HFILL, gettext("Per Second") ,gettext("Sound Buffer"), &(cfg->nSoundBuffer)); AG_NumericalSetRangeInt(num, 30, 2000); AG_NumericalSetIncrement(num, 10.0); check = AG_CheckboxNewInt(AGWIDGET(box), AG_CHECKBOX_HFILL, gettext("Force Stereo"), &(cfg->nStereoOut)); check = AG_CheckboxNewInt(AGWIDGET(box), AG_CHECKBOX_HFILL, gettext("FDD Seek & Motor"), &(cfg->bFddSound)); check = AG_CheckboxNewInt(AGWIDGET(box), AG_CHECKBOX_HFILL, gettext("CMT Monitor"), &(cfg->bTapeMon)); } }
/* * Edit routine. This is a generic operation that returns a generic pointer, * and is not dependent on any particular user interface. * * This program uses Agar-GUI, so we will return an Agar window. */ static void * Edit(void *obj) { Animal *animal = obj; AG_Window *win; AG_Numerical *num; win = AG_WindowNew(0); AG_WindowSetCaption(win, "Animal: %s", AGOBJECT(animal)->name); num = AG_NumericalNewFlt(win, AG_NUMERICAL_HFILL, "sec", "Age: ", &animal->age); num = AG_NumericalNewInt(win, AG_NUMERICAL_HFILL, NULL, "Cell count: ", &animal->cellCount); return (win); }