Beispiel #1
0
void MenuSystem::displayMenu(){
    if (_curMenu == 0){
        if(_curSubMenu < _numMenuTitles){
            printTopMenu(getMenuTitle(_curMenu), _screenWidth);
            printSubMenu(getMenuTitle(_curSubMenu), _screenWidth - 4);
        }
    }else{
        printTopMenu(getMenuTitle(_curMenu), _screenWidth);
        if(getMenuOption(_curSubMenu, _curOption)){
            printSubMenu(getActionTitle(getMenuOption(_curSubMenu,_curOption) - 1), _screenWidth - 4);
        }
    }
}
Beispiel #2
0
void UserMenuTree::insertIntoSubmenu(QTreeWidgetItem *current, UserMenuData::MenuType type)
{
	QString menulabel;
	if ( type == UserMenuData::Text || type == UserMenuData::Submenu ) {
		menulabel = getMenuTitle(i18n("Please enter a label for this entry:"));
		if ( menulabel.isEmpty() ) {
			return;
		}
	}

	UserMenuItem *item = new UserMenuItem(type,menulabel);
	insertItem(current,0,item);
	setCurrentItem(item);
}
Beispiel #3
0
// insert a submenu item
bool UserMenuTree::insertSubmenu(QTreeWidgetItem *current, bool below)
{
	QString menulabel = getMenuTitle(i18n("Please enter a label for this submenu:"));
	if ( menulabel.isEmpty() )  {
		return false;
	}

	if ( below ) {
		insertMenuItemBelow(current,UserMenuData::Submenu,menulabel);
	}
	else {
		insertMenuItemAbove(current,UserMenuData::Submenu,menulabel);
	}
	return true;
}
Beispiel #4
0
void GUI::initMenu(Menu &menu) {
	_menuButtonList = 0;

	_screen->hideMouse();

	int textX;
	int textY;

	int menu_x2 = menu.width  + menu.x - 1;
	int menu_y2 = menu.height + menu.y - 1;

	_screen->fillRect(menu.x + 2, menu.y + 2, menu_x2 - 2, menu_y2 - 2, menu.bkgdColor);
	_screen->drawShadedBox(menu.x, menu.y, menu_x2, menu_y2, menu.color1, menu.color2);

	if (menu.titleX != -1)
		textX = menu.titleX;
	else
		textX = getMenuCenterStringX(getMenuTitle(menu), menu.x, menu_x2);

	textY = menu.y + menu.titleY;

	if (_vm->game() == GI_LOL) {
		printMenuText(getMenuTitle(menu), textX, textY, menu.textColor, 0, 9);
	} else {
		if (_vm->gameFlags().platform != Common::kPlatformAmiga)
			printMenuText(getMenuTitle(menu), textX - 1, textY + 1, defaultColor1(), defaultColor2(), 0);
		printMenuText(getMenuTitle(menu), textX, textY, menu.textColor, 0, 0);
	}

	int x1, y1, x2, y2;
	for (int i = 0; i < menu.numberOfItems; ++i) {
		if (!menu.item[i].enabled)
			continue;

		x1 = menu.x + menu.item[i].x;
		y1 = menu.y + menu.item[i].y;

		x2 = x1 + menu.item[i].width - 1;
		y2 = y1 + menu.item[i].height - 1;

		if (i < 7) {
			Button *menuButtonData = getButtonListData() + i;
			menuButtonData->nextButton = 0;
			menuButtonData->x = x1;
			menuButtonData->y = y1;
			menuButtonData->width  = menu.item[i].width - 1;
			menuButtonData->height = menu.item[i].height - 1;
			menuButtonData->buttonCallback = menu.item[i].callback;
			menuButtonData->keyCode = menu.item[i].keyCode;
			menuButtonData->keyCode2 = 0;
			menuButtonData->arg = menu.item[i].itemId;

			_menuButtonList = addButtonToList(_menuButtonList, menuButtonData);
		}

		_screen->fillRect(x1, y1, x2, y2, menu.item[i].bkgdColor);
		_screen->drawShadedBox(x1, y1, x2, y2, menu.item[i].color1, menu.item[i].color2);

		if (getMenuItemTitle(menu.item[i])) {
			if (menu.item[i].titleX != -1)
				textX = x1 + menu.item[i].titleX + 3;
			else
				textX = getMenuCenterStringX(getMenuItemTitle(menu.item[i]), x1, x2);

			textY = y1 + 2;
			if (_vm->game() == GI_LOL) {
				textY++;
				if (i == menu.highlightedItem)
					printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].highlightColor, 0, 8);
				else
					printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].textColor, 0, 8);
			} else {
				Screen::FontId of = _screen->_currentFont;
				if (menu.item[i].saveSlot > 0)
					_screen->setFont(Screen::FID_8_FNT);

				if (_vm->gameFlags().platform != Common::kPlatformAmiga)
					printMenuText(getMenuItemTitle(menu.item[i]), textX - 1, textY + 1, defaultColor1(), 0, 0);

				if (i == menu.highlightedItem)
					printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].highlightColor, 0, 0);
				else
					printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].textColor, 0, 0);

				_screen->setFont(of);
			}
		}
	}

	for (int i = 0; i < menu.numberOfItems; ++i) {
		if (getMenuItemLabel(menu.item[i])) {
			if (_vm->game() == GI_LOL) {
				menu.item[i].labelX = menu.item[i].x - 1;
				menu.item[i].labelY = menu.item[i].y + 3;
				printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX, menu.y + menu.item[i].labelY, menu.item[i].textColor, 0, 10);
			} else {
				if (_vm->gameFlags().platform != Common::kPlatformAmiga)
					printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX - 1, menu.y + menu.item[i].labelY + 1, defaultColor1(), 0, 0);
				printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX, menu.y + menu.item[i].labelY, menu.item[i].textColor, 0, 0);
			}
		}
	}

	if (menu.scrollUpButtonX != -1) {
		Button *scrollUpButton = getScrollUpButton();
		scrollUpButton->x = menu.scrollUpButtonX + menu.x;
		scrollUpButton->y = menu.scrollUpButtonY + menu.y;
		scrollUpButton->buttonCallback = getScrollUpButtonHandler();
		scrollUpButton->nextButton = 0;
		scrollUpButton->mouseWheel = -1;

		_menuButtonList = addButtonToList(_menuButtonList, scrollUpButton);
		updateMenuButton(scrollUpButton);

		Button *scrollDownButton = getScrollDownButton();
		scrollDownButton->x = menu.scrollDownButtonX + menu.x;
		scrollDownButton->y = menu.scrollDownButtonY + menu.y;
		scrollDownButton->buttonCallback = getScrollDownButtonHandler();
		scrollDownButton->nextButton = 0;
		scrollDownButton->mouseWheel = 1;

		_menuButtonList = addButtonToList(_menuButtonList, scrollDownButton);
		updateMenuButton(scrollDownButton);
	}

	_screen->showMouse();
	_screen->updateScreen();
}