bool ro_gui_options_language_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_string(w, LANGUAGE_INTERFACE_FIELD, ro_gui_options_language_name(nsoption_charp(language) ? nsoption_charp(language) : "en"), true); ro_gui_set_icon_string(w, LANGUAGE_WEB_PAGES_FIELD, ro_gui_options_language_name(nsoption_charp(accept_language) ? nsoption_charp(accept_language) : "en"), true); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_menu_gright(w, LANGUAGE_INTERFACE_FIELD, LANGUAGE_INTERFACE_GRIGHT, languages_menu); ro_gui_wimp_event_register_menu_gright(w, LANGUAGE_WEB_PAGES_FIELD, LANGUAGE_WEB_PAGES_GRIGHT, languages_menu); ro_gui_wimp_event_register_button(w, LANGUAGE_DEFAULT_BUTTON, ro_gui_options_language_default); ro_gui_wimp_event_register_cancel(w, LANGUAGE_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, LANGUAGE_OK_BUTTON, ro_gui_options_language_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpLanguageConfig"); ro_gui_wimp_event_memorise(w); return true; }
bool ro_gui_options_home_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_string(w, HOME_URL_FIELD, nsoption_charp(homepage_url) ? nsoption_charp(homepage_url) : "", true); ro_gui_set_icon_selected_state(w, HOME_OPEN_STARTUP, nsoption_bool(open_browser_at_startup)); ro_gui_set_icon_shaded_state(w, HOME_URL_GRIGHT, !ro_gui_url_suggest_prepare_menu()); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_menu_gright(w, HOME_URL_FIELD, HOME_URL_GRIGHT, ro_gui_url_suggest_menu); ro_gui_wimp_event_register_checkbox(w, HOME_OPEN_STARTUP); ro_gui_wimp_event_register_button(w, HOME_DEFAULT_BUTTON, ro_gui_options_home_default); ro_gui_wimp_event_register_cancel(w, HOME_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, HOME_OK_BUTTON, ro_gui_options_home_ok); ro_gui_wimp_event_register_menu_prepare(w, ro_gui_options_home_menu_prepare); ro_gui_wimp_event_set_help_prefix(w, "HelpHomeConfig"); ro_gui_wimp_event_memorise(w); return true; }
bool ro_gui_options_content_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_selected_state(w, CONTENT_BLOCK_ADVERTISEMENTS, nsoption_bool(block_ads)); ro_gui_set_icon_selected_state(w, CONTENT_BLOCK_POPUPS, nsoption_bool(block_popups)); ro_gui_set_icon_selected_state(w, CONTENT_NO_PLUGINS, nsoption_bool(no_plugins)); ro_gui_set_icon_selected_state(w, CONTENT_TARGET_BLANK, nsoption_bool(target_blank)); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_checkbox(w, CONTENT_BLOCK_ADVERTISEMENTS); ro_gui_wimp_event_register_checkbox(w, CONTENT_BLOCK_POPUPS); ro_gui_wimp_event_register_checkbox(w, CONTENT_NO_PLUGINS); ro_gui_wimp_event_register_checkbox(w, CONTENT_TARGET_BLANK); ro_gui_wimp_event_register_button(w, CONTENT_DEFAULT_BUTTON, ro_gui_options_content_default); ro_gui_wimp_event_register_cancel(w, CONTENT_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, CONTENT_OK_BUTTON, ro_gui_options_content_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpContentConfig"); ro_gui_wimp_event_memorise(w); return true; }
bool ro_gui_options_interface_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_selected_state(w, INTERFACE_STRIP_EXTNS_OPTION, nsoption_bool(strip_extensions)); ro_gui_set_icon_selected_state(w, INTERFACE_CONFIRM_OVWR_OPTION, nsoption_bool(confirm_overwrite)); ro_gui_set_icon_selected_state(w, INTERFACE_URL_COMPLETE_OPTION, nsoption_bool(url_suggestion)); ro_gui_set_icon_selected_state(w, INTERFACE_HISTORY_TOOLTIP_OPTION, nsoption_bool(history_tooltip)); ro_gui_set_icon_selected_state(w, INTERFACE_THUMBNAIL_ICONISE_OPTION, nsoption_bool(thumbnail_iconise)); ro_gui_set_icon_selected_state(w, INTERFACE_USE_EXTERNAL_HOTLIST, nsoption_bool(external_hotlists)); ro_gui_set_icon_string(w, INTERFACE_EXTERNAL_HOTLIST_APP, (nsoption_charp(external_hotlist_app)) ? nsoption_charp(external_hotlist_app) : "", false); ro_gui_set_icon_shaded_state(w, INTERFACE_EXTERNAL_HOTLIST_APP, !nsoption_bool(external_hotlists)); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_mouse_click(w, ro_gui_options_interface_click); ro_gui_wimp_event_register_button(w, INTERFACE_DEFAULT_BUTTON, ro_gui_options_interface_default); ro_gui_wimp_event_register_cancel(w, INTERFACE_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, INTERFACE_OK_BUTTON, ro_gui_options_interface_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpInterfaceConfig"); ro_gui_wimp_event_memorise(w); return true; }
bool ro_gui_options_fonts_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_decimal(w, FONT_DEFAULT_SIZE, nsoption_int(font_size), 1); ro_gui_set_icon_decimal(w, FONT_MINIMUM_SIZE, nsoption_int(font_min_size), 1); ro_gui_set_icon_string(w, FONT_SANS_FIELD, nsoption_charp(font_sans), true); ro_gui_set_icon_string(w, FONT_SERIF_FIELD, nsoption_charp(font_serif), true); ro_gui_set_icon_string(w, FONT_MONOSPACE_FIELD, nsoption_charp(font_mono), true); ro_gui_set_icon_string(w, FONT_CURSIVE_FIELD, nsoption_charp(font_cursive), true); ro_gui_set_icon_string(w, FONT_FANTASY_FIELD, nsoption_charp(font_fantasy), true); ro_gui_set_icon_string(w, FONT_DEFAULT_FIELD, font_names[nsoption_int(font_default)], true); if (!ro_gui_options_fonts_init_menu()) return false; /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_menu_gright(w, FONT_SANS_FIELD, FONT_SANS_MENU, rufl_family_menu); ro_gui_wimp_event_register_menu_gright(w, FONT_SERIF_FIELD, FONT_SERIF_MENU, rufl_family_menu); ro_gui_wimp_event_register_menu_gright(w, FONT_MONOSPACE_FIELD, FONT_MONOSPACE_MENU, rufl_family_menu); ro_gui_wimp_event_register_menu_gright(w, FONT_CURSIVE_FIELD, FONT_CURSIVE_MENU, rufl_family_menu); ro_gui_wimp_event_register_menu_gright(w, FONT_FANTASY_FIELD, FONT_FANTASY_MENU, rufl_family_menu); ro_gui_wimp_event_register_menu_gright(w, FONT_DEFAULT_FIELD, FONT_DEFAULT_MENU, default_menu); ro_gui_wimp_event_register_numeric_field(w, FONT_DEFAULT_SIZE, FONT_DEFAULT_INC, FONT_DEFAULT_DEC, 50, 1000, 1, 1); ro_gui_wimp_event_register_numeric_field(w, FONT_MINIMUM_SIZE, FONT_MINIMUM_INC, FONT_MINIMUM_DEC, 10, 500, 1, 1); ro_gui_wimp_event_register_button(w, FONT_DEFAULT_BUTTON, ro_gui_options_fonts_default); ro_gui_wimp_event_register_cancel(w, FONT_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, FONT_OK_BUTTON, ro_gui_options_fonts_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpFontConfig"); ro_gui_wimp_event_memorise(w); return true; }
bool ro_gui_options_security_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_selected_state(w, SECURITY_REFERRER, nsoption_bool(send_referer)); ro_gui_set_icon_integer(w, SECURITY_DURATION_FIELD, nsoption_int(expire_url)); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_checkbox(w, SECURITY_REFERRER); ro_gui_wimp_event_register_numeric_field(w, SECURITY_DURATION_FIELD, SECURITY_DURATION_DEC, SECURITY_DURATION_INC, 0, 365, 1, 0); ro_gui_wimp_event_register_button(w, SECURITY_DEFAULT_BUTTON, ro_gui_options_security_default); ro_gui_wimp_event_register_cancel(w, SECURITY_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, SECURITY_OK_BUTTON, ro_gui_options_security_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpSecurityConfig"); ro_gui_wimp_event_memorise(w); return true; }
void gui_cert_verify(const char *url, const struct ssl_cert_info *certs, unsigned long num, nserror (*cb)(bool proceed, void *pw), void *cbpw) { struct ro_sslcert *sslcert_window; wimp_window_state state; wimp_icon_state istate; wimp_window_info info; os_error *error; bool set_extent; assert(certs); sslcert_window = malloc(sizeof(struct ro_sslcert)); if (sslcert_window == NULL) { LOG(("Failed to allocate memory for SSL Cert Dialog")); return; } /* Create the SSL window and its pane. */ error = xwimp_create_window(ro_gui_cert_dialog_template, &(sslcert_window->window)); if (error) { LOG(("xwimp_create_window: 0x%x: %s", error->errnum, error->errmess)); free(sslcert_window); return; } error = xwimp_create_window(ro_gui_cert_tree_template, &(sslcert_window->pane)); if (error) { LOG(("xwimp_create_window: 0x%x: %s", error->errnum, error->errmess)); free(sslcert_window); return; } /* Create the SSL data and build a tree from it. */ sslcert_window->tv = ro_treeview_create(sslcert_window->pane, NULL, NULL, sslcert_get_tree_flags()); if (sslcert_window->tv == NULL) { LOG(("Failed to allocate treeview")); free(sslcert_window); return; } sslcert_window->data = sslcert_create_session_data(num, url, cb, cbpw); sslcert_load_tree(ro_treeview_get_tree(sslcert_window->tv), certs, sslcert_window->data); tree_set_redraw(ro_treeview_get_tree(sslcert_window->tv), true); /* Set up the certificate window event handling. * * (The action buttons are registered as button events, not OK and * Cancel, as both need to carry out actions.) */ ro_gui_wimp_event_set_user_data(sslcert_window->window, sslcert_window); ro_gui_wimp_event_register_close_window(sslcert_window->window, ro_gui_cert_close_window); ro_gui_wimp_event_register_button(sslcert_window->window, ICON_SSL_REJECT, ro_gui_cert_reject); ro_gui_wimp_event_register_button(sslcert_window->window, ICON_SSL_ACCEPT, ro_gui_cert_accept); ro_gui_dialog_open_persistent(NULL, sslcert_window->window, false); /* Nest the tree window inside the pane window. To do this, we: * - Get the current pane extent, * - Get the parent window position and the location of the pane- * locating icon inside it, * - Set the visible area of the pane to suit, * - Check that the pane extents are OK for this visible area, and * increase them if necessary, * - Before finally opening the pane as a nested part of the parent. */ info.w = sslcert_window->pane; error = xwimp_get_window_info_header_only(&info); if (error) { ro_gui_cert_release_window(sslcert_window); LOG(("xwimp_get_window_info: 0x%x: %s", error->errnum, error->errmess)); return; } state.w = sslcert_window->window; error = xwimp_get_window_state(&state); if (error) { ro_gui_cert_release_window(sslcert_window); LOG(("xwimp_get_window_state: 0x%x: %s", error->errnum, error->errmess)); return; } istate.w = sslcert_window->window; istate.i = ICON_SSL_PANE; error = xwimp_get_icon_state(&istate); if (error) { ro_gui_cert_release_window(sslcert_window); LOG(("xwimp_get_icon_state: 0x%x: %s", error->errnum, error->errmess)); return; } state.w = sslcert_window->pane; state.visible.x1 = state.visible.x0 + istate.icon.extent.x1 - 20 - ro_get_vscroll_width(sslcert_window->pane); state.visible.x0 += istate.icon.extent.x0 + 20; state.visible.y0 = state.visible.y1 + istate.icon.extent.y0 + 20 + ro_get_hscroll_height(sslcert_window->pane); state.visible.y1 += istate.icon.extent.y1 - 32; set_extent = false; if ((info.extent.x1 - info.extent.x0) < (state.visible.x1 - state.visible.x0)) { info.extent.x0 = 0; info.extent.x1 = state.visible.x1 - state.visible.x0; set_extent = true; } if ((info.extent.y1 - info.extent.y0) < (state.visible.y1 - state.visible.y0)) { info.extent.y1 = 0; info.extent.x1 = state.visible.y0 - state.visible.y1; set_extent = true; } if (set_extent) { error = xwimp_set_extent(sslcert_window->pane, &(info.extent)); if (error) { ro_gui_cert_release_window(sslcert_window); LOG(("xwimp_set_extent: 0x%x: %s", error->errnum, error->errmess)); return; } } error = xwimp_open_window_nested(PTR_WIMP_OPEN(&state), sslcert_window->window, wimp_CHILD_LINKS_PARENT_VISIBLE_BOTTOM_OR_LEFT << wimp_CHILD_XORIGIN_SHIFT | wimp_CHILD_LINKS_PARENT_VISIBLE_TOP_OR_RIGHT << wimp_CHILD_YORIGIN_SHIFT | wimp_CHILD_LINKS_PARENT_VISIBLE_BOTTOM_OR_LEFT << wimp_CHILD_LS_EDGE_SHIFT | wimp_CHILD_LINKS_PARENT_VISIBLE_BOTTOM_OR_LEFT << wimp_CHILD_RS_EDGE_SHIFT); if (error) { ro_gui_cert_release_window(sslcert_window); LOG(("xwimp_open_window_nested: 0x%x: %s", error->errnum, error->errmess)); ro_gui_cert_release_window(sslcert_window); return; } ro_treeview_set_origin(sslcert_window->tv, 0, 0); }
bool ro_gui_options_connection_initialise(wimp_w w) { int proxy_type; /* set the current values */ proxy_type = (option_http_proxy ? (option_http_proxy_auth + 1) : 0); ro_gui_set_icon_string(w, CONNECTION_PROXY_FIELD, proxy_type_menu->entries[proxy_type]. data.indirected_text.text, true); ro_gui_set_icon_string(w, CONNECTION_PROXY_HOST, option_http_proxy_host ? option_http_proxy_host : "", true); ro_gui_set_icon_integer(w, CONNECTION_PROXY_PORT, option_http_proxy_port); ro_gui_set_icon_string(w, CONNECTION_PROXY_USERNAME, option_http_proxy_auth_user ? option_http_proxy_auth_user : "", true); ro_gui_set_icon_string(w, CONNECTION_PROXY_PASSWORD, option_http_proxy_auth_pass ? option_http_proxy_auth_pass : "", true); ro_gui_set_icon_integer(w, CONNECTION_MAX_FETCH_FIELD, option_max_fetchers); ro_gui_set_icon_integer(w, CONNECTION_HOST_FETCH_FIELD, option_max_fetchers_per_host); ro_gui_set_icon_integer(w, CONNECTION_CACHE_FETCH_FIELD, option_max_cached_fetch_handles); ro_gui_options_connection_update(w, -1, NULL, NULL, NO_ACTION); /* register icons */ ro_gui_wimp_event_register_menu_gright(w, CONNECTION_PROXY_FIELD, CONNECTION_PROXY_MENU, proxy_type_menu); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_HOST_LABEL); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_HOST); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_PORT_LABEL); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_PORT); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_USERNAME_LABEL); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_USERNAME); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_PASSWORD_LABEL); ro_gui_wimp_event_register_text_field(w, CONNECTION_PROXY_PASSWORD); ro_gui_wimp_event_register_numeric_field(w, CONNECTION_MAX_FETCH_FIELD, CONNECTION_MAX_FETCH_INC, CONNECTION_MAX_FETCH_DEC, 1, 99, 1, 0); ro_gui_wimp_event_register_numeric_field(w, CONNECTION_HOST_FETCH_FIELD, CONNECTION_HOST_FETCH_INC, CONNECTION_HOST_FETCH_DEC, 1, 99, 1, 0); ro_gui_wimp_event_register_numeric_field(w, CONNECTION_CACHE_FETCH_FIELD, CONNECTION_CACHE_FETCH_INC, CONNECTION_CACHE_FETCH_DEC, 1, 99, 1, 0); ro_gui_wimp_event_register_menu_selection(w, ro_gui_options_connection_update); ro_gui_wimp_event_register_button(w, CONNECTION_DEFAULT_BUTTON, ro_gui_options_connection_default); ro_gui_wimp_event_register_cancel(w, CONNECTION_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, CONNECTION_OK_BUTTON, ro_gui_options_connection_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpConnectConfig"); ro_gui_wimp_event_memorise(w); return true; }