Skip to content

Commit 82a8a4a

Browse files
committed
top menu: handle right_click on date label
1 parent bc42bbb commit 82a8a4a

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

src/graphics/elements/generic_button.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ int generic_buttons_handle_mouse(const mouse* m, vec2i pos, const generic_button
4747
}
4848
} else if (m->right.went_up) {
4949
button.right_click_handler(button.parameter1, button.parameter2);
50+
if (button._onrclick) {
51+
button._onrclick(button.parameter1, button.parameter2);
52+
}
5053
} else {
5154
return 0;
5255
}
@@ -63,13 +66,13 @@ int generic_buttons_min_handle_mouse(const mouse* m, vec2i pos, const generic_bu
6366
return 0;
6467

6568
const generic_button* button = &buttons[button_id - 1];
66-
if (m->left.went_up)
69+
if (m->left.went_up) {
6770
button->left_click_handler(button->parameter1, button->parameter2);
68-
69-
else if (m->right.went_up)
71+
} else if (m->right.went_up) {
7072
button->right_click_handler(button->parameter1, button->parameter2);
71-
else
73+
} else {
7274
return 0;
75+
}
7376

7477
return button_id;
7578
}

src/widget/widget_top_menu_game.cpp

+12-8
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ struct top_menu_widget : autoconfig_window_t<top_menu_widget> {
8585
virtual void draw_foreground() override;
8686
virtual void ui_draw_foreground() override {}
8787
virtual int get_tooltip_text() override { return 0; }
88+
virtual int ui_handle_mouse(const mouse *m) override;
8889
virtual void init() override;
8990

9091
virtual void load(archive arch, pcstr section) override {
@@ -126,6 +127,9 @@ static generic_button orientation_buttons_ph[] = {
126127
};
127128

128129
void top_menu_widget::init() {
130+
ui["date"].onrclick([] {
131+
window_message_dialog_show(MESSAGE_DIALOG_TOP_DATE, -1, window_city_draw_all);
132+
});
129133
}
130134

131135
void top_menu_widget::menu_item_update(pcstr header, int item, pcstr text) {
@@ -817,27 +821,27 @@ static bool handle_right_click(int type) {
817821
window_message_dialog_show(MESSAGE_DIALOG_TOP_FUNDS, -1, window_city_draw_all);
818822
} else if (type == INFO_POPULATION) {
819823
window_message_dialog_show(MESSAGE_DIALOG_TOP_POPULATION, -1, window_city_draw_all);
820-
} else if (type == INFO_DATE) {
821-
window_message_dialog_show(MESSAGE_DIALOG_TOP_DATE, -1, window_city_draw_all);
822-
}
824+
}
823825

824826
return true;
825827
}
826828

827-
static bool widget_top_menu_handle_mouse_menu(const mouse* m) {
828-
auto& data = g_top_menu;
829+
int top_menu_widget::ui_handle_mouse(const mouse *m) {
830+
autoconfig_window::ui_handle_mouse(m);
831+
832+
auto &data = g_top_menu;
829833
xstring menu_id = top_menu_bar_handle_mouse(m);
830834
if (!!menu_id && m->left.went_up) {
831835
data.open_sub_menu = menu_id;
832836
widget_sub_menu_show();
833-
return true;
837+
return 0;
834838
}
835839

836840
if (m->right.went_up) {
837841
return handle_right_click(get_info_id(*m));
838842
}
839843

840-
return false;
844+
return 0;
841845
}
842846

843847
void widget_top_menu_handle_input(const mouse* m, const hotkeys* h) {
@@ -861,7 +865,7 @@ void widget_top_menu_handle_input(const mouse* m, const hotkeys* h) {
861865
else if (!!data.open_sub_menu)
862866
widget_top_menu_handle_input_submenu(m, h);
863867
else
864-
widget_top_menu_handle_mouse_menu(m);
868+
g_top_menu.ui_handle_mouse(m);
865869
}
866870
}
867871

0 commit comments

Comments
 (0)