summaryrefslogtreecommitdiff
path: root/atari
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-02-14 18:21:11 +0000
committerVincent Sanders <vince@netsurf-browser.org>2013-02-18 11:23:48 +0000
commitb112dec78d5e8289ded3f61db96e495690ae96b5 (patch)
tree9babaed21ed2eb841b8d398e28814544c73656d9 /atari
parent3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (diff)
downloadnetsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.gz
netsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.bz2
change browser_window_create and refactor all callsites
Diffstat (limited to 'atari')
-rw-r--r--atari/ctxmenu.c34
-rw-r--r--atari/deskmenu.c80
-rw-r--r--atari/gui.c30
3 files changed, 120 insertions, 24 deletions
diff --git a/atari/ctxmenu.c b/atari/ctxmenu.c
index 859aeea5b..2a6d6e2ba 100644
--- a/atari/ctxmenu.c
+++ b/atari/ctxmenu.c
@@ -208,10 +208,11 @@ void context_popup(struct gui_window * gw, short x, short y)
case POP_CTX_SAVE_LINK_AS:
if (ctx->ccdata.link_url != NULL) {
nsurl *url;
- if (nsurl_create(ctx->ccdata.link_url, &url) != NSERROR_OK) {
- warn_user("NoMemory", 0);
- } else {
- browser_window_navigate(
+ nserror error;
+
+ error = nsurl_create(ctx->ccdata.link_url, &url);
+ if (error == NSERROR_OK) {
+ error = browser_window_navigate(
gw->browser->bw,
url,
hlcache_handle_get_url(gw->browser->bw->current_content),
@@ -223,6 +224,9 @@ void context_popup(struct gui_window * gw, short x, short y)
);
nsurl_unref(url);
}
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ }
}
break;
@@ -244,12 +248,22 @@ void context_popup(struct gui_window * gw, short x, short y)
case POP_CTX_OPEN_NEW:
if ((ctx->flags & CNT_HREF) && ctx->ccdata.link_url) {
- browser_window_create(
- ctx->ccdata.link_url,
- gw->browser->bw,
- nsurl_access(hlcache_handle_get_url(gw->browser->bw->current_content)),
- true, false
- );
+ nsurl *url;
+ nserror error;
+
+ error = nsurl_create(ctx->ccdata.link_url, &url);
+ if (error == NSERROR_OK) {
+ error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE |
+ BROWSER_WINDOW_GO_FLAG_HISTORY,
+ url,
+ hlcache_handle_get_url(gw->browser->bw->current_content),
+ gw->browser->bw
+ );
+ nsurl_unref(url);
+ }
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ }
}
break;
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 );
}
}
}
diff --git a/atari/gui.c b/atari/gui.c
index a59caa8e5..4a0c70537 100644
--- a/atari/gui.c
+++ b/atari/gui.c
@@ -1027,6 +1027,9 @@ static void gui_init2(int argc, char** argv)
int main(int argc, char** argv)
{
char messages[PATH_MAX];
+ const char *addr;
+ nsurl *url;
+ nserror error;
setbuf(stderr, NULL);
setbuf(stdout, NULL);
@@ -1056,10 +1059,29 @@ int main(int argc, char** argv)
graf_mouse( ARROW , NULL);
LOG(("Creating initial browser window..."));
- browser_window_create(option_homepage_url, 0, 0, true, false);
-
- LOG(("Entering NetSurf mainloop..."));
- netsurf_main_loop();
+ 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);
+ } else {
+ LOG(("Entering NetSurf mainloop..."));
+ netsurf_main_loop();
+ }
netsurf_exit();
LOG(("ApplExit"));