1
0
mirror of synced 2025-02-02 20:37:25 +01:00

Bring back mouse support

This commit is contained in:
Stepland 2020-03-05 18:50:55 +01:00
parent b258dfeb28
commit 38299e0fc2
3 changed files with 31 additions and 10 deletions

View File

@ -49,3 +49,4 @@
- Eager Loading - Eager Loading
- Marker Selection Menu - Marker Selection Menu
- Fix all executable-relative path issues - Fix all executable-relative path issues
- Bring back mouse support

View File

@ -1,6 +1,5 @@
# v0.1.0 (MVP) # v0.1.0 (MVP)
## Misc ## Misc
- Bring back mouse support
## Music Select Screen ## Music Select Screen
- Options menu - Options menu

View File

@ -168,16 +168,36 @@ void MusicSelect::Screen::handle_key_press(const sf::Event::KeyEvent& key_event)
} }
} }
void MusicSelect::Screen::handle_mouse_click(const sf::Event::MouseButtonEvent& /*mouse_button_event*/) { void MusicSelect::Screen::handle_mouse_click(const sf::Event::MouseButtonEvent& mouse_button_event) {
/* if (mouse_button_event.button != sf::Mouse::Left) {
if (mouse_button_event.button == sf::Mouse::Left) { return;
int clicked_panel_index = (mouse_button_event.x / m_panel_size) + 4 * (mouse_button_event.y / m_panel_size); }
auto button = fromIndex(clicked_panel_index);
if (button) { sf::Vector2i mouse_position{mouse_button_event.x, mouse_button_event.y};
press_button(*button); sf::Vector2i ribbon_origin{
} static_cast<int>(resources.get_ribbon_x()),
static_cast<int>(resources.get_ribbon_y())
};
auto panels_area_size = static_cast<int>(
resources.get_panel_size() * 4.f + resources.get_panel_spacing() * 3.f
);
sf::IntRect panels_area{ribbon_origin, sf::Vector2i{panels_area_size, panels_area_size}};
if (not panels_area.contains(mouse_position)) {
return;
}
sf::Vector2i relative_mouse_pos = mouse_position - ribbon_origin;
int clicked_panel_index = (
(relative_mouse_pos.x / (panels_area_size/4))
+ 4 * (relative_mouse_pos.y / (panels_area_size/4))
);
if (clicked_panel_index < 0) {
return;
}
auto button = Data::index_to_button(static_cast<std::size_t>(clicked_panel_index));
if (button) {
press_button(*button);
} }
*/
} }
void MusicSelect::Screen::press_button(const Data::Button& button) { void MusicSelect::Screen::press_button(const Data::Button& button) {
@ -208,6 +228,7 @@ void MusicSelect::Screen::press_button(const Data::Button& button) {
break; break;
case Data::Button::B15: // Options Menu case Data::Button::B15: // Options Menu
resources.options_state.push(main_option_page); resources.options_state.push(main_option_page);
resources.options_state.top().get().update();
break; break;
default: default:
break; break;