if(game_object != NULL)
{
- game_object->draw_on_screen();
+ game_object->draw_on_screen(rect.x,rect.y);
}
if(show_info)
event.button.y < rect.y || event.button.y >= rect.y + rect.h)
return;
- if(event.button.button != SDL_BUTTON_LEFT)
+ if(event.button.button == SDL_BUTTON_RIGHT)
{
show_info = true;
return;
}
+ else if(event.type == SDL_MOUSEBUTTONUP && event.button.button == 4) /* Mouse wheel up. */
+ {
+ state = BUTTON_WHEELUP;
+ return;
+ }
+ else if(event.type == SDL_MOUSEBUTTONUP && event.button.button == 5) /* Mouse wheel down. */
+ {
+ state = BUTTON_WHEELDOWN;
+ return;
+ }
+ if(event.button.button == SDL_BUTTON_LEFT)
if(event.type == SDL_MOUSEBUTTONDOWN)
state = BUTTON_PRESSED;
else
int Button::get_state()
{
int rstate;
- if(state == BUTTON_CLICKED)
+ switch(state)
{
+ case BUTTON_CLICKED:
+ case BUTTON_WHEELUP:
+ case BUTTON_WHEELDOWN:
rstate = state;
state = BUTTON_NONE;
return rstate;
- }
- else
- {
+ default:
return state;
}
}
rect.h = h;
hidden = false;
hlast = false;
- //last_clicked(NULL);
}
Button* ButtonPanel::event(SDL_Event& event)