void ro_gui_save_drag_end(wimp_dragged *drag) { char *name; char *dot; wimp_pointer pointer; wimp_message message; wimp_get_pointer_info(&pointer); name = ro_gui_get_icon_string(dialog_saveas, ICON_SAVE_PATH); dot = strrchr(name, '.'); if (dot) name = dot + 1; message.your_ref = 0; message.action = message_DATA_SAVE; message.data.data_xfer.w = pointer.w; message.data.data_xfer.i = pointer.i; message.data.data_xfer.pos.x = pointer.pos.x; message.data.data_xfer.pos.y = pointer.pos.y; message.data.data_xfer.est_size = 1000; message.data.data_xfer.file_type = gui_save_filetype; strncpy(message.data.data_xfer.file_name, name, 212); message.data.data_xfer.file_name[211] = 0; message.size = 44 + ((strlen(message.data.data_xfer.file_name) + 4) & (~3u)); wimp_send_message_to_window(wimp_USER_MESSAGE, &message, pointer.w, pointer.i); }
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); } }
static int filerwin_event_close_window_request(wimp_event_no event_no, wimp_block *block, void *handle) { wimp_close *close; filerwin *fw; wimp_pointer pointer; NOT_USED(event_no); close = &block->close; fw = handle; wimp_get_pointer_info(&pointer); /* Note that we might be entered if another part of the program has * faked a close event, in which case the pointer may or may not have * buttons held. */ if (pointer.buttons & wimp_CLICK_ADJUST) { #if 0 filer_open_dir(viewer->drawable->image->file_name); #endif if (inkey(INKEY_SHIFT)) return event_HANDLED; } #if 0 if (viewer_query_unload(viewer)) { viewer_unload(viewer); viewer_destroy(viewer); } #endif fw->close(close, fw->opaque); return event_HANDLED; }