diff -r 000000000000 -r 1450b09d0cfd ginebra/chromejsobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ginebra/chromejsobject.h Tue May 04 12:39:35 2010 +0300 @@ -0,0 +1,165 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef _GINEBRA_CHROME_JS_OBJECT_H_ +#define _GINEBRA_CHROME_JS_OBJECT_H_ + +#include +#include +#include +#include "chromeview.h" + +// Comment out this define to disable logging via javascript. +#define ENABLE_LOG + +class ChromeWindow; +class QNetworkReply; +class QUrl; +class Download; + +/** + * \brief The ChromeJSObject class provides a javascript API to global or system-wide + * functionality. + */ +class ChromeJSObject : public QObject + +{ + Q_OBJECT + + friend class ChromeView; + + public: + ChromeJSObject(ChromeView* chrome); + + QList getDisplaySize() const; + Q_PROPERTY(QList displaySize READ getDisplaySize) + + // \brief Returns either "portrait" or "landscape". + QString getDisplayMode() const; + Q_PROPERTY(QString displayMode READ getDisplayMode) + + // \brief Returns the bounding rectangle of the content window. + QObject *getContentViewRect() const; + Q_PROPERTY(QObject *contentViewRect READ getContentViewRect) + +public slots: // Visible to javascript. + // Load a new chrome from \a url. + void loadChrome(const QString url); + + // Reload the current chrome. + void reloadChrome(); + +#ifdef USE_STATEMACHINE + void requestChrome(const QString &url); +#endif + void updateViewPort(); + void setViewPort(int x1, int y1, int x2, int y2); + void flipFromCurrentView(const QString& toId); + void flipToCurrentView(const QString& fromId); + + // Write string \a msg to debug output. + void alert(const QString msg); + + +#ifdef ENABLE_LOG + // Write string \a msg to log file "c:\Data\GinebraLog.txt". + void log(const QString msg); +#endif + + void setBackgroundColor(int r, int g, int b); // !!! This should be a property. + + // Toggle the visibility of the snippet with id \a id. + void toggleVisibility(const QString& id); + + // Show the snippet with id \a id. + void show(const QString& id, int x=0, int y=0); + + // Hide the snippet with id \a id. + void hide(const QString& id); + + void setLocation(const QString& id, int x, int y); + void setAnchor(const QString& id, const QString& anchor); + void toggleAttention(const QString & id); + void setVisibilityAnimator(const QString& elementId, const QString & animatorName); + void setAttentionAnimator(const QString& elementId, const QString & animatorName); + QString guessUrlFromString(const QString &s); + QString guessAndGotoUrl(const QString &s); + QString searchUrl(const QString &s); + void loadFromHistory(); + void clearHistory(); + void clearCookies(); + void clearCache(); + QString getLastUrl(); + int numberOfWindows(); + void loadLocalFile(); + void setViewofCurrentPage(); + +#ifdef USE_DOWNLOAD_MANAGER + void downloadCreated(Download * download); + void downloadStarted(Download * download); + void downloadProgress(Download * download); + void downloadFinished(Download * download); + void downloadPaused(Download * download, const QString & error); + void downloadCancelled(Download * download, const QString & error); + void downloadFailed(Download * download, const QString & error); + void downloadNetworkLoss(Download * download, const QString & error); + void downloadError(Download * download, const QString & error); +#endif + + signals: + // Sent when the chrome has finished loading. + void loadComplete(); + // Sent when the viewport has been resized + void viewPortResize(int x, int y, int w, int h); + // Sent when the display mode changes from landscape to protrait or vice versa. + void onDisplayModeChanged(const QString &orientation); + // Sent when the display mode change starts from landscape to protrait or vice versa. + void onDisplayModeChangeStart(const QString &orientation); + +#ifdef USE_STATEMACHINE + // Sent when the chrome wants to load a different chrome. + void onRequestChrome(const QString url); +#endif + +#ifdef USE_DOWNLOAD_MANAGER + void onDownloadCreated(int); + void onDownloadStarted(int, const QString &, int); + void onDownloadProgress(int, const QString &, int, int, int); + void onDownloadFinished(int, const QString &, int, int, int); + void onDownloadPaused(int, const QString &, int, int, int, const QString &); + void onDownloadCancelled(int, const QString &, int, int, int, const QString &); + void onDownloadFailed(int, const QString &, int, int, int, const QString &); + void onDownloadNetworkLoss(int, const QString &, int, int, int, const QString &); + void onDownloadError(int, const QString &, int, int, int, const QString &); +#endif + + protected: + void displayModeChanged(ChromeView::DisplayMode orientation); + void displayModeChangeStart(ChromeView::DisplayMode orientation); + void displayOrientationChanged(int angle); + QString getLogPath(); + +#ifdef ENABLE_LOG + void initLogFile(); +#endif + + private: + ChromeView* m_chromeView; +}; + +#endif