IntroState::IntroState(StateManager *manager) : GameState(manager)
{
    quit = false;

    def_color = sf::Color::White;
    sel_color = sf::Color::Yellow;
    down_color = sf::Color(255,102,0);

    //btn.setPos(constants::SCREEN_WIDTH/2, constants::SCREEN_HEIGHT/2);
    buttons.push_back(new MenuButton("Play game", menu_enums::Play));
    buttons.push_back(new MenuButton("Options", menu_enums::Options));
    buttons.push_back(new MenuButton("Exit game", menu_enums::Exit));


    // set positions
    int vspacing = 300;
    int vdiv = (constants::SCREEN_HEIGHT - vspacing)/buttons.size();
    for(unsigned int i=0; i<buttons.size(); i++)
    {
        //buttons[i]->setPos(constants::SCREEN_WIDTH/2, vdiv*i + vdiv/2 + vspacing/2);
        buttons[i]->setPos(constants::SCREEN_WIDTH/2, (vdiv*i + vdiv/2 + vspacing/2));

    }

    selected = 0;
    selectButton(selected);

}
int toggleButtons(Button prev, Button curr, char *prevSkin, char *currSkin){
	int isSuccess = deselectButton(prevSkin, prev);
	if (isSuccess == 1){
		selectButton(currSkin, curr);
	}

	return isSuccess;
}
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent), m_blobWidget(new BlobWidget(this))
{
    QGridLayout* layout = new QGridLayout(this);
    for (int i = 0; i < 16; ++i)  {
        QPushButton* but = new QPushButton(QString::number(i),  this);
        layout->addWidget(but,  i/4, i%4);
        connect(but, SIGNAL(clicked()), this, SLOT(selectButton()));
    }
    m_blobWidget->hide();
}
void AppearanceDialog::populateCmdBox() {
    QHBoxLayout* hLayout = new QHBoxLayout();
    hLayout->addWidget(label("Background:"));

    cmdBgSelect = selectButton(40, 20, "Click here to pick a new color.");
    connect(cmdBgSelect, SIGNAL(clicked()), this, SLOT(selectCmdBg()));
    hLayout->addWidget(cmdBgSelect);

    ui->cmdVLayout->addLayout(hLayout);

    hLayout = new QHBoxLayout();
    hLayout->addWidget(label("Round time:"));

    cmdRtColorSelect = selectButton(40, 20, "Click here to pick a new color.");
    connect(cmdRtColorSelect, SIGNAL(clicked()), this, SLOT(selectCmdRtColor()));
    hLayout->addWidget(cmdRtColorSelect);

    ui->cmdVLayout->addLayout(hLayout);

    hLayout = new QHBoxLayout();
    hLayout->addWidget(label("Cast time:"));

    cmdCtColorSelect = selectButton(40, 22, "Click here to pick a new color.");
    connect(cmdCtColorSelect, SIGNAL(clicked()), this, SLOT(selectCmdCtColor()));
    hLayout->addWidget(cmdCtColorSelect);

    ui->cmdVLayout->addLayout(hLayout);

    hLayout = new QHBoxLayout();
    hLayout->addWidget(label("Text:"));

    cmdFontSelect = selectButton(200, 22, "Click here to pick a new font.");
    connect(cmdFontSelect, SIGNAL(clicked()), this, SLOT(selectCmdFont()));
    hLayout->addWidget(cmdFontSelect);

    cmdFontColorSelect = selectButton(40, 20, "Click here to pick a new color.");
    connect(cmdFontColorSelect, SIGNAL(clicked()), this, SLOT(selectCmdFontColor()));
    hLayout->addWidget(cmdFontColorSelect);

    ui->cmdVLayout->addLayout(hLayout);
}
Exemple #5
0
void FiFider::holdSelectButton(void) {
    if(_feeder_state != FST_WAITING) return;
    if(_display_state == DST_ETA){
        _eta = _interval;
        _ui_timestamp = millis();
        if(HW_SAVE_ON_RES)
            FiFider::getInstance().saveState();
    }else{
        selectButton();
    }

}
void IntroState::moveDown()
{
    if(selected == buttons.size()-1)
    {
        selected = 0;
    }
    else
    {
        selected++;
    }
    selectButton(selected);
}
void IntroState::moveUp()
{
    if(selected == 0)
    {
        selected = buttons.size()-1;
    }
    else
    {
        selected--;
    }
    selectButton(selected);
}
Exemple #8
0
void Slide::NextSlide(short index)
{
    switch(currentIndex_)
    {
    case 0:back = new QPropertyAnimation(Slide0, "geometry"); break;

    case 1:back = new QPropertyAnimation(Slide1, "geometry"); break;

    case 2:back = new QPropertyAnimation(Slide2, "geometry"); break;

    case 3:back = new QPropertyAnimation(Slide3, "geometry"); break;

    case 4:back = new QPropertyAnimation(Slide4, "geometry"); break;
    }

    switch(index)
    {
    case 0:next = new QPropertyAnimation(Slide0, "geometry"); break;

    case 1:next = new QPropertyAnimation(Slide1, "geometry"); break;

    case 2:next = new QPropertyAnimation(Slide2, "geometry"); break;

    case 3:next = new QPropertyAnimation(Slide3, "geometry"); break;

    case 4:next = new QPropertyAnimation(Slide4, "geometry"); break;
    }

    back->setStartValue(QRect(0,0,this->width(),this->height()));

    back->setEndValue(QRect(this->width() * -1,0,this->width(),this->height()));

    back->setEasingCurve(QEasingCurve::InSine);

    back->setDuration(500);

    next->setStartValue(QRect(this->width() * 2,0,this->width(),this->height()));

    next->setEndValue(QRect(0,0,this->width(),this->height()));

    next->setEasingCurve(QEasingCurve::OutSine);

    next->setDuration(500);

    currentIndex_ = index;
    selectButton(currentIndex_);

    back->start();

    next->start();

}
Page createLoadFromSlotPage(){

	//Add Background
	SDL_Surface *bkg = loadImage(LOAD_FROM_SLOT_WINDOW);
	addImageToSurface(bkg, NULL, containerPage.page, NULL);
	currentPage.bkg = bkg;

	// create game mode section
	int y = 60;
	int x = 35;
	Button *btnLst = (Button*)myMalloc(sizeof(Button) * (NUM_OF_SLOTS + 2));
	if (btnLst == NULL){
		currentPage.isError = 1;
		return currentPage;
	}

	char path[200];
	char selected_path[200];
	char *btn = "_btn.bmp";
	for (int i = 1; i <= NUM_OF_SLOTS; i++){
		sprintf(path, "%s%d%s", SLOT_BTN_URL, i, btn);
		sprintf(selected_path, "%s%d%s", SLOT_SELECTED_BTN_URL, i, btn);
		Button slot = createButton_settings(path, selected_path, i, 50, 42, x, y);

		//y = y + slot.buttonsDestRect.h + SPACE;
		x = x + slot.buttonsDestRect.w + SPACE;
		btnLst[i - 1] = slot;
	}

	// create ok and cancel buttons
	Button cancelButton = createButton_settings(CANCEL_BTN_URL, NULL, NUM_OF_SLOTS + 1, 150, 42, SCREEN_WIDTH - SPACE - 150, SCREEN_HEIGHT - 30 - 42);
	Button okButton = createButton_settings(NEXT_BTN_URL, NULL, NUM_OF_SLOTS + 2, 150, 42, cancelButton.buttonsDestRect.x - 30 - cancelButton.buttonsDestRect.w, cancelButton.buttonsDestRect.y);
	btnLst[NUM_OF_SLOTS] = cancelButton;
	btnLst[NUM_OF_SLOTS + 1] = okButton;


	currentPage.btnList = btnLst;
	currentPage.btnListLen = NUM_OF_SLOTS + 2;
	currentPage.id = 3;

	addButtons(btnLst, NUM_OF_SLOTS + 2, containerPage.page);

	// set default

	sprintf(path, "%s%d%s", SLOT_SELECTED_BTN_URL, 1, btn);
	selectButton(path, btnLst[0]);
	userGuiSettings.savedSlot = 1;

	updateSurface(containerPage.page);

	return currentPage;
}
void AppearanceDialog::populateDockBox() {
    QHBoxLayout* hLayout = new QHBoxLayout();
    hLayout->addWidget(label("Background:"));

    dockBgSelect = selectButton(40, 20, "Click here to pick a new color.");
    connect(dockBgSelect, SIGNAL(clicked()), this, SLOT(selectDockBg()));
    hLayout->addWidget(dockBgSelect);

    ui->dockVLayout->addLayout(hLayout);

    hLayout = new QHBoxLayout();

    hLayout->addWidget(label("Text:"));

    dockFontSelect = selectButton(200, 22, "Click here to pick a new font.");
    connect(dockFontSelect, SIGNAL(clicked()), this, SLOT(selectDockFont()));
    hLayout->addWidget(dockFontSelect);

    dockFontColorSelect = selectButton(40, 20, "Click here to pick a new color.");
    connect(dockFontColorSelect, SIGNAL(clicked()), this, SLOT(selectDockFontColor()));
    hLayout->addWidget(dockFontColorSelect);

    ui->dockVLayout->addLayout(hLayout);
}
Exemple #11
0
bool SelectReset::init()
{
    if(!Layer::init())
    {
        return false;
    }
    
    //シングルタップ用リスナーを用意する
    auto listener = EventListenerTouchOneByOne::create();
    listener->setSwallowTouches(_swallowsTouches);
    
    //各イベントの割当
    listener->onTouchBegan = CC_CALLBACK_2(SelectReset::onTouchBegan,this);
    listener->onTouchEnded = CC_CALLBACK_2(SelectReset::onTouchEnded, this);
    
    //イベントディスバッチャにシングルタップ用リスナーを追加する
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
    
    
    initBackground();
    selectButton();
    
    return true;
}
Page createSelecetionPage(){

	//Add Background
	SDL_Surface *bkg = loadImage(SELECTION_WINDOW_BKG);
	addImageToSurface(bkg, NULL, containerPage.page, NULL);
	currentPage.bkg = bkg;

	// create game mode section
	Button game_mode_2PlayersMode = createButton_settings(TWO_PLAYERS_BTN_URL, TWO_PLAYERS_SELECTED_BTN_URL, 1, 150, 42, 35, 50);
	Button game_mode_playerVsAI = createButton_settings(AGAINS_COMPUTER_BTN_URL, AGAINS_COMPUTER_SELECTED_BTN_URL, 2, 150, 42, game_mode_2PlayersMode.buttonsDestRect.x + game_mode_2PlayersMode.buttonsDestRect.w + SPACE, 50);

	// create next player section
	Button next_player_white = createButton_settings(WHITE_BTN_URL, WHITE_SELECTED_BTN_URL, 3, 150, 42, 35, 137);
	Button next_player_black = createButton_settings(BLACK_BTN_URL, BLACK_SELECTED_BTN_URL, 4, 150, 42, next_player_white.buttonsDestRect.x + next_player_white.buttonsDestRect.w + SPACE, 137);

	// create next player section
	Button set_board_no = createButton_settings(NO_BTN_URL, NO_SELECTED_BTN_URL, 5, 150, 42, 35, 222);
	Button set_board_yes = createButton_settings(YES_BTN_URL, YES_SELECTED_BTN_URL, 6, 150, 42, set_board_no.buttonsDestRect.x + set_board_no.buttonsDestRect.w + SPACE, 222);

	// create ok and cancel buttons
	Button cancelButton = createButton_settings(CANCEL_BTN_URL, NULL, 7, 150, 42, SCREEN_WIDTH - SPACE - 150, SCREEN_HEIGHT - 30 - 42);
	Button okButton = createButton_settings(NEXT_BTN_URL, NULL, 8, 150, 42, cancelButton.buttonsDestRect.x - 30 - cancelButton.buttonsDestRect.w, cancelButton.buttonsDestRect.y);
	
	Button *btnLst = (Button*)myMalloc(sizeof(Button) * 8);
	if (btnLst == NULL){
		currentPage.isError = 1;
		return currentPage;
	}

	btnLst[0] = game_mode_2PlayersMode;
	btnLst[1] = game_mode_playerVsAI;
	btnLst[2] = next_player_black;
	btnLst[3] = next_player_white;
	btnLst[4] = set_board_yes;
	btnLst[5] = set_board_no;
	btnLst[6] = cancelButton;
	btnLst[7] = okButton;

	currentPage.btnList = btnLst;
	currentPage.btnListLen = 8;
	currentPage.id = 2;

	addButtons(btnLst, 8, containerPage.page);

	// set defaults
	Button defaultGameModeBtn = settings.gameMode == TWO_PLAYERS ? game_mode_2PlayersMode : game_mode_playerVsAI;
	char *defaultBtnSkin = settings.gameMode == TWO_PLAYERS ? TWO_PLAYERS_SELECTED_BTN_URL : AGAINS_COMPUTER_SELECTED_BTN_URL;
	int isSuccess = selectButton(defaultBtnSkin, defaultGameModeBtn);
	if (isSuccess == 1){
		userGuiSettings.gameMode = settings.gameMode;
		Button defaultNextPlayer = game_board.isBlackTurn == 1 ? next_player_black : next_player_white;
		defaultBtnSkin = game_board.isBlackTurn == 1 ? BLACK_SELECTED_BTN_URL : WHITE_SELECTED_BTN_URL;
		isSuccess = selectButton(defaultBtnSkin, defaultNextPlayer);
		if (isSuccess == 1){
			userGuiSettings.isNextPlayerBlack = game_board.isBlackTurn;
			isSuccess = selectButton(NO_SELECTED_BTN_URL, set_board_no);
			if (isSuccess == 1){
				userGuiSettings.isSetBoard = 0;
			}
		}
	}
	
	if (!isSuccess){
		currentPage.isError = 1;
		return currentPage;
	}
	
	updateSurface(containerPage.page);

	return currentPage;
}
int handleButtonClicked_aiSettingsWindow(SDL_Event e){
	Button *lst = currentPage.btnList;
	int len = currentPage.btnListLen;
	Button curr;
	Button prev;
	int quit = 0;
	int isSuccess = 1;

	for (int i = 0; i < len; i++){
		curr = lst[i];
		char path[100];
		if (isClickInRect(e, curr.buttonsDestRect) == 1){
			if (curr.id >= 1 && curr.id <= 5){
				// a difficulty was chosen
				int isSuccess = 1;
				if (userGuiSettings.difficulty != 0){
					// need to deselect the prevButton
					int difficulty = userGuiSettings.difficulty == BEST ? 5 : userGuiSettings.difficulty;
					Button prevChosenButton = getButtonAccordingToId(lst, len, difficulty);
					sprintf(path, "%s%d%s", SLOT_BTN_URL, difficulty, "_btn.bmp");
					isSuccess = deselectButton(path, prevChosenButton);
				}
				if (isSuccess == 1){
					userGuiSettings.difficulty = curr.id < 5 ? curr.id : BEST;
					sprintf(path,"%s%d%s", SLOT_SELECTED_BTN_URL, curr.id, "_btn.bmp");
					if (userGuiSettings.difficulty == BEST){
						isSuccess = selectButton(BEST_SELECTED_BTN_URL, curr);
					}
					else{
						isSuccess = selectButton(path, curr);
					}
				}
				quit = !isSuccess;
			}
			else{
				switch (curr.id){
				case 6:
					userGuiSettings.isUserColorBlack = 1;
					prev = getButtonAccordingToId(lst, len, 7);
					isSuccess = toggleButtons(prev, curr, WHITE_BTN_URL, BLACK_SELECTED_BTN_URL);
					break;
				case 7:
					userGuiSettings.isUserColorBlack = 0;
					prev = getButtonAccordingToId(lst, len, 6);
					isSuccess = toggleButtons(prev, curr, BLACK_BTN_URL, WHITE_SELECTED_BTN_URL);
					break;
				case 8:
					isSuccess = navigatToPage("mainMenu");
					break;
				case 9:
					saveSettings(0);
					if (userGuiSettings.isSetBoard == 1){
						// navigate to set board window
						quit = 3;
					}
					else{
						// navigate to start game window
						quit = 2;
					}
					break;
				}
			}

			break;
		}
	}

	quit = quit != 0 ? quit : !isSuccess;
	return quit;

}
int handleButtonClicked_loadFromSlotWindow(SDL_Event e){
	Button *lst = currentPage.btnList;
	int len = currentPage.btnListLen;
	Button curr;
	int quit = 0;
	int isSuccess = 1;

	for (int i = 0; i < len; i++){
		curr = lst[i];
		if (isClickInRect(e, curr.buttonsDestRect) == 1){
			if (curr.id >=1 && curr.id <=NUM_OF_SLOTS){
				// a slot was chosen - load from slot
				char path[100];
				if (userGuiSettings.savedSlot != 0){
					// need to deselect the prevButton
					Button prevChosenButton = getButtonAccordingToId(lst, len, userGuiSettings.savedSlot);
					sprintf(path, "%s%d%s", SLOT_BTN_URL, userGuiSettings.savedSlot, "_btn.bmp");
					isSuccess = deselectButton(path, prevChosenButton);
				}
				if (isSuccess == 1){
					userGuiSettings.savedSlot = curr.id;
					sprintf(path, "%s%d%s", SLOT_SELECTED_BTN_URL, userGuiSettings.savedSlot, "_btn.bmp");
					isSuccess = selectButton(path, curr);
				}
			}
			else{
				switch (curr.id)
				{
				case NUM_OF_SLOTS+1:
					isSuccess = navigatToPage("mainMenu");
					break;
				case NUM_OF_SLOTS+2:
					// load from chosen slot
					//check if there is no slot chosen
					if (userGuiSettings.savedSlot != 0){
						
						char path[100];
						char *slot = "./slots/slot";
						char *xmlStr = ".xml";
						sprintf(path, "%s%d%s", slot, userGuiSettings.savedSlot, xmlStr);
						clearBoard();
						fileData data = loadGame(path);
						isSuccess = saveLoadedData(data, 0);
						if (!isSuccess){
							// TBD - what do we need to do? Show a dialog?
						}

						// navigate to selection page
						isSuccess = navigatToPage("selectionWindow");
					}
					break;
				}
			}
			break;
		}
	}

	quit = !isSuccess;
	return quit;

}
Page createAiSettingsPage(){

	//Add Background
	SDL_Surface *bkg = loadImage(AI_SETTINGS_WINDOW);
	addImageToSurface(bkg, NULL, containerPage.page, NULL);
	currentPage.bkg = bkg;

	// create game mode section
	int y = 50;
	int x = 35;
	Button *btnLst = (Button*)myMalloc(sizeof(Button) * 9);
	if (btnLst == NULL){
		// TBD - free all images in current page
		currentPage.isError = 1;
		return currentPage;
	}

	char path[200];
	char selected_path[200];
	char *btn = "_btn.bmp";
	int width;
	int height;
		
	for (int i = 1; i <= 5; i++){
		if (i==5){
			sprintf(path, "%s", BEST_BTN_URL);
			sprintf(selected_path, "%s", BEST_SELECTED_BTN_URL);
			width = 150;
			height = 42;
		}
		else{
			sprintf(path, "%s%d%s", SLOT_BTN_URL, i, btn);
			sprintf(selected_path, "%s%d%s", SLOT_SELECTED_BTN_URL, i, btn);
			width = 50;
			height = 42;
		}
		
		Button difficulty = createButton_settings(path, selected_path, i, width, height, x, y);

		//y = y + slot.buttonsDestRect.h + SPACE;
		x = x + difficulty.buttonsDestRect.w + 24;
		btnLst[i - 1] = difficulty;
	}

	Button userColor_black = createButton_settings(BLACK_BTN_URL, BLACK_SELECTED_BTN_URL, 6, 150, 42, 35, 145);
	Button userColor_white = createButton_settings(WHITE_BTN_URL, WHITE_SELECTED_BTN_URL, 7, 150, 42, userColor_black.buttonsDestRect.x + userColor_black.buttonsDestRect.w + SPACE, 145);
	btnLst[5] = userColor_black;
	btnLst[6] = userColor_white;

	// create ok and cancel buttons
	Button cancelButton = createButton_settings(CANCEL_BTN_URL, NULL, 8, 150, 42, SCREEN_WIDTH - SPACE - 150, SCREEN_HEIGHT - 30 - 42);
	Button okButton = createButton_settings(NEXT_BTN_URL, NULL, 9, 150, 42, cancelButton.buttonsDestRect.x - 30 - cancelButton.buttonsDestRect.w, cancelButton.buttonsDestRect.y);
	btnLst[7] = cancelButton;
	btnLst[8] = okButton;


	currentPage.btnList = btnLst;
	currentPage.btnListLen = 9;
	currentPage.id = 4;

	addButtons(btnLst, 9, containerPage.page);

	// set defaults 
	unsigned int defaultDepth = settings.minmax_depth;
	if (defaultDepth == BEST){
		sprintf(path, "%s", BEST_SELECTED_BTN_URL);
		selectButton(path, btnLst[4]);
	}
	else{
		sprintf(path, "%s%d%s", SLOT_SELECTED_BTN_URL, defaultDepth, btn);
		selectButton(path, btnLst[defaultDepth-1]);
	}

	Button defaultUserColorBtn = settings.isUserBlack == 1 ? userColor_black : userColor_white;
	char *defaultBtnSkin = settings.isUserBlack == 1 ? BLACK_SELECTED_BTN_URL : WHITE_SELECTED_BTN_URL;

	selectButton(defaultBtnSkin, defaultUserColorBtn);
	userGuiSettings.difficulty = settings.minmax_depth;
	userGuiSettings.isUserColorBlack = settings.isUserBlack;

	updateSurface(containerPage.page);

	return currentPage;
}