From b112dec78d5e8289ded3f61db96e495690ae96b5 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 14 Feb 2013 18:21:11 +0000 Subject: change browser_window_create and refactor all callsites --- atari/deskmenu.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 70 insertions(+), 10 deletions(-) (limited to 'atari/deskmenu.c') diff --git a/atari/deskmenu.c b/atari/deskmenu.c index df31ba012..0cb8409b9 100644 --- a/atari/deskmenu.c +++ b/atari/deskmenu.c @@ -148,18 +148,59 @@ static void __CDECL evnt_menu(WINDOW * win, short buff[8]) static void __CDECL menu_about(short item, short title, void *data) { - LOG(("%s", __FUNCTION__)); + nsurl *url; + nserror error; char buf[PATH_MAX]; + + LOG(("%s", __FUNCTION__)); strcpy((char*)&buf, "file://"); strncat((char*)&buf, (char*)"./doc/README.TXT", PATH_MAX - (strlen("file://")+1) ); - browser_window_create((char*)&buf, 0, 0, true, false); + + error = nsurl_create(buf, &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE | + BROWSER_WINDOW_GO_FLAG_HISTORY, + url, + NULL, + NULL, + NULL); + nsurl_unref(url); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } } static void __CDECL menu_new_win(short item, short title, void *data) { + nsurl *url; + nserror error; + const char *addr; + LOG(("%s", __FUNCTION__)); - browser_window_create(option_homepage_url, 0, 0, true, false); + + if (nsoption_charp(homepage_url) != NULL) { + addr = nsoption_charp(homepage_url); + } else { + addr = NETSURF_HOMEPAGE; + } + + /* create an initial browser window */ + error = nsurl_create(addr, &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE | + BROWSER_WINDOW_GO_FLAG_HISTORY, + url, + NULL, + NULL, + NULL); + nsurl_unref(url); + + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } } static void __CDECL menu_open_url(short item, short title, void *data) @@ -170,7 +211,12 @@ static void __CDECL menu_open_url(short item, short title, void *data) gw = input_window; if( gw == NULL ) { - bw = browser_window_create("", 0, 0, true, false); + browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE | + BROWSER_WINDOW_GO_FLAG_HISTORY, + NULL, + NULL, + NULL, + &bw); gw = bw->window; } /* Loose focus: */ @@ -185,17 +231,31 @@ static void __CDECL menu_open_url(short item, short title, void *data) static void __CDECL menu_open_file(short item, short title, void *data) { - struct gui_window * gw; - struct browser_window * bw ; LOG(("%s", __FUNCTION__)); const char * filename = file_select(messages_get("OpenFile"), ""); if( filename != NULL ){ - char * url = local_file_to_url( filename ); - if( url ){ - bw = browser_window_create(url, NULL, NULL, true, false); - free( url ); + char * urltxt = local_file_to_url( filename ); + if( urltxt ){ + nsurl *url; + nserror error; + + error = nsurl_create(urltxt, &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE | + BROWSER_WINDOW_GO_FLAG_HISTORY, + url, + NULL, + NULL, + NULL); + nsurl_unref(url); + + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } + free( urltxt ); } } } -- cgit v1.2.3