void ro_gui_menu_selection(wimp_selection *selection) { wimp_pointer pointer; wimp_get_pointer_info(&pointer); if (current_menu == iconbar_menu) { switch (selection->items[0]) { case 0: /* Info */ ro_gui_create_menu((wimp_menu *) dialog_info, pointer.pos.x, pointer.pos.y); break; case 1: /* Help */ xos_cli("Filer_Run <NSTheme$Dir>.!Help"); break; case 2: /* Quit */ application_quit = true; break; } } else if (current_menu == main_menu) { switch (selection->items[0]) { case 2: /* Help */ xos_cli("Filer_Run <NSTheme$Dir>.!Help"); break; } } else if (current_menu == colour_menu) { ro_gui_set_icon_background_colour(dialog_main, menu_icon - 1, selection->items[0]); } if (pointer.buttons == wimp_CLICK_ADJUST) { ro_gui_create_menu(current_menu, 0, 0); } }
void ro_gui_popup_menu(wimp_menu *menu, wimp_w w, wimp_i i) { wimp_window_state state; wimp_icon_state icon_state; state.w = w; icon_state.w = w; icon_state.i = i; wimp_get_window_state(&state); wimp_get_icon_state(&icon_state); menu_icon = i; ro_gui_create_menu(menu, state.visible.x0 + icon_state.icon.extent.x1 + 64, state.visible.y1 + icon_state.icon.extent.y1); }
void ro_gui_dialog_click(wimp_pointer *pointer) { if (pointer->buttons == wimp_CLICK_MENU) { if (pointer->w == dialog_main) { ro_gui_create_menu(main_menu, pointer->pos.x, pointer->pos.y); } return; } if (pointer->w == dialog_main) ro_gui_dialog_click_main(pointer); else if (pointer->w == dialog_warning) ro_gui_dialog_click_warning(pointer); }