Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
	}

}
Ejemplo n.º 3
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;
}