コード例 #1
0
ファイル: menu.cpp プロジェクト: megaboy/scummvm
void MenuSystem::setCfgVoices(bool value, bool active) {
	if (_cfgVoices != value) {
		Item *item = getItem(kItemIdToggleVoices);
		_cfgVoices = value;
		restoreRect(item->rect.left, item->rect.top, item->rect.width() + 1, item->rect.height() - 2);
		setItemCaption(item, _vm->getSysString(_cfgVoices ? kStrVoicesOn : kStrVoicesOff));
		drawItem(kItemIdToggleVoices, true);
	}
}
コード例 #2
0
ファイル: menu.cpp プロジェクト: megaboy/scummvm
void MenuSystem::setCfgText(bool value, bool active) {
	if (_cfgText != value) {
		Item *item = getItem(kItemIdToggleText);
		_cfgText = value;
		restoreRect(item->rect.left, item->rect.top, item->rect.width() + 1, item->rect.height() - 2);
		setItemCaption(item, _vm->getSysString(_cfgText ? kStrTextOn : kStrTextOff));
		drawItem(kItemIdToggleText, true);
	}
}
コード例 #3
0
ファイル: menu.cpp プロジェクト: megaboy/scummvm
void MenuSystem::addClickTextItem(ItemID id, int x, int y, int w, uint fontNum, const char *caption, byte defaultColor, byte activeColor) {
	Item item;
	item.id = id;
	item.defaultColor = defaultColor;
	item.activeColor = activeColor;
	item.x = x;
	item.y = y;
	item.w = w;
	item.fontNum = fontNum;
	setItemCaption(&item, caption);
	_items.push_back(item);
}
コード例 #4
0
ファイル: menu.cpp プロジェクト: megaboy/scummvm
void MenuSystem::handleKeyDown(const Common::KeyState& kbd) {
	if (_editingDescription) {
		if (kbd.keycode >= Common::KEYCODE_SPACE && kbd.keycode <= Common::KEYCODE_z) {
			_editingDescriptionItem->caption += kbd.ascii;
			restoreRect(_editingDescriptionItem->rect.left, _editingDescriptionItem->rect.top,
				_editingDescriptionItem->rect.width() + 1, _editingDescriptionItem->rect.height() - 2);
			setItemCaption(_editingDescriptionItem, _editingDescriptionItem->caption.c_str());
			drawItem(_editingDescriptionID, true);
		} else if (kbd.keycode == Common::KEYCODE_BACKSPACE) {
			_editingDescriptionItem->caption.deleteLastChar();
			restoreRect(_editingDescriptionItem->rect.left, _editingDescriptionItem->rect.top,
				_editingDescriptionItem->rect.width() + 1, _editingDescriptionItem->rect.height() - 2);
			setItemCaption(_editingDescriptionItem, _editingDescriptionItem->caption.c_str());
			drawItem(_editingDescriptionID, true);
		} else if (kbd.keycode == Common::KEYCODE_RETURN) {
			SavegameItem *savegameItem = getSavegameItemByID(_editingDescriptionID);
			_editingDescription = false;
			_vm->requestSavegame(savegameItem->_slotNum, _editingDescriptionItem->caption);
			_running = false;
		} else if (kbd.keycode == Common::KEYCODE_ESCAPE) {
			_editingDescription = false;
		}
	}
}
コード例 #5
0
ファイル: menu.cpp プロジェクト: AReim1982/scummvm
void MenuSystem::setSavegameCaptions(bool scrollToBottom) {
	int size = _savegames.size();
	if (scrollToBottom && size > 0) {
		while (_savegameListTopIndex + 7 <= size)
			_savegameListTopIndex += 6;
	}
	int index = _savegameListTopIndex;
	for (int i = 1; i <= 7; i++)
		setItemCaption(getItem((ItemID)(kItemIdSavegame1 + i - 1)), index < size ? _savegames[index++]._description.c_str() : "");
	if (_savegameListTopIndex == 0) {
		disableItem(kItemIdSavegameUp);
	} else {
		enableItem(kItemIdSavegameUp);
	}
	if (_savegameListTopIndex + 7 > size) {
		disableItem(kItemIdSavegameDown);
	} else {
		enableItem(kItemIdSavegameDown);
	}
}
コード例 #6
0
ファイル: menu.cpp プロジェクト: megaboy/scummvm
void MenuSystem::setSavegameCaptions() {
	uint index = _savegameListTopIndex;
	for (int i = 1; i <= 7; i++)
		setItemCaption(getItem((ItemID)(kItemIdSavegame1 + i - 1)), index < _savegames.size() ? _savegames[index++]._description.c_str() : "");
}