void test_turnButton(void){



  Button_t* buttonA = createButton();

  turnButton(buttonA,ON);

  UnityAssertEqualNumber((_U_SINT)((HIGH)), (_U_SINT)((buttonA->state)), (((void *)0)), (_U_UINT)44, UNITY_DISPLAY_STYLE_INT);



}
Example #2
0
bool Context::handleEvent(SDL_Event* e) {
	if (e->type == SDL_MOUSEMOTION || e->type == SDL_MOUSEBUTTONDOWN || e->type == SDL_MOUSEBUTTONUP)
	{

		for (int i = 0; i < BUTTONS_CNT; i++) {

			//Get mouse position
			int x, y;
			SDL_GetMouseState(&x, &y);

			//Check if mouse is in button
			bool inside = true;
			SDL_Rect* pos = allButtons[i].getPos();
			Button* button = &allButtons[i];
			bool pressed = allButtons[i].getPressed();

			//Mouse is left of the button
			if (x < pos->x)
			{
				inside = false;
			}
			//Mouse is right of the button
			else if (x > pos->x + pos->w)
			{
				inside = false;
			}
			//Mouse above the button
			else if (y < pos->y)
			{
				inside = false;
			}
			//Mouse below the button
			else if (y > pos->y + pos->h)
			{
				inside = false;
			}

			//Mouse is inside button
			if (inside) {
				//Set mouse over sprite
				switch (e->type)
				{
				case SDL_MOUSEMOTION:
					button->resetCol();
					button->subCol(32, 32, 0);
					break;

				/*case SDL_MOUSEBUTTONDOWN:
					setColor(color, 0x7C, 0x70, 0xB8, 0xFF);
					break;*/

				case SDL_MOUSEBUTTONUP:
					if (i == PAUSE)
						if (button->getPressed())
							button->setPressed(false);
						else
							button->setPressed(true);
					else
						button->setPressed(true);
					turnButton(i, button->getChain());
					break;
				}
			}
			else {
				button->resetCol();
			}
		}
		return allButtons[PAUSE].getPressed();
	}
	else if (e->type == SDL_KEYDOWN) {
		switch (e->key.keysym.sym) {
			//Pause button
			case SDLK_p:
				if (allButtons[PAUSE].getPressed())
					allButtons[PAUSE].setPressed(false);
				else
					allButtons[PAUSE].setPressed(true);
				break;
			//BVH button
			case SDLK_b:
				allButtons[BVH].setPressed(true);
				turnButton(BVH, allButtons[BVH].getChain());
				break;
			//Uniform Grid button
			case SDLK_u:
				allButtons[UNIFORM_GRID].setPressed(true);
				turnButton(UNIFORM_GRID, allButtons[UNIFORM_GRID].getChain());
				break;
			//Octree button
			case SDLK_o:
				allButtons[OCTREE].setPressed(true);
				turnButton(OCTREE, allButtons[OCTREE].getChain());
				break;
			case SDLK_l:
				allButtons[LIST].setPressed(true);
				turnButton(LIST, allButtons[LIST].getChain());
				break;
			//CPU render
			case SDLK_c:
				allButtons[CPU_RENDER].setPressed(true);
				turnButton(CPU_RENDER, allButtons[CPU_RENDER].getChain());
				break;
			//GPU render
			case SDLK_g:
				allButtons[GPU_RENDER].setPressed(true);
				turnButton(GPU_RENDER, allButtons[GPU_RENDER].getChain());
				break;
		}
		return allButtons[PAUSE].getPressed();
	}
	return allButtons[PAUSE].getPressed();
}