#ifndef WebSettings_h
#define WebSettings_h
#include "BlackBerryGlobal.h"
#include "BlackBerryPlatformMisc.h"
namespace BlackBerry {
namespace WebKit {
class WebSettings;
class WebSettingsPrivate;
struct BLACKBERRY_EXPORT WebSettingsDelegate {
virtual ~WebSettingsDelegate() { }
virtual void didChangeSettings(WebSettings*) = 0;
};
class BLACKBERRY_EXPORT WebSettings {
public:
static WebSettings* createFromStandardSettings(WebSettingsDelegate* = 0);
~WebSettings();
static WebSettings* standardSettings();
void setDelegate(WebSettingsDelegate*);
WebSettingsDelegate* delegate();
static void addSupportedObjectPluginMIMEType(const BlackBerry::Platform::String&);
static bool isSupportedObjectMIMEType(const BlackBerry::Platform::String&);
bool xssAuditorEnabled() const;
void setXSSAuditorEnabled(bool);
bool loadsImagesAutomatically() const;
void setLoadsImagesAutomatically(bool);
bool shouldDrawBorderWhileLoadingImages() const;
void setShouldDrawBorderWhileLoadingImages(bool);
bool isJavaScriptEnabled() const;
void setJavaScriptEnabled(bool);
bool isPrivateBrowsingEnabled() const;
void setPrivateBrowsingEnabled(bool);
void setDeviceSupportsMouse(bool);
bool deviceSupportsMouse() const;
int defaultFixedFontSize() const;
void setDefaultFixedFontSize(int);
int defaultFontSize() const;
void setDefaultFontSize(int);
int minimumFontSize() const;
void setMinimumFontSize(int);
BlackBerry::Platform::String serifFontFamily() const;
void setSerifFontFamily(const BlackBerry::Platform::String&);
BlackBerry::Platform::String fixedFontFamily() const;
void setFixedFontFamily(const BlackBerry::Platform::String&);
BlackBerry::Platform::String sansSerifFontFamily() const;
void setSansSerifFontFamily(const BlackBerry::Platform::String&);
BlackBerry::Platform::String standardFontFamily() const;
void setStandardFontFamily(const BlackBerry::Platform::String&);
void setDownloadableBinaryFontsEnabled(bool);
bool downloadableBinaryFontsEnabled() const;
BlackBerry::Platform::String userAgentString() const;
void setUserAgentString(const BlackBerry::Platform::String&);
BlackBerry::Platform::String defaultTextEncodingName() const;
void setDefaultTextEncodingName(const BlackBerry::Platform::String&);
bool isZoomToFitOnLoad() const;
void setZoomToFitOnLoad(bool);
enum TextReflowMode { TextReflowDisabled, TextReflowEnabled, TextReflowEnabledOnlyForBlockZoom };
TextReflowMode textReflowMode() const;
void setTextReflowMode(TextReflowMode);
bool isScrollbarsEnabled() const;
void setScrollbarsEnabled(bool);
bool canJavaScriptOpenWindowsAutomatically() const;
void setJavaScriptOpenWindowsAutomatically(bool);
bool arePluginsEnabled() const;
void setPluginsEnabled(bool);
bool isGeolocationEnabled() const;
void setGeolocationEnabled(bool);
bool doesGetFocusNodeContext() const;
void setGetFocusNodeContext(bool);
BlackBerry::Platform::String userStyleSheetLocation();
void setUserStyleSheetLocation(const BlackBerry::Platform::String&);
bool areLinksHandledExternally() const;
void setAreLinksHandledExternally(bool);
void setAllowCrossSiteRequests(bool);
bool allowCrossSiteRequests() const;
bool isUserScalable() const;
void setUserScalable(bool);
int viewportWidth() const;
void setViewportWidth(int);
double initialScale() const;
void setInitialScale(double);
int firstScheduledLayoutDelay() const;
void setFirstScheduledLayoutDelay(int);
bool shouldHandlePatternUrls() const;
void setShouldHandlePatternUrls(bool);
bool areCookiesEnabled() const;
void setAreCookiesEnabled(bool);
bool isLocalStorageEnabled() const;
void setIsLocalStorageEnabled(bool);
bool isDatabasesEnabled() const;
void setIsDatabasesEnabled(bool);
bool isAppCacheEnabled() const;
void setIsAppCacheEnabled(bool);
unsigned long long localStorageQuota() const;
void setLocalStorageQuota(unsigned long long);
unsigned long long sessionStorageQuota() const;
void setSessionStorageQuota(unsigned long long);
void setMaximumPagesInCache(int);
int maximumPagesInCache() const;
BlackBerry::Platform::String localStoragePath() const;
void setLocalStoragePath(const BlackBerry::Platform::String&);
BlackBerry::Platform::String indexedDataBasePath() const;
void setIndexedDataBasePath(const BlackBerry::Platform::String&);
BlackBerry::Platform::String databasePath() const;
void setDatabasePath(const BlackBerry::Platform::String&);
BlackBerry::Platform::String appCachePath() const;
void setAppCachePath(const BlackBerry::Platform::String&);
BlackBerry::Platform::String pageGroupName() const;
void setPageGroupName(const BlackBerry::Platform::String&);
bool isEmailMode() const;
void setEmailMode(bool enable);
bool shouldRenderAnimationsOnScrollOrZoom() const;
void setShouldRenderAnimationsOnScrollOrZoom(bool enable);
unsigned overScrollColor() const;
void setOverScrollColor(unsigned);
bool isEnableDefaultOverScrollBackground() const;
void setEnableDefaultOverScrollBackground(bool);
unsigned backgroundColor() const;
void setBackgroundColor(unsigned);
bool isWritingDirectionRTL() const;
void setWritingDirectionRTL(bool);
bool useWebKitCache() const;
void setUseWebKitCache(bool);
bool isFrameFlatteningEnabled() const;
void setFrameFlatteningEnabled(bool);
unsigned maxPluginInstances() const;
void setMaxPluginInstances(unsigned num);
bool areWebSocketsEnabled() const;
void setWebSocketsEnabled(bool);
bool isSpatialNavigationEnabled() const;
void setSpatialNavigationEnabled(bool);
bool isAsynchronousSpellCheckingEnabled() const;
void setAsynchronousSpellCheckingEnabled(bool) const;
bool fullScreenVideoCapable() const;
void setFullScreenVideoCapable(bool);
bool isCredentialAutofillEnabled() const;
void setCredentialAutofillEnabled(bool);
bool isFormAutofillEnabled() const;
void setFormAutofillEnabled(bool);
double devicePixelRatio() const;
void setDevicePixelRatio(double);
bool isBackingStoreEnabled() const;
void setBackingStoreEnabled(bool);
bool applyDeviceScaleFactorInCompositor() const;
void setApplyDeviceScaleFactorInCompositor(bool);
bool isTextAutosizingEnabled() const;
void setTextAutosizingEnabled(bool);
private:
WebSettingsPrivate* m_private;
WebSettings();
DISABLE_COPY(WebSettings);
};
class BLACKBERRY_EXPORT WebSettingsTransaction {
public:
WebSettingsTransaction(WebSettings* settings)
: m_settings(settings)
, m_savedDelegate(0)
{
if (!settings)
return;
m_savedDelegate = settings->delegate();
settings->setDelegate(0);
}
~WebSettingsTransaction()
{
if (!m_settings || !m_savedDelegate)
return;
m_settings->setDelegate(m_savedDelegate);
m_savedDelegate->didChangeSettings(m_settings);
}
private:
WebSettingsTransaction(const WebSettingsTransaction&);
WebSettingsTransaction& operator=(const WebSettingsTransaction&);
WebSettings* m_settings;
WebSettingsDelegate* m_savedDelegate;
};
} }
#endif // WebSettings_h