diff options
author | François Revol <revol@free.fr> | 2014-01-01 19:23:28 +0100 |
---|---|---|
committer | François Revol <revol@free.fr> | 2014-01-04 19:44:05 +0100 |
commit | f713cdd90b1b13d790f5e062a28c729aa98f6933 (patch) | |
tree | dac796e22c539d1cda89cf410929472a610a9f42 /beos/scaffolding.cpp | |
parent | 1025a49cb6c0eee0b66ac74eb5f639001643fe90 (diff) | |
download | netsurf-f713cdd90b1b13d790f5e062a28c729aa98f6933.tar.gz netsurf-f713cdd90b1b13d790f5e062a28c729aa98f6933.tar.bz2 |
beos: Add credits and licence buttons to about box
We'll simplify it to just mention version infos like on atari.
Diffstat (limited to 'beos/scaffolding.cpp')
-rw-r--r-- | beos/scaffolding.cpp | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp index 1790cf06b..a67ab50f8 100644 --- a/beos/scaffolding.cpp +++ b/beos/scaffolding.cpp @@ -502,6 +502,7 @@ NSBaseView::MessageReceived(BMessage *message) case TOOLBAR_THROBBER: case TOOLBAR_EDIT: case CHOICES_SHOW: + case ABOUT_BUTTON: case APPLICATION_QUIT: if (Window()) Window()->DetachCurrentMessage(); @@ -781,11 +782,7 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m break; case B_ABOUT_REQUESTED: { - nsbeos_about(NULL); - /* XXX: doesn't work yet! bug in rsrc:/ - BString url("rsrc:/about.en.html,text/html"); - browser_window_create(url.String(), NULL, NULL, true, false); - */ + nsbeos_about(scaffold->top_level); break; } case B_NETPOSITIVE_DOWN: @@ -1198,6 +1195,43 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m break; case CHOICES_SHOW: break; + case ABOUT_BUTTON: + /* XXX: doesn't work yet! bug in rsrc:/ + BString url("rsrc:/about.en.html,text/html"); + browser_window_create(url.String(), NULL, NULL, true, false); + */ + { + int32 button; + if (message->FindInt32("which", &button) == B_OK) { + const char *goto_url = NULL; + nserror nserr; + nsurl *url; + switch (button) { + case 0: + goto_url = "about:credits"; + break; + case 1: + goto_url = "about:licence"; + break; + default: + break; + } + if (goto_url == NULL) + break; + nserr = nsurl_create(goto_url, &url); + if (nserr == NSERROR_OK) { + nserr = browser_window_navigate(bw, + url, NULL, + (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY | BROWSER_WINDOW_VERIFIABLE), + NULL, NULL, NULL); + nsurl_unref(url); + } + if (nserr != NSERROR_OK) { + warn_user(messages_get_errorcode(nserr), 0); + } + } + } + break; case APPLICATION_QUIT: netsurf_quit = true; break; @@ -1276,6 +1310,11 @@ NSBrowserWindow *nsbeos_get_bwindow_for_scaffolding(nsbeos_scaffolding *scaffold return scaffold->window; } +NSBaseView *nsbeos_get_baseview_for_scaffolding(nsbeos_scaffolding *scaffold) +{ + return scaffold->top_view; +} + static void recursively_set_menu_items_target(BMenu *menu, BHandler *handler) { menu->SetTargetForItems(handler); |