static LONG ami_misc_req(const char *message, uint32 type) { LONG ret = 0; LOG("%s", message); #ifdef __amigaos4__ ret = TimedDosRequesterTags( TDR_TitleString, messages_get("NetSurf"), TDR_FormatString, message, TDR_GadgetString, messages_get("OK"), TDR_ImageType, type, TDR_Window, cur_gw ? cur_gw->shared->win : NULL, TAG_DONE); #else struct EasyStruct easyreq = { sizeof(struct EasyStruct), 0, messages_get("NetSurf"), message, messages_get("OK"), }; ret = EasyRequest(cur_gw ? cur_gw->shared->win : NULL, &easyreq, NULL); #endif return ret; }
int32 ami_warn_user_multi(const char *body, const char *opt1, const char *opt2, struct Window *win) { int res = 0; char *utf8text = ami_utf8_easy(body); char *utf8gadget1 = ami_utf8_easy(messages_get(opt1)); char *utf8gadget2 = ami_utf8_easy(messages_get(opt2)); char *utf8gadgets = ASPrintf("%s|%s", utf8gadget1, utf8gadget2); free(utf8gadget1); free(utf8gadget2); #ifdef __amigaos4__ res = TimedDosRequesterTags(TDR_ImageType, TDRIMAGE_WARNING, TDR_TitleString, messages_get("NetSurf"), TDR_FormatString, utf8text, TDR_GadgetString, utf8gadgets, TDR_Window, win, TAG_DONE); #else struct EasyStruct easyreq = { sizeof(struct EasyStruct), 0, messages_get("NetSurf"), utf8text, utf8gadgets, }; res = EasyRequest(win, &easyreq, NULL); #endif if(utf8text) free(utf8text); if(utf8gadgets) FreeVec(utf8gadgets); return res; }
void die(const char *error) { TimedDosRequesterTags(TDR_ImageType,TDRIMAGE_ERROR, TDR_TitleString,messages_get("NetSurf"), TDR_GadgetString,messages_get("OK"), // TDR_CharSet,106, TDR_FormatString,"%s", TDR_Arg1,error, TAG_DONE); exit(1); }
void warn_user(const char *warning, const char *detail) { char *utf8warning = ami_utf8_easy(messages_get(warning)); if(!utf8warning) utf8warning = warning; TimedDosRequesterTags(TDR_ImageType,TDRIMAGE_WARNING, TDR_TitleString,messages_get("NetSurf"), TDR_GadgetString,messages_get("OK"), // TDR_CharSet,106, TDR_FormatString,"%s\n%s", TDR_Arg1,utf8warning, TDR_Arg2,detail, TAG_DONE); if(utf8warning) free(utf8warning); }
int32 ami_warn_user_multi(const char *body, const char *opt1, const char *opt2, struct Window *win) { int res = 0; char *utf8text = ami_utf8_easy(body); char *utf8gadget1 = ami_utf8_easy(messages_get(opt1)); char *utf8gadget2 = ami_utf8_easy(messages_get(opt2)); char *utf8gadgets = ASPrintf("%s|%s", utf8gadget1, utf8gadget2); free(utf8gadget1); free(utf8gadget2); res = TimedDosRequesterTags(TDR_ImageType, TDRIMAGE_WARNING, TDR_TitleString, messages_get("NetSurf"), TDR_FormatString, utf8text, TDR_GadgetString, utf8gadgets, TDR_Window, win, TAG_DONE); if(utf8text) free(utf8text); if(utf8gadgets) FreeVec(utf8gadgets); return res; }
static void ami_menu_item_project_about(struct Hook *hook, APTR window, struct IntuiMessage *msg) { struct gui_window_2 *gwin; char *temp, *temp2; int sel; nsurl *url = NULL; nserror error; GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin); ami_set_pointer(gwin, GUI_POINTER_WAIT, false); temp = ASPrintf("%s|%s|%s", messages_get("OK"), messages_get("HelpCredits"), messages_get("HelpLicence")); temp2 = ami_utf8_easy(temp); FreeVec(temp); sel = TimedDosRequesterTags(TDR_ImageType,TDRIMAGE_INFO, TDR_TitleString, messages_get("NetSurf"), TDR_Window, gwin->win, TDR_GadgetString, temp2, #ifndef NDEBUG TDR_FormatString,"NetSurf %s\n%s\nBuild date %s\n\nhttp://www.netsurf-browser.org", #else TDR_FormatString,"NetSurf %s\n%s\n\nhttp://www.netsurf-browser.org", #endif TDR_Arg1,netsurf_version, #ifdef NS_AMIGA_CAIRO TDR_Arg2,"Cairo (OS4.1+) SObjs build", #else TDR_Arg2,"graphics.library static build", #endif TDR_Arg3,verdate, TAG_DONE); free(temp2); if(sel == 2) { error = nsurl_create("about:credits", &url); } else if(sel == 0) { error = nsurl_create("about:licence", &url); } if(url) { if (error == NSERROR_OK) { error = browser_window_create(BW_CREATE_HISTORY, url, NULL, NULL, NULL); nsurl_unref(url); } if (error != NSERROR_OK) { warn_user(messages_get_errorcode(error), 0); } } ami_reset_pointer(gwin); }
HOOKF(void, ami_menu_item_project_about, APTR, window, struct IntuiMessage *) { struct gui_window_2 *gwin; char *temp, *temp2; int sel; nsurl *url = NULL; nserror error = NSERROR_OK; GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin); ami_set_pointer(gwin, GUI_POINTER_WAIT, false); temp = ASPrintf("%s|%s|%s", messages_get("OK"), messages_get("HelpCredits"), messages_get("HelpLicence")); temp2 = ami_utf8_easy(temp); FreeVec(temp); #ifdef __amigaos4__ sel = TimedDosRequesterTags(TDR_ImageType,TDRIMAGE_INFO, TDR_TitleString, messages_get("NetSurf"), TDR_Window, gwin->win, TDR_GadgetString, temp2, TDR_FormatString,"NetSurf %s\nBuild date %s\n\nhttp://www.netsurf-browser.org", TDR_Arg1,netsurf_version, TDR_Arg2,verdate, TAG_DONE); #else struct EasyStruct about_req = { sizeof(struct EasyStruct), 0, "NetSurf", "NetSurf %s\nBuild date %s\n\nhttp://www.netsurf-browser.org", temp2, }; sel = EasyRequest(gwin->win, &about_req, NULL, netsurf_version, verdate); #endif free(temp2); if(sel == 2) { error = nsurl_create("about:credits", &url); } else if(sel == 0) { error = nsurl_create("about:licence", &url); } if(url) { if (error == NSERROR_OK) { error = browser_window_create(BW_CREATE_HISTORY, url, NULL, NULL, NULL); nsurl_unref(url); } if (error != NSERROR_OK) { amiga_warn_user(messages_get_errorcode(error), 0); } } ami_reset_pointer(gwin); }
void gui_cert_verify(struct browser_window *bw, hlcache_handle *c, const struct ssl_cert_info *certs, unsigned long num) { const struct ssl_cert_info *from; struct session_cert *to; struct session_data *data; struct tree *tree; struct node *node; long i; STRPTR yesorno,reqcontents; int res = 0; struct treeview_window *twin; assert(bw && c && certs); /* copy the certificate information */ data = calloc(1, sizeof(struct session_data)); if (!data) { warn_user("NoMemory", 0); return; } data->url = strdup(content_get_url(c)); if (!data->url) { free(data); warn_user("NoMemory", 0); return; } data->bw = bw; data->num = num; data->certs = calloc(num, sizeof(struct session_cert)); if (!data->certs) { free(data->url); free(data); warn_user("NoMemory", 0); return; } for (i = 0; i < (long)num; i++) { to = &data->certs[i]; from = &certs[i]; to->subject_t = strdup(from->subject); to->issuer_t = strdup(from->issuer); if ((!to->subject_t) || (!to->issuer_t)) { for (; i >= 0; i--) { to = &data->certs[i]; free(to->subject_t); free(to->issuer_t); } free(data->certs); free(data->url); free(data); warn_user("NoMemory", 0); return; } snprintf(to->version, sizeof data->certs->version, "%ld", from->version); snprintf(to->valid_from, sizeof data->certs->valid_from, "%s", from->not_before); snprintf(to->type, sizeof data->certs->type, "%d", from->cert_type); snprintf(to->valid_to, sizeof data->certs->valid_to, "%s", from->not_after); snprintf(to->serial, sizeof data->certs->serial, "%ld", from->serial); } tree = calloc(sizeof(struct tree), 1); if (!tree) { //ro_gui_cert_close(ssl_w); warn_user("NoMemory", 0); return; } tree->root = tree_create_folder_node(NULL, "Root"); if (!tree->root) { // ro_gui_cert_close(ssl_w); warn_user("NoMemory", 0); free(tree); tree = NULL; return; } tree->root->expanded = true; tree->handle = 0; tree->movable = false; tree->no_drag = true; tree->no_vscroll = true; tree->no_furniture = true; tree->single_selection = true; data->tree = tree; /* put the SSL names in the tree */ for (i = 0; i < (long)num; i++) { node = tree_create_leaf_node(tree->root, certs[i].subject); if (node) { node->data.data = TREE_ELEMENT_SSL; tree_set_node_sprite(node, "small_xxx", "small_xxx"); } } tree_initialise(tree); ami_open_tree(tree,AMI_TREE_SSLCERT); twin = (struct treeview_window *)data->tree->handle; if(yesorno = ASPrintf("%s|%s",messages_get("Accept"),messages_get("Reject"))) { if(reqcontents = ASPrintf("%s\n\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s", messages_get("SSLError"), messages_get("Subject"), to->subject_t, messages_get("Issuer"), to->issuer_t, messages_get("Version"), to->version, messages_get("ValidFrom"), to->valid_from, messages_get("ValidTo"), to->valid_to)) { res = TimedDosRequesterTags(TDR_ImageType,TDRIMAGE_QUESTION, TDR_Window,twin->win, TDR_TitleString,messages_get("NetSurf"), TDR_GadgetString,yesorno, TDR_FormatString,reqcontents, TAG_DONE); FreeVec(reqcontents); } FreeVec(yesorno); } if(res == 1) { ami_gui_cert_apply(data); } ami_gui_cert_close(data); }