void BrowserApp::_RefsReceived(BMessage* message, int32* _pagesCreated, bool* _fullscreen) { int32 pagesCreated = 0; bool fullscreen; if (message->FindBool("fullscreen", &fullscreen) != B_OK) fullscreen = false; entry_ref ref; for (int32 i = 0; message->FindRef("refs", i, &ref) == B_OK; i++) { BEntry entry(&ref, true); if (!entry.Exists()) continue; BPath path; if (entry.GetPath(&path) != B_OK) continue; BString url; url << path.Path(); _CreateNewPage(url, fullscreen); pagesCreated++; } BString url; for (int32 i = 0; message->FindString("url", i, &url) == B_OK; i++) { _CreateNewPage(url, fullscreen); pagesCreated++; } if (_pagesCreated != NULL) *_pagesCreated = pagesCreated; if (_fullscreen != NULL) *_fullscreen = fullscreen; }
void BrowserApp::MessageReceived(BMessage* message) { switch (message->what) { case PRELOAD_BROWSING_HISTORY: // Accessing the default instance will load the history from disk. BrowsingHistory::DefaultInstance(); break; case B_SILENT_RELAUNCH: _CreateNewPage(""); break; case NEW_WINDOW: { BString url; if (message->FindString("url", &url) != B_OK) break; _CreateNewWindow(url); break; } case NEW_TAB: { BrowserWindow* window; if (message->FindPointer("window", reinterpret_cast<void**>(&window)) != B_OK) break; BString url; message->FindString("url", &url); bool select = false; message->FindBool("select", &select); _CreateNewTab(window, url, select); break; } case WINDOW_OPENED: fWindowCount++; fDownloadWindow->SetMinimizeOnClose(false); break; case WINDOW_CLOSED: fWindowCount--; message->FindRect("window frame", &fLastWindowFrame); if (fWindowCount <= 0) PostMessage(B_QUIT_REQUESTED); break; case SHOW_DOWNLOAD_WINDOW: _ShowWindow(message, fDownloadWindow); break; case SHOW_SETTINGS_WINDOW: _ShowWindow(message, fSettingsWindow); break; default: BApplication::MessageReceived(message); break; } }
void BrowserApp::_RefsReceived(BMessage* message, int32* _pagesCreated, bool* _fullscreen) { int32 pagesCreated = 0; BrowserWindow* window = NULL; if (message->FindPointer("window", (void**)&window) != B_OK) window = NULL; bool fullscreen; if (message->FindBool("fullscreen", &fullscreen) != B_OK) fullscreen = false; entry_ref ref; for (int32 i = 0; message->FindRef("refs", i, &ref) == B_OK; i++) { BEntry entry(&ref, true); if (!entry.Exists()) continue; BPath path; if (entry.GetPath(&path) != B_OK) continue; BUrl url(path); window = _CreateNewPage(url.UrlString(), window, fullscreen, pagesCreated == 0); pagesCreated++; } BString url; for (int32 i = 0; message->FindString("url", i, &url) == B_OK; i++) { window = _CreateNewPage(url, window, fullscreen, pagesCreated == 0); pagesCreated++; } if (_pagesCreated != NULL) *_pagesCreated = pagesCreated; if (_fullscreen != NULL) *_fullscreen = fullscreen; }