void ro_gui_cookies_open(void) { tree_set_redraw(ro_treeview_get_tree(cookies_window.tv), true); ro_gui_cookies_toolbar_update_buttons(); if (!ro_gui_dialog_open_top(cookies_window.window, cookies_window.toolbar, 600, 800)) { ro_treeview_set_origin(cookies_window.tv, 0, -(ro_toolbar_height(cookies_window.toolbar))); } }
void ro_gui_global_history_open(void) { tree_set_redraw(ro_treeview_get_tree(global_history_window.tv), true); ro_gui_global_history_toolbar_update_buttons(); if (!ro_gui_dialog_open_top(global_history_window.window, global_history_window.toolbar, 600, 800)) { ro_treeview_set_origin(global_history_window.tv, 0, -(ro_toolbar_height( global_history_window.toolbar))); } }
void theme_install_start(hlcache_handle *c) { assert(c != NULL); assert(content_get_type(c) == CONTENT_THEME); if (ro_gui_dialog_open_top(dialog_theme_install, NULL, 0, 0)) { warn_user("ThemeInstActive", 0); return; } /* stop theme sitting in memory cache */ content_invalidate_reuse_data(c); hlcache_handle_replace_callback(c, theme_install_callback, NULL); ro_gui_set_icon_string(dialog_theme_install, ICON_THEME_INSTALL_MESSAGE, messages_get("ThemeInstDown"), true); ro_gui_set_icon_shaded_state(dialog_theme_install, ICON_THEME_INSTALL_INSTALL, true); ro_gui_wimp_event_register_close_window(dialog_theme_install, theme_install_close); }
bool ro_gui_download_window_destroy(struct gui_download_window *dw, bool quit) { bool safe = dw->saved && !dw->ctx; os_error *error; if (!safe && !dw->close_confirmed) { query_reason rsn = quit ? QueryRsn_Quit : QueryRsn_Abort; if (dw->query != QUERY_INVALID) { /* can we just reuse the existing query? */ if (rsn == dw->query_rsn) { ro_gui_query_window_bring_to_front(dw->query); return false; } query_close(dw->query); dw->query = QUERY_INVALID; } if (quit) { /* bring all download windows to the front of the desktop as a convenience if there are lots of windows open */ struct gui_download_window *d = download_window_list; while (d) { ro_gui_dialog_open_top(d->window, NULL, 0, 0); d = d->next; } } dw->query_rsn = rsn; dw->query = query_user(quit ? "QuitDownload" : "AbortDownload", NULL, &close_funcs, dw, NULL, NULL); return false; } schedule_remove(ro_gui_download_update_status_wrapper, dw); schedule_remove(ro_gui_download_window_destroy_wrapper, dw); /* remove from list */ if (dw->prev) dw->prev->next = dw->next; else download_window_list = dw->next; if (dw->next) dw->next->prev = dw->prev; /* delete window */ error = xwimp_delete_window(dw->window); if (error) { LOG(("xwimp_delete_window: 0x%x: %s", error->errnum, error->errmess)); warn_user("WimpError", error->errmess); } ro_gui_wimp_event_finalise(dw->window); /* close download file */ if (dw->file) { error = xosfind_closew(dw->file); if (error) { LOG(("xosfind_closew: 0x%x: %s", error->errnum, error->errmess)); warn_user("SaveError", error->errmess); } } /* delete temporary file */ if (!dw->saved) { const char *temp_name = ro_gui_download_temp_name(dw); error = xosfile_delete(temp_name, 0, 0, 0, 0, 0); if (error) { LOG(("xosfile_delete: 0x%x: %s", error->errnum, error->errmess)); warn_user("SaveError", error->errmess); } } if (dw->ctx) { download_context_abort(dw->ctx); download_context_destroy(dw->ctx); } free(dw); return true; }