void ro_gui_save_prepare(gui_save_type save_type, hlcache_handle *h, struct selection *s, const char *url, const char *title) { char name_buf[FILENAME_MAX]; size_t leaf_offset = 0; char icon_buf[20]; assert( (save_type == GUI_SAVE_LINK_URI) || (save_type == GUI_SAVE_LINK_URL) || (save_type == GUI_SAVE_LINK_TEXT) || (save_type == GUI_SAVE_HOTLIST_EXPORT_HTML) || (save_type == GUI_SAVE_HISTORY_EXPORT_HTML) || (save_type == GUI_SAVE_TEXT_SELECTION) || h); gui_save_selection = s; gui_save_url = url; gui_save_title = title; if (save_dir) { leaf_offset = save_dir_len; memcpy(name_buf, save_dir, leaf_offset); name_buf[leaf_offset++] = '.'; } ro_gui_save_set_state(h, save_type, h ? content_get_url(h) : url, name_buf + leaf_offset, icon_buf); ro_gui_set_icon_sprite(dialog_saveas, ICON_SAVE_ICON, saveas_area, icon_buf); ro_gui_set_icon_string(dialog_saveas, ICON_SAVE_PATH, name_buf, true); ro_gui_wimp_event_memorise(dialog_saveas); }
/** * Prepares the save box to reflect gui_save_type and a content, and * opens it. * * \param save_type type of save * \param h content to save * \param s selection to save * \param url url to be saved (link types) * \param title title (if any), when saving links */ void ro_gui_save_prepare(gui_save_type save_type, struct hlcache_handle *h, char *s, const nsurl *url, const char *title) { char name_buf[FILENAME_MAX]; size_t leaf_offset = 0; char icon_buf[20]; assert( (save_type == GUI_SAVE_LINK_URI) || (save_type == GUI_SAVE_LINK_URL) || (save_type == GUI_SAVE_LINK_TEXT) || (save_type == GUI_SAVE_HOTLIST_EXPORT_HTML) || (save_type == GUI_SAVE_HISTORY_EXPORT_HTML) || (save_type == GUI_SAVE_TEXT_SELECTION) || h); if (gui_save_selection == NULL) free(gui_save_selection); gui_save_selection = s; if (url != NULL) { gui_save_url = nsurl_access(url); } else { gui_save_url = NULL; } gui_save_title = title; if (save_dir) { leaf_offset = save_dir_len; memcpy(name_buf, save_dir, leaf_offset); name_buf[leaf_offset++] = '.'; } if (h != NULL) { url = hlcache_handle_get_url(h); } ro_gui_save_set_state(h, save_type, url, name_buf + leaf_offset, FILENAME_MAX - leaf_offset, icon_buf, sizeof(icon_buf)); ro_gui_set_icon_sprite(dialog_saveas, ICON_SAVE_ICON, saveas_area, icon_buf); ro_gui_set_icon_string(dialog_saveas, ICON_SAVE_PATH, name_buf, true); ro_gui_wimp_event_memorise(dialog_saveas); }