コード例 #1
0
ファイル: debugger.c プロジェクト: adsr/agar
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);
	}
}
コード例 #2
0
ファイル: uniconv.c プロジェクト: adsr/agar
AG_Window *
DEV_UnicodeBrowser(void)
{
	AG_Window *win;
	AG_Combo *comRange;
	AG_Treetbl *tt;
	int i, w, wMax = 0;

	if ((win = AG_WindowNewNamedS(0, "DEV_UnicodeBrowser")) == NULL) {
		return (NULL);
	}
	AG_WindowSetCaptionS(win, _("Unicode Browser"));
	AG_WindowSetCloseAction(win, AG_WINDOW_DETACH);

	comRange = AG_ComboNew(win, AG_COMBO_HFILL, _("Range: "));
	for (i = 0; i < unicodeRangeCount; i++) {
		AG_TextSize(unicodeRanges[i].name, &w, NULL);
		if (w > wMax) { wMax = w; }
		AG_TlistAddPtr(comRange->list, NULL, unicodeRanges[i].name,
		    (void *)&unicodeRanges[i]);
	}
	AG_ComboSizeHintPixels(comRange, wMax, 10);
	
	tt = AG_TreetblNew(win, AG_TREETBL_EXPAND, NULL, NULL);
	AG_TreetblSizeHint(tt, 200, 6);
	AG_TreetblAddCol(tt, 0, "<XXXXXXX>", "Char");
	AG_TreetblAddCol(tt, 1, "<XXXXXXX>", "Hex");

	AG_SetEvent(comRange, "combo-selected", SelectUnicodeRange, "%p", tt);

	AG_WidgetFocus(comRange);
	return (win);
}
コード例 #3
0
static void OnConfigMenuScreen(struct gui_disp *cfg, AG_NotebookTab *parent)
{
	AG_Radio *radio;
	AG_Checkbox *check;
	AG_Numerical *fps;
	AG_Box *box;
	AG_Box *box2;
        AG_Combo *combo;
        AG_TlistItem *TlistItem[RENDERING_END];
	int i;
	int limit;
	
	box = AG_BoxNewHoriz(AGWIDGET(parent), AG_BOX_VFILL);
	{
		radio = AG_RadioNewFn(AGWIDGET(box), 0, ScreenSizeName, OnChangeScreenReso, "%p", cfg);
		limit = sizeof(ScreenSizeHeight) / sizeof(WORD);
		for(i = 0; i <= limit; i++){
		  if((ScreenSizeWidth[i] == cfg->uWidth) && (ScreenSizeHeight[i] == cfg->uHeight)) break;
		}
		if(i >= limit) i = 2;
		AG_SetInt(radio, "value", i);
		box = AG_BoxNewVert(AGWIDGET(parent), AG_BOX_HFILL);
		fps = AG_NumericalNewS(AGWIDGET(box), AG_NUMERICAL_HFILL, NULL ,gettext("Display rate"));
		AG_BindUint16(fps, "value", &(cfg->nDrawFPS));
		{
		  AG_SetInt(fps, "min", 2);
		  AG_SetInt(fps, "max", 75);
		  AG_SetInt(fps, "inc", 1);
		}

		fps = AG_NumericalNewS(AGWIDGET(box), AG_NUMERICAL_HFILL, NULL ,gettext("Emulation rate"));
		AG_BindUint16(fps, "value", &(cfg->nEmuFPS));
		{
		  AG_SetInt(fps, "min", 2);
		  AG_SetInt(fps, "max", 75);
		  AG_SetInt(fps, "inc", 1);
		}

	   
		box2 = AG_BoxNewHoriz(AGWIDGET(box), AG_BOX_HFILL);
		combo = AG_ComboNewS(AGWIDGET(box2), AG_COMBO_SCROLLTOSEL | AG_COMBO_HFILL, gettext("Rendering Method"));
	        AG_ComboSizeHint(combo, "XXXXXXXXXXXXXX", RENDERING_END); 
	        TlistItem[0] = AG_TlistAddPtrHead(combo->list, NULL, gettext("Full Draw"),   (void *)&RenderMethodsList[0]);
	        TlistItem[1] = AG_TlistAddPtr(combo->list,     NULL, gettext("Diff Block"),  (void *)&RenderMethodsList[1]);
	        TlistItem[2] = AG_TlistAddPtr(combo->list,     NULL, gettext("Diff Raster"), (void *)&RenderMethodsList[2]);
	        for(i = RENDERING_FULL; i < RENDERING_END; i++) {
		   if(i == cfg->nRenderMethod) {
			AG_ComboSelect(combo, TlistItem[i]);
		   }
		}
		AG_SetEvent(combo, "combo-selected", RenderMethodSelected, "%p", cfg);
	   
		box2 = AG_BoxNewHoriz(AGWIDGET(box), AG_BOX_HFILL);
		check = AG_CheckboxNewInt(AGWIDGET(box2), AG_CHECKBOX_HFILL, gettext("Full Scan (15KHz)"), &(cfg->bFullScan));
		box2 = AG_BoxNewHoriz(AGWIDGET(box), AG_BOX_HFILL);
		check = AG_CheckboxNewInt(AGWIDGET(box2), AG_CHECKBOX_HFILL, gettext("SMOOSING"), &(cfg->bSmoosing));
		box2 = AG_BoxNewHoriz(AGWIDGET(box), AG_BOX_HFILL);
		check = AG_CheckboxNewInt(AGWIDGET(box2), AG_CHECKBOX_HFILL, gettext("Use OpenCL(Need REBOOT)"), &(cfg->bUseOpenCL));
		box2 = AG_BoxNewHoriz(AGWIDGET(box), AG_BOX_HFILL);
		check = AG_CheckboxNewInt(AGWIDGET(box2), AG_CHECKBOX_HFILL, gettext("Use SIMD instructions(Need REBOOT)"), &(cfg->bUseSIMD));
	}
}
コード例 #4
0
ファイル: optionsstate.cpp プロジェクト: suprafun/smalltowns
    void OptionsState::enter()
    {
        int screenWidth = graphicsEngine->getScreenWidth();
		int screenHeight = graphicsEngine->getScreenHeight();
		int halfScreenWidth = screenWidth / 2;
		int halfScreenHeight = screenHeight / 2;

        AG_Window *win = AG_WindowNew(AG_WINDOW_PLAIN|AG_WINDOW_DENYFOCUS);
		AG_WindowShow(win);
		AG_WindowMaximize(win);

		interfaceManager->addWindow(win);

		// create options window
		AG_Window *optionWindow = AG_WindowNewNamed(AG_WINDOW_NOBUTTONS, "OptionWindow");
		AG_WindowSetCaption(optionWindow, "Options");
		AG_WindowSetGeometry(optionWindow, halfScreenWidth - 85, halfScreenHeight - 85, 170, 170);

		// alignment
		AG_VBox *box = AG_VBoxNew(optionWindow, 0);

		// create list of resolutions
		Point pt;
		pt.x = 1024;
		pt.y = 768;
		mRes.push_back(pt);
		pt.x = 800;
		pt.y = 600;
		mRes.push_back(pt);
		pt.x = 1280;
		pt.y = 1024;
		mRes.push_back(pt);
		pt.x = 1440;
		pt.y = 900;
		mRes.push_back(pt);

		// add selection box for resolution
        selectionBox = AG_UComboNew(box, 0);
        AG_ExpandHoriz(selectionBox);
        AG_UComboSizeHint(selectionBox, "Resolution", mRes.size());

        // loop through all the resolutions
        for (unsigned int i = 0; i < mRes.size(); ++i)
        {
            std::stringstream str;
            str << mRes[i].x << " x " << mRes[i].y;
            AG_TlistAddPtr(selectionBox->list, NULL, str.str().c_str(), &mRes[i]);
        }

        AG_TlistSelect(selectionBox->list, AG_TlistFirstItem(selectionBox->list));
        AG_SetEvent(selectionBox, "ucombo-selected", selected_resolution, NULL);

        std::stringstream fs;
        fs << "Fullscreen: " << mFullscreen;
        logger->logDebug(fs.str());

		// add checkbox for fullscreen
        AG_CheckboxNewInt(box, 0, "Fullscreen", &mFullscreen);

        // add checkbox for hardware acceleration
        AG_CheckboxNewInt(box, 0, "OpenGL", &mOpenGL);

        // add radio for languages
        const char *languages[] = { "English", "Portugues", "Espa\xc3\xb1ol", NULL};
        AG_RadioNewInt(box, 0, languages, &mLangs);

        AG_HBox *hbox = AG_HBoxNew(box, 0);
		// add button to apply
		AG_ButtonNewFn(hbox, 0, "Apply", apply_options, "%p%p%p", &mOpenGL, &mFullscreen, &mLangs);

		// add button to cancel
        AG_ButtonNewFn(hbox, 0, "Cancel", cancel_options, 0);

        AG_WindowShow(optionWindow);
        interfaceManager->addWindow(optionWindow);
    }
