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); }
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(); }