#ifndef WebSettings_h
#define WebSettings_h
#include "BlackBerryGlobal.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 char*);
static bool isSupportedObjectMIMEType(const WebString&);
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);
int defaultFixedFontSize() const;
void setDefaultFixedFontSize(int);
int defaultFontSize() const;
void setDefaultFontSize(int);
int minimumFontSize() const;
void setMinimumFontSize(int);
WebString serifFontFamily() const;
void setSerifFontFamily(const char*);
WebString fixedFontFamily() const;
void setFixedFontFamily(const char*);
WebString sansSerifFontFamily() const;
void setSansSerifFontFamily(const char*);
WebString standardFontFamily() const;
void setStandardFontFamily(const char*);
void setDownloadableBinaryFontsEnabled(bool);
bool downloadableBinaryFontsEnabled() const;
WebString userAgentString() const;
void setUserAgentString(const WebString&);
WebString defaultTextEncodingName() const;
void setDefaultTextEncodingName(const char*);
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);
WebString userStyleSheetString() const;
void setUserStyleSheetString(const char*);
WebString userStyleSheetLocation();
void setUserStyleSheetLocation(const char*);
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);
void setMaximumPagesInCache(int);
int maximumPagesInCache() const;
WebString localStoragePath() const;
void setLocalStoragePath(const WebString&);
WebString databasePath() const;
void setDatabasePath(const WebString&);
WebString appCachePath() const;
void setAppCachePath(const WebString&);
WebString pageGroupName() const;
void setPageGroupName(const WebString&);
bool isEmailMode() const;
void setEmailMode(bool enable);
bool shouldRenderAnimationsOnScrollOrZoom() const;
void setShouldRenderAnimationsOnScrollOrZoom(bool enable);
unsigned overZoomColor() const;
void setOverZoomColor(unsigned);
WebString overScrollImagePath() const;
void setOverScrollImagePath(const char*);
unsigned backgroundColor() const;
void setBackgroundColor(unsigned);
bool isWritingDirectionRTL() const;
void setWritingDirectionRTL(bool);
bool useWebKitCache() const;
void setUseWebKitCache(bool);
bool isFrameFlatteningEnabled() const;
void setFrameFlatteningEnabled(bool);
bool isDirectRenderingToWindowEnabled() const;
void setDirectRenderingToWindowEnabled(bool);
unsigned maxPluginInstances() const;
void setMaxPluginInstances(unsigned num);
bool areWebSocketsEnabled() const;
void setWebSocketsEnabled(bool);
bool isSpatialNavigationEnabled() const;
void setSpatialNavigationEnabled(bool);
private:
WebSettingsPrivate* m_private;
WebSettings();
WebSettings(const 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