コード例 #5
0
ファイル: options.cpp プロジェクト: jirkadanek/bombic2
MenuOptions::MenuOptions():
			speed_(CONFIG->speed()),
			visible_presumption_(CONFIG->visible_presumption()),
			split_screen_(CONFIG->split_screen()),
			fullscreen_(CONFIG->fullscreen()),
			sound_(CONFIG->sound()){
	AG_Box * item;
	AG_UCombo *combo;
	AG_TlistItem * combo_item;
	AG_Checkbox * checkbox;
	// nadpis
	createHeading(LANG_MENU(LANG_OPTIONS, LANG_HEADING));

	// jazyk
	item = createItem(LANG_MENU(LANG_OPTIONS, LANG_LANGUAGE));
	combo = AG_UComboNew(item, AG_UCOMBO_HFILL);
	AG_SetEvent(combo, "ucombo-selected", handlerLanguage,
			"%p", combo->button);
	for(Uint16 i=0 ; i<CONFIG->languages_.size() ; ++i){
		combo_item = AG_TlistAddPtr(combo->list, 0,
			CONFIG->languages_[i].show.c_str(), &CONFIG->languages_[i]);
		if(CONFIG->language_==CONFIG->languages_[i].name)
			AG_ButtonText(combo->button, "%s", combo_item->text);
	}

	// klavesy
	item = createItem(LANG_MENU(LANG_OPTIONS, LANG_CONTROLS));
	AG_SetEvent(item, "window-mousebuttondown",
			MenuOptionsControls::create, 0);

	// rychlost hry
	item = createItemHoriz(LANG_MENU(LANG_OPTIONS, LANG_SPEED));
	AG_AddEvent(items_.back(), "window-keyup", handlerIntItem,
		"%p,%i,%i", &speed_,
		CONFIG_SPEED_MIN, CONFIG_SPEED_MAX);

	AG_NumericalNewIntR(item, 0, 0, 0, &speed_,
		CONFIG_SPEED_MIN, CONFIG_SPEED_MAX);

	// viditelna presumpce
	createCheckboxItem(LANG_MENU(LANG_OPTIONS, LANG_PRESUMPTIONS),
		&visible_presumption_);
	// rozedelni obrazovek
	createCheckboxItem(LANG_MENU(LANG_OPTIONS, LANG_SPLIT_SCREEN),
		&split_screen_);

	// fullscreen
	checkbox = createCheckboxItem(LANG_MENU(LANG_OPTIONS, LANG_FULLSCREEN),
		&fullscreen_);
	AG_AddEvent(items_.back(), "window-mousebuttondown", handlerToggleFullscreen, 0);
	AG_AddEvent(checkbox, "window-mousebuttondown", handlerToggleFullscreen, 0);

	// zvuk - neni implementovano
// 	createCheckboxItem(LANG_MENU(LANG_OPTIONS, LANG_SOUND),
// 		&sound_);

	// back
	item = createItem(LANG_MENU(LANG_OPTIONS, LANG_SAVE));
	AG_SetEvent(item, "window-mousebuttondown", handlerBack, 0);

	AG_SpacerNewHoriz(win);
}