Esempio n. 1
0
 void ModelView::set_mouse_state__(bool ModelView::* mouse_state, bool b) {
     if (true == b) {
         if (!(   mouse_left_down()
               || mouse_middle_down()
               || mouse_right_down()))
             this->*mouse_state = true;
     }
     else
         this->*mouse_state = false;
 }
Esempio n. 2
0
void IOController::trigger_events(const BBox& playing_area) {

	// Loop over all possible keys to find active key states
	for (int i = SDLK_FIRST + 1; i < SDLK_LAST; i++) {
		IOEventTrigger::trigger_t notrigger = IOEventTrigger::NONE;
		if (iostate.key_press_states[i]) {
			// Trigger key press events
			__trigger_events(notrigger, SDLKey(i), iostate.keymod, false);
		} else if (iostate.key_down_states[i]) {
			// Trigger key hold events
			__trigger_events(notrigger, SDLKey(i), iostate.keymod, true);
		}
	}

	if (playing_area.contains(mouse_x(), mouse_y())) {
		if (mouse_left_click() || mouse_left_down()) {
			__trigger_events(IOEventTrigger::MOUSE_LEFT_CLICK, SDLKey(0),
					iostate.keymod, !mouse_left_click());
		}
		if (mouse_right_click() || mouse_right_down()) {
			__trigger_events(IOEventTrigger::MOUSE_RIGHT_CLICK, SDLKey(0),
					iostate.keymod, !mouse_left_click());
		}
	}

	if (iostate.mouse_middleclick || iostate.mouse_middledown) {
		__trigger_events(IOEventTrigger::MOUSE_MIDDLE_CLICK, SDLKey(0),
				iostate.keymod, !iostate.mouse_middleclick);
	}
	if (mouse_upwheel()) {
		__trigger_events(IOEventTrigger::MOUSE_WHEEL_UP, SDLKey(0),
				iostate.keymod, false);
	}
	if (mouse_downwheel()) {
		__trigger_events(IOEventTrigger::MOUSE_WHEEL_DOWN, SDLKey(0),
				iostate.keymod, false);
	}
	if (mouse_downwheel()) {
		__trigger_events(IOEventTrigger::MOUSE_WHEEL_DOWN, SDLKey(0),
				iostate.keymod, false);
	}
}