PageClientBlackBerry.h   [plain text]


/*
 * Copyright (C) 2009, 2010, 2011, 2012 Research In Motion Limited. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef PageClientBlackBerry_h
#define PageClientBlackBerry_h

#include "Credential.h"
#include "Cursor.h"
#include "WebPageClient.h"

namespace BlackBerry {
    namespace Platform {
        class NetworkStreamFactory;
        namespace Graphics {
            class Window;
        }
    }
}

namespace WebCore {
    class IntRect;
    class IntSize;
    class KURL;
    class PluginView;
    class ProtectionSpace;
}

class PageClientBlackBerry {
public:
    enum SaveCredentialType {
        SaveCredentialNeverForThisSite = 0,
        SaveCredentialNotNow,
        SaveCredentialYes
    };

    virtual void setCursor(WebCore::PlatformCursor) = 0;
    virtual BlackBerry::Platform::NetworkStreamFactory* networkStreamFactory() = 0;
    virtual BlackBerry::Platform::Graphics::Window* platformWindow() const = 0;
    virtual void setPreventsScreenDimming(bool) = 0;
    virtual void showVirtualKeyboard(bool) = 0;
    virtual void ensureContentVisible(bool centerInView = true) = 0;
    virtual void zoomToContentRect(const WebCore::IntRect&) = 0;
    virtual void registerPlugin(WebCore::PluginView*, bool) = 0;
    virtual void notifyPageOnLoad() = 0;
    virtual bool shouldPluginEnterFullScreen(WebCore::PluginView*, const char* uniquePluginPrefix) = 0;
    virtual void didPluginEnterFullScreen(WebCore::PluginView*, const char* uniquePluginPrefix) = 0;
    virtual void didPluginExitFullScreen(WebCore::PluginView*, const char* uniquePluginPrefix) = 0;
    virtual void onPluginStartBackgroundPlay(WebCore::PluginView*, const char* uniquePluginPrefix) = 0;
    virtual void onPluginStopBackgroundPlay(WebCore::PluginView*, const char* uniquePluginPrefix) = 0;
    virtual bool lockOrientation(bool landscape) = 0;
    virtual void unlockOrientation() = 0;
    virtual int orientation() const = 0;
    virtual double currentZoomFactor() const = 0;
    virtual WebCore::IntSize viewportSize() const = 0;
    virtual int showAlertDialog(BlackBerry::WebKit::WebPageClient::AlertType) = 0;
    virtual bool isActive() const = 0;
    virtual bool isVisible() const = 0;
    virtual WebCore::Credential authenticationChallenge(const WebCore::KURL&, const WebCore::ProtectionSpace&) = 0;
    virtual SaveCredentialType notifyShouldSaveCredential(bool) = 0;
};

#endif // PageClientBlackBerry_h