1db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block/*
2db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
3db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
4db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2006 George Staikos <staikos@kde.org>
5db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2006 Dirk Mueller <mueller@kde.org>
6db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2006 Zack Rusin <zack@kde.org>
7db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2006 Simon Hausmann <hausmann@kde.org>
8db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
9db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * All rights reserved.
10db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
11db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Redistribution and use in source and binary forms, with or without
12db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * modification, are permitted provided that the following conditions
13db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * are met:
14db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 1. Redistributions of source code must retain the above copyright
15db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *    notice, this list of conditions and the following disclaimer.
16db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 2. Redistributions in binary form must reproduce the above copyright
17db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *    notice, this list of conditions and the following disclaimer in the
18db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *    documentation and/or other materials provided with the distribution.
19db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
20db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
21db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
24db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
28db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block */
32db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
33db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#ifndef launcherwindow_h
34db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#define launcherwindow_h
35db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
36db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QtGui>
37db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QtNetwork/QNetworkRequest>
38db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
39db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if defined(QT_CONFIGURED_WITH_OPENGL)
40db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QtOpenGL/QGLWidget>
41db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
42db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
43db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if !defined(QT_NO_PRINTER)
44db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QPrintPreviewDialog>
45db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
46db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
47db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#ifndef QT_NO_UITOOLS
48db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QtUiTools/QUiLoader>
49db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
50db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
51db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <QDebug>
52db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
53db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <cstdio>
54db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qevent.h>
55db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qwebelement.h>
56db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qwebframe.h>
57db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qwebinspector.h>
58db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qwebsettings.h>
59db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
60db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#ifdef Q_WS_MAEMO_5
61db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <qx11info_x11.h>
62db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
63db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
642bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "DumpRenderTreeSupportQt.h"
65db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "mainwindow.h"
66db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "urlloader.h"
67db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "utils.h"
68db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "webinspector.h"
69db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "webpage.h"
70db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "webview.h"
71db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
72db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#ifdef Q_WS_MAEMO_5
73db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <X11/Xatom.h>
74db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include <X11/Xlib.h>
75db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#undef KeyPress
76db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
77db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QPropertyAnimation;
7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
80dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WindowOptions {
81dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochpublic:
82dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    WindowOptions()
83dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        : useGraphicsView(false)
84dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useCompositing(true)
85dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useTiledBackingStore(false)
86dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useWebGL(false)
87f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN)
88dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useFrameFlattening(true)
89dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#else
90dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useFrameFlattening(false)
91dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif
92dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , cacheWebView(false)
93dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , showFrameRate(false)
94dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , resizesToContents(false)
95dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , viewportUpdateMode(QGraphicsView::MinimalViewportUpdate)
962fc2651226baac27029e38c9d6ef883fa32084dbSteve Block        , useLocalStorage(false)
972fc2651226baac27029e38c9d6ef883fa32084dbSteve Block        , useOfflineStorageDatabase(false)
982fc2651226baac27029e38c9d6ef883fa32084dbSteve Block        , useOfflineWebApplicationCache(false)
992fc2651226baac27029e38c9d6ef883fa32084dbSteve Block        , offlineStorageDefaultQuotaSize(0)
100dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if defined(QT_CONFIGURED_WITH_OPENGL)
101dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch        , useQGLWidgetViewport(false)
102dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif
1032bde8e466a4451c7319e3a072d118917957d6554Steve Block#if defined(Q_WS_X11)
1042bde8e466a4451c7319e3a072d118917957d6554Steve Block        , useTestFonts(false)
1052bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif
1062bde8e466a4451c7319e3a072d118917957d6554Steve Block        , printLoadedUrls(false)
1072daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if defined(Q_OS_SYMBIAN)
1082daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch        , startMaximized(true)
1092daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#else
1102daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch        , startMaximized(false)
1112daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#endif
112dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    {
113dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    }
114dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
115dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useGraphicsView;
116dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useCompositing;
117dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useTiledBackingStore;
118dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useWebGL;
119dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useFrameFlattening;
120dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool cacheWebView;
121dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool showFrameRate;
122dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool resizesToContents;
123dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    QGraphicsView::ViewportUpdateMode viewportUpdateMode;
1242fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    bool useLocalStorage;
1252fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    bool useOfflineStorageDatabase;
1262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    bool useOfflineWebApplicationCache;
1272fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    quint64 offlineStorageDefaultQuotaSize;
128dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if defined(QT_CONFIGURED_WITH_OPENGL)
129dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    bool useQGLWidgetViewport;
130dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif
1312bde8e466a4451c7319e3a072d118917957d6554Steve Block#if defined(Q_WS_X11)
1322bde8e466a4451c7319e3a072d118917957d6554Steve Block    bool useTestFonts;
1332bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif
1342bde8e466a4451c7319e3a072d118917957d6554Steve Block    bool printLoadedUrls;
135dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    QUrl inspectorUrl;
136bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    quint16 remoteInspectorPort;
1372daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    bool startMaximized;
138dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch};
139dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
140db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockclass LauncherWindow : public MainWindow {
141db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    Q_OBJECT
142db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
143db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockpublic:
144dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    LauncherWindow(WindowOptions* data = 0, QGraphicsScene* sharedScene = 0);
145db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    virtual ~LauncherWindow();
146db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
147db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    virtual void keyPressEvent(QKeyEvent* event);
148db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void grabZoomKeys(bool grab);
149db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
150db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void sendTouchEvent();
151db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
152db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    bool eventFilter(QObject* obj, QEvent* event);
153db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
154db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockprotected slots:
155db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void loadStarted();
156db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void loadFinished();
157db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
158db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void showLinkHover(const QString &link, const QString &toolTip);
159db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
160db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void zoomIn();
161db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void zoomOut();
162db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void resetZoom();
163db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleZoomTextOnly(bool on);
164db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void zoomAnimationFinished();
165db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
166db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void print();
167db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void screenshot();
168db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
169db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void setEditable(bool on);
170db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
171db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    /* void dumpPlugins() */
172db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void dumpHtml();
173db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
1742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    void loadURLListFromFile();
1752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
176db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void setTouchMocking(bool on);
177f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick    void toggleWebView(bool graphicsBased);
178db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleAcceleratedCompositing(bool toggle);
179db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleTiledBackingStore(bool toggle);
180db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleResizesToContents(bool toggle);
181db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleWebGL(bool toggle);
182db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleSpatialNavigation(bool b);
183db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleFullScreenMode(bool enable);
184db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleFrameFlattening(bool toggle);
185db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleInterruptingJavaScriptEnabled(bool enable);
186db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleJavascriptCanOpenWindows(bool enable);
1872fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void toggleAutoLoadImages(bool enable);
1882fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void togglePlugins(bool enable);
1892fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void toggleLocalStorage(bool toggle);
1902fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void toggleOfflineStorageDatabase(bool toggle);
1912fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void toggleOfflineWebApplicationCache(bool toggle);
1922fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    void setOfflineStorageDefaultQuota();
193db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
194db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if defined(QT_CONFIGURED_WITH_OPENGL)
195db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void toggleQGLWidgetViewport(bool enable);
196db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
197db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
198db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void changeViewportUpdateMode(int mode);
199f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick    void animatedFlip();
200f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick    void animatedYFlip();
201db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void selectElements();
202db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void showFPS(bool enable);
203db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void showUserAgentDialog();
204db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2052bde8e466a4451c7319e3a072d118917957d6554Steve Block    void printURL(const QUrl&);
2062bde8e466a4451c7319e3a072d118917957d6554Steve Block
207db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockpublic slots:
208db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    LauncherWindow* newWindow();
209db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    LauncherWindow* cloneWindow();
210db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void updateFPS(int fps);
211db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
212db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blocksignals:
213db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void enteredFullScreenMode(bool on);
214db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
215db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockprivate:
216dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    void init();
21768513a70bcd92384395513322f1b801e7bf9c729Steve Block    void initializeView();
218db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void createChrome();
219dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    void applyPrefs();
220db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    void applyZoom();
221db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
22268513a70bcd92384395513322f1b801e7bf9c729Steve Block    bool isGraphicsBased() const;
22368513a70bcd92384395513322f1b801e7bf9c729Steve Block
224db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockprivate:
225dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    static QVector<int> m_zoomLevels;
226db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    int m_currentZoom;
227db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2282daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    UrlLoader* m_urlLoader;
2292daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
230db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    QWidget* m_view;
231db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    WebInspector* m_inspector;
232db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
233dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    WindowOptions m_windowOptions;
234dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
235db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    QAction* m_formatMenuAction;
236db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
237db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    QPropertyAnimation* m_zoomAnimation;
238db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    QList<QTouchEvent::TouchPoint> m_touchPoints;
239db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    bool m_touchMocking;
2402fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
2412fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    QString m_inputUrl;
242db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block};
243db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
244db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif
245