xref: /haiku/src/apps/webpositive/BrowserApp.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
1 /*
2  * Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com>
3  * Copyright (C) 2010 Stephan Aßmus <superstippi@gmx.de>
4  *
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *	notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *	notice, this list of conditions and the following disclaimer in the
14  *	documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
20  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 #ifndef BROWSER_APP_H
29 #define BROWSER_APP_H
30 
31 
32 #include <Application.h>
33 #include <Catalog.h>
34 #include <NetworkCookieJar.h>
35 #include <Rect.h>
36 #include <UrlContext.h>
37 
38 
39 class ConsoleWindow;
40 class CookieWindow;
41 class DownloadWindow;
42 class BrowserWindow;
43 class SettingsMessage;
44 class SettingsWindow;
45 
46 
47 class BrowserApp : public BApplication {
48 public:
49 								BrowserApp();
50 	virtual						~BrowserApp();
51 
52 	virtual	void				AboutRequested();
53 	virtual	void				ArgvReceived(int32 agrc, char** argv);
54 	virtual	void				MessageReceived(BMessage* message);
55 	virtual	void				RefsReceived(BMessage* message);
56 	virtual	void				ReadyToRun();
57 	virtual	bool				QuitRequested();
58 
59 private:
60 			void				_RefsReceived(BMessage* message,
61 									int32* pagesCreated = NULL,
62 									bool* fullscreen = NULL);
63 			BrowserWindow*		_CreateNewPage(const BString& url,
64 									BrowserWindow* window = NULL,
65 									bool fullscreen = false,
66 									bool useBlankTab = true);
67 			BrowserWindow*		_CreateNewWindow(const BString& url,
68 									bool fullscreen = false);
69 			void				_CreateNewTab(BrowserWindow* window,
70 									const BString& url, bool select);
71 			void				_ShowWindow(const BMessage* message,
72 									BWindow* window);
73 
74 private:
75 			int					fWindowCount;
76 			BRect				fLastWindowFrame;
77 			BMessage*			fLaunchRefsMessage;
78 			bool				fInitialized;
79 
80 			SettingsMessage*	fSettings;
81 			SettingsMessage*	fCookies;
82 			SettingsMessage*	fSession;
83 			BReference<BPrivate::Network::BUrlContext>	fContext;
84 
85 			DownloadWindow*		fDownloadWindow;
86 			SettingsWindow*		fSettingsWindow;
87 			ConsoleWindow*		fConsoleWindow;
88 			CookieWindow*		fCookieWindow;
89 };
90 
91 
92 extern const char* kApplicationSignature;
93 extern const char* kApplicationName;
94 
95 
96 #endif // BROWSER_APP_H
97 
98