Title: [100056] trunk/Source/WebKit2
Revision
100056
Author
[email protected]
Date
2011-11-11 18:10:55 -0800 (Fri, 11 Nov 2011)

Log Message

[GTK][WEBKIT2] Add font and charset properties to WebKitWebSettings
https://bugs.webkit.org/show_bug.cgi?id=68996

Patch by Nayan Kumar K <[email protected]> on 2011-11-11
Reviewed by Martin Robinson.

Provision to query and set the font related properties (such as
font-family, font-size) and charset properties (such as default-
charset) is added.

* UIProcess/API/gtk/WebKitSettings.cpp: Added font and encoding properties.
(webKitSettingsSetProperty): GObject set property function.
(webKitSettingsGetProperty): GObject get property function.
(webkit_settings_class_init): Few more signals installed.
(webkit_settings_init): Initialization of instance variables.
(webkit_web_settings_get_default_font_family): Get 'default-font-family'.
(webkit_web_settings_set_default_font_family): Set 'default-font-family'.
(webkit_web_settings_get_monospace_font_family): Get 'monospace-font-family'.
(webkit_web_settings_set_monospace_font_family): Set 'monospace-font-family'.
(webkit_web_settings_get_serif_font_family): Get 'serif-font-family'.
(webkit_web_settings_set_serif_font_family): Set 'serif-font-family'.
(webkit_web_settings_get_sans_serif_font_family): Get 'sans-serif-font-family'.
(webkit_web_settings_set_sans_serif_font_family): Get 'sans-serif-font-family'.
(webkit_web_settings_get_cursive_font_family): Get 'cursive-font-family'.
(webkit_web_settings_set_cursive_font_family): Set 'cursive-font-family'.
(webkit_web_settings_get_fantasy_font_family): Get 'fantasy-font-family'.
(webkit_web_settings_set_fantasy_font_family): Set 'fantasy-font-family'.
(webkit_web_settings_get_pictograph_font_family): Get 'pictograph-font-family'.
(webkit_web_settings_set_pictograph_font_family): Set 'pictograph-font-family'.
(webkit_web_settings_get_default_font_size): Get 'default-font-size'.
(webkit_web_settings_set_default_font_size): Set 'default-font-size'.
(webkit_web_settings_get_default_monospace_font_size): Get 'default-monospace-font-size'.
(webkit_web_settings_set_default_monospace_font_size): Set 'default-monospace-font-size'.
(webkit_web_settings_get_minimum_font_size): Get 'minimum-font-size'.
(webkit_web_settings_set_minimum_font_size): Set 'minimum-font-size'.
(webkit_web_settings_get_default_charset): Get 'default-charset'.
(webkit_web_settings_set_default_charset): Set 'default-charset'.
* UIProcess/API/gtk/WebKitSettings.h: Add new sections for gtk-doc generation.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Expose new public APIs.
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings): Add new tests.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (100055 => 100056)


--- trunk/Source/WebKit2/ChangeLog	2011-11-12 02:05:39 UTC (rev 100055)
+++ trunk/Source/WebKit2/ChangeLog	2011-11-12 02:10:55 UTC (rev 100056)
@@ -1,3 +1,46 @@
+2011-11-11  Nayan Kumar K  <[email protected]>
+
+        [GTK][WEBKIT2] Add font and charset properties to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=68996
+
+        Reviewed by Martin Robinson.
+
+        Provision to query and set the font related properties (such as
+        font-family, font-size) and charset properties (such as default-
+        charset) is added.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp: Added font and encoding properties.
+        (webKitSettingsSetProperty): GObject set property function.
+        (webKitSettingsGetProperty): GObject get property function.
+        (webkit_settings_class_init): Few more signals installed.
+        (webkit_settings_init): Initialization of instance variables.
+        (webkit_web_settings_get_default_font_family): Get 'default-font-family'.
+        (webkit_web_settings_set_default_font_family): Set 'default-font-family'.
+        (webkit_web_settings_get_monospace_font_family): Get 'monospace-font-family'.
+        (webkit_web_settings_set_monospace_font_family): Set 'monospace-font-family'.
+        (webkit_web_settings_get_serif_font_family): Get 'serif-font-family'.
+        (webkit_web_settings_set_serif_font_family): Set 'serif-font-family'.
+        (webkit_web_settings_get_sans_serif_font_family): Get 'sans-serif-font-family'.
+        (webkit_web_settings_set_sans_serif_font_family): Get 'sans-serif-font-family'.
+        (webkit_web_settings_get_cursive_font_family): Get 'cursive-font-family'.
+        (webkit_web_settings_set_cursive_font_family): Set 'cursive-font-family'.
+        (webkit_web_settings_get_fantasy_font_family): Get 'fantasy-font-family'.
+        (webkit_web_settings_set_fantasy_font_family): Set 'fantasy-font-family'.
+        (webkit_web_settings_get_pictograph_font_family): Get 'pictograph-font-family'.
+        (webkit_web_settings_set_pictograph_font_family): Set 'pictograph-font-family'.
+        (webkit_web_settings_get_default_font_size): Get 'default-font-size'.
+        (webkit_web_settings_set_default_font_size): Set 'default-font-size'.
+        (webkit_web_settings_get_default_monospace_font_size): Get 'default-monospace-font-size'.
+        (webkit_web_settings_set_default_monospace_font_size): Set 'default-monospace-font-size'.
+        (webkit_web_settings_get_minimum_font_size): Get 'minimum-font-size'.
+        (webkit_web_settings_set_minimum_font_size): Set 'minimum-font-size'.
+        (webkit_web_settings_get_default_charset): Get 'default-charset'.
+        (webkit_web_settings_set_default_charset): Set 'default-charset'.
+        * UIProcess/API/gtk/WebKitSettings.h: Add new sections for gtk-doc generation.
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Expose new public APIs.
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings): Add new tests.
+
 2011-11-11  Shinya Kawanaka  <[email protected]>
 
         Implement legacy text check emulation in unified text check interface.

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp (100055 => 100056)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2011-11-12 02:05:39 UTC (rev 100055)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2011-11-12 02:10:55 UTC (rev 100056)
@@ -33,18 +33,29 @@
 
 #include "WebKitPrivate.h"
 #include "WebKitSettingsPrivate.h"
+#include <WebKit2/WKAPICast.h>
+#include <WebKit2/WKString.h>
 #include <WebKit2/WKRetainPtr.h>
 #include <glib/gi18n-lib.h>
+#include <wtf/text/CString.h>
 
 struct _WebKitSettingsPrivate {
     WKRetainPtr<WKPreferencesRef> preferences;
+    CString defaultFontFamily;
+    CString monospaceFontFamily;
+    CString serifFontFamily;
+    CString sansSerifFontFamily;
+    CString cursiveFontFamily;
+    CString fantasyFontFamily;
+    CString pictographFontFamily;
+    CString defaultCharset;
 };
 
 /**
  * SECTION:WebKitSettings
  * @short_description: Control the behaviour of a #WebKitWebView
  *
- * #WebKitSettings can be applied to a #WebKitWebView to control text encoding, 
+ * #WebKitSettings can be applied to a #WebKitWebView to control text charset, 
  * color, font sizes, printing mode, script support, loading of images and various other things. 
  * After creation, a #WebKitSettings object contains default settings. 
  *
@@ -75,6 +86,17 @@
     PROP_ENABLE_JAVA,
     PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY,
     PROP_ENABLE_HYPERLINK_AUDITING,
+    PROP_DEFAULT_FONT_FAMILY,
+    PROP_MONOSPACE_FONT_FAMILY,
+    PROP_SERIF_FONT_FAMILY,
+    PROP_SANS_SERIF_FONT_FAMILY,
+    PROP_CURSIVE_FONT_FAMILY,
+    PROP_FANTASY_FONT_FAMILY,
+    PROP_PICTOGRAPH_FONT_FAMILY,
+    PROP_DEFAULT_FONT_SIZE,
+    PROP_DEFAULT_MONOSPACE_FONT_SIZE,
+    PROP_MINIMUM_FONT_SIZE,
+    PROP_DEFAULT_CHARSET,
 };
 
 static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -118,6 +140,39 @@
     case PROP_ENABLE_HYPERLINK_AUDITING:
         webkit_settings_set_enable_hyperlink_auditing(settings, g_value_get_boolean(value));
         break;
+    case PROP_DEFAULT_FONT_FAMILY:
+        webkit_settings_set_default_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_MONOSPACE_FONT_FAMILY:
+        webkit_settings_set_monospace_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_SERIF_FONT_FAMILY:
+        webkit_settings_set_serif_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_SANS_SERIF_FONT_FAMILY:
+        webkit_settings_set_sans_serif_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_CURSIVE_FONT_FAMILY:
+        webkit_settings_set_cursive_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_FANTASY_FONT_FAMILY:
+        webkit_settings_set_fantasy_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_PICTOGRAPH_FONT_FAMILY:
+        webkit_settings_set_pictograph_font_family(settings, g_value_get_string(value));
+        break;
+    case PROP_DEFAULT_FONT_SIZE:
+        webkit_settings_set_default_font_size(settings, g_value_get_uint(value));
+        break;
+    case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
+        webkit_settings_set_default_monospace_font_size(settings, g_value_get_uint(value));
+        break;
+    case PROP_MINIMUM_FONT_SIZE:
+        webkit_settings_set_minimum_font_size(settings, g_value_get_uint(value));
+        break;
+    case PROP_DEFAULT_CHARSET:
+        webkit_settings_set_default_charset(settings, g_value_get_string(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -165,6 +220,39 @@
     case PROP_ENABLE_HYPERLINK_AUDITING:
         g_value_set_boolean(value, webkit_settings_get_enable_hyperlink_auditing(settings));
         break;
+    case PROP_DEFAULT_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_default_font_family(settings));
+        break;
+    case PROP_MONOSPACE_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_monospace_font_family(settings));
+        break;
+    case PROP_SERIF_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_serif_font_family(settings));
+        break;
+    case PROP_SANS_SERIF_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_sans_serif_font_family(settings));
+        break;
+    case PROP_CURSIVE_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_cursive_font_family(settings));
+        break;
+    case PROP_FANTASY_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_fantasy_font_family(settings));
+        break;
+    case PROP_PICTOGRAPH_FONT_FAMILY:
+        g_value_set_string(value, webkit_settings_get_pictograph_font_family(settings));
+        break;
+    case PROP_DEFAULT_FONT_SIZE:
+        g_value_set_uint(value, webkit_settings_get_default_font_size(settings));
+        break;
+    case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
+        g_value_set_uint(value, webkit_settings_get_default_monospace_font_size(settings));
+        break;
+    case PROP_MINIMUM_FONT_SIZE:
+        g_value_set_uint(value, webkit_settings_get_minimum_font_size(settings));
+        break;
+    case PROP_DEFAULT_CHARSET:
+        g_value_set_string(value, webkit_settings_get_default_charset(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -367,6 +455,155 @@
                                                          FALSE,
                                                          readWriteConstructParamFlags));
 
+    /**
+    * WebKitWebSettings:default-font-family
+    *
+    * The font family to use as the default for content that does not specify a font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_DEFAULT_FONT_FAMILY,
+                                    g_param_spec_string("default-font-family",
+                                                        _("Default font family"),
+                                                        _("The font family to use as the default for content that does not specify a font."),
+                                                        "sans-serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:monospace-font-family
+    *
+    * The font family used as the default for content using a monospace font.
+    *
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_MONOSPACE_FONT_FAMILY,
+                                    g_param_spec_string("monospace-font-family",
+                                                        _("Monospace font family"),
+                                                        _("The font family used as the default for content using monospace font."),
+                                                        "monospace",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:serif-font-family
+    *
+    * The font family used as the default for content using a serif font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_SERIF_FONT_FAMILY,
+                                    g_param_spec_string("serif-font-family",
+                                                        _("Serif font family"),
+                                                        _("The font family used as the default for content using serif font."),
+                                                        "serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:sans-serif-font-family
+    *
+    * The font family used as the default for content using a sans-serif font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_SANS_SERIF_FONT_FAMILY,
+                                    g_param_spec_string("sans-serif-font-family",
+                                                        _("Sans-serif font family"),
+                                                        _("The font family used as the default for content using sans-serif font."),
+                                                        "sans-serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:cursive-font-family
+    *
+    * The font family used as the default for content using a cursive font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_CURSIVE_FONT_FAMILY,
+                                    g_param_spec_string("cursive-font-family",
+                                                        _("Cursive font family"),
+                                                        _("The font family used as the default for content using cursive font."),
+                                                        "serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:fantasy-font-family
+    *
+    * The font family used as the default for content using a fantasy font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_FANTASY_FONT_FAMILY,
+                                    g_param_spec_string("fantasy-font-family",
+                                                        _("Fantasy font family"),
+                                                        _("The font family used as the default for content using fantasy font."),
+                                                        "serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:pictograph-font-family
+    *
+    * The font family used as the default for content using a pictograph font.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_PICTOGRAPH_FONT_FAMILY,
+                                    g_param_spec_string("pictograph-font-family",
+                                                        _("Pictograph font family"),
+                                                        _("The font family used as the default for content using pictograph font."),
+                                                        "serif",
+                                                        readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:default-font-size
+    *
+    * The default font size in pixels to use for content displayed if
+    * no font size is specified.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_DEFAULT_FONT_SIZE,
+                                    g_param_spec_uint("default-font-size",
+                                                      _("Default font size"),
+                                                      _("The default font size used to display text."),
+                                                      0, G_MAXUINT, 12,
+                                                      readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:default-monospace-font-size
+    *
+    * The default font size in pixels to use for content displayed in
+    * monospace font if no font size is specified.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_DEFAULT_MONOSPACE_FONT_SIZE,
+                                    g_param_spec_uint("default-monospace-font-size",
+                                                      _("Default monospace font size"),
+                                                      _("The default font size used to display monospace text."),
+                                                      0, G_MAXUINT, 10,
+                                                      readWriteConstructParamFlags));
+
+    /**
+    * WebKitWebSettings:minimum-font-size
+    *
+    * The minimum font size in points used to display text. This setting 
+    * controls the absolute smallest size. Values other than 0 can 
+    * potentially break page layouts.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_MINIMUM_FONT_SIZE,
+                                    g_param_spec_uint("minimum-font-size",
+                                                      _("Minimum font size"),
+                                                      _("The minimum font size used to display text."),
+                                                      0, G_MAXUINT, 0,
+                                                      readWriteConstructParamFlags));
+
+    /**
+    * WebKitSettings:default-charset
+    *
+    * The default text charset used when interpreting content with an unspecified charset.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_DEFAULT_CHARSET,
+                                    g_param_spec_string("default-charset",
+                                                        _("Default charset"),
+                                                        _("The default text charset used when interpreting content with unspecified charset."),
+                                                        "iso-8859-1",
+                                                        readWriteConstructParamFlags));
+
+
     g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
 }
 
@@ -377,6 +614,30 @@
     new (priv) WebKitSettingsPrivate();
 
     priv->preferences = adoptWK(WKPreferencesCreate());
+
+    WKRetainPtr<WKStringRef> defaultFontFamilyRef = WKPreferencesCopyStandardFontFamily(priv->preferences.get());
+    priv->defaultFontFamily =  WebKit::toImpl(defaultFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> monospaceFontFamilyRef = WKPreferencesCopyFixedFontFamily(priv->preferences.get());
+    priv->monospaceFontFamily = WebKit::toImpl(monospaceFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> serifFontFamilyRef = WKPreferencesCopySerifFontFamily(priv->preferences.get());
+    priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = WKPreferencesCopySansSerifFontFamily(priv->preferences.get());
+    priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> cursiveFontFamilyRef = WKPreferencesCopyCursiveFontFamily(priv->preferences.get());
+    priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> fantasyFontFamilyRef = WKPreferencesCopyFantasyFontFamily(priv->preferences.get());
+    priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> pictographFontFamilyRef = WKPreferencesCopyPictographFontFamily(priv->preferences.get());
+    priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
+
+    WKRetainPtr<WKStringRef> defaultCharsetRef = WKPreferencesCopyDefaultTextEncodingName(priv->preferences.get());
+    priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
 }
 
 void webkitSettingsAttachSettingsToPage(WebKitSettings* settings, WKPageRef wkPage)
@@ -838,3 +1099,415 @@
     WKPreferencesSetHyperlinkAuditingEnabled(priv->preferences.get(), enabled);
     g_object_notify(G_OBJECT(settings), "enable-hyperlink-auditing");
 }
+
+/**
+ * webkit_web_settings_get_default_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:default-font-family property.
+ *
+ * Returns: The default font family used to display content that does not specify a font.
+ */
+const gchar* webkit_settings_get_default_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->defaultFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_default_font_family:
+ * @settings: a #WebKitSettings
+ * @default_font_family: the new default font family
+ *
+ * Set the #WebKitSettings:default-font-family property.
+ */
+void webkit_settings_set_default_font_family(WebKitSettings* settings, const gchar* defaultFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(defaultFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->defaultFontFamily.data(), defaultFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> standardFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(defaultFontFamily));
+    WKPreferencesSetStandardFontFamily(priv->preferences.get(), standardFontFamilyRef.get());
+    priv->defaultFontFamily = WebKit::toImpl(standardFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "default-font-family");
+}
+
+/**
+ * webkit_settings_get_monospace_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:monospace-font-family property.
+ *
+ * Returns: Default font family used to display content marked with monospace font.
+ */
+const gchar* webkit_settings_get_monospace_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->monospaceFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_monospace_font_family:
+ * @settings: a #WebKitSettings
+ * @monospace_font_family: the new default monospace font family
+ *
+ * Set the #WebKitSettings:monospace-font-family property.
+ */
+void webkit_settings_set_monospace_font_family(WebKitSettings* settings, const gchar* monospaceFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(monospaceFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->monospaceFontFamily.data(), monospaceFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> fixedFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(monospaceFontFamily));
+    WKPreferencesSetFixedFontFamily(priv->preferences.get(), fixedFontFamilyRef.get());
+    priv->monospaceFontFamily = WebKit::toImpl(fixedFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "monospace-font-family");
+}
+
+/**
+ * webkit_settings_get_serif_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:serif-font-family property.
+ *
+ * Returns: The default font family used to display content marked with serif font.
+ */
+const gchar* webkit_settings_get_serif_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->serifFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_serif_font_family:
+ * @settings: a #WebKitSettings
+ * @serif_font_family: the new default serif font family
+ *
+ * Set the #WebKitSettings:serif-font-family property.
+ */
+void webkit_settings_set_serif_font_family(WebKitSettings* settings, const gchar* serifFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(serifFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->serifFontFamily.data(), serifFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> serifFontFamilyRef = WKStringCreateWithUTF8CString(serifFontFamily);
+    WKPreferencesSetSerifFontFamily(priv->preferences.get(), serifFontFamilyRef.get());
+    priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "serif-font-family");
+}
+
+/**
+ * webkit_settings_get_sans_serif_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:sans-serif-font-family property.
+ *
+ * Returns: The default font family used to display content marked with sans-serif font.
+ */
+const gchar* webkit_settings_get_sans_serif_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->sansSerifFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_sans_serif_font_family:
+ * @settings: a #WebKitSettings
+ * @sans_serif_font_family: the new default sans-serif font family
+ *
+ * Set the #WebKitSettings:sans-serif-font-family property.
+ */
+void webkit_settings_set_sans_serif_font_family(WebKitSettings* settings, const gchar* sansSerifFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(sansSerifFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->sansSerifFontFamily.data(), sansSerifFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(sansSerifFontFamily));
+    WKPreferencesSetSansSerifFontFamily(priv->preferences.get(), sansSerifFontFamilyRef.get());
+    priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "sans-serif-font-family");
+}
+
+/**
+ * webkit_settings_get_cursive_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:cursive-font-family property.
+ *
+ * Returns: The default font family used to display content marked with cursive font.
+ */
+const gchar* webkit_settings_get_cursive_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->cursiveFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_cursive_font_family:
+ * @settings: a #WebKitSettings
+ * @cursive_font_family: the new default cursive font family
+ *
+ * Set the #WebKitSettings:cursive-font-family property.
+ */
+void webkit_settings_set_cursive_font_family(WebKitSettings* settings, const gchar* cursiveFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(cursiveFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->cursiveFontFamily.data(), cursiveFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> cursiveFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(cursiveFontFamily));
+    WKPreferencesSetCursiveFontFamily(priv->preferences.get(), cursiveFontFamilyRef.get());
+    priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "cursive-font-family");
+}
+
+/**
+ * webkit_settings_get_fantasy_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:fantasy-font-family property.
+ *
+ * Returns: The default font family used to display content marked with fantasy font.
+ */
+const gchar* webkit_settings_get_fantasy_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->fantasyFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_fantasy_font_family:
+ * @settings: a #WebKitSettings
+ * @fantasy_font_family: the new default fantasy font family
+ *
+ * Set the #WebKitSettings:fantasy-font-family property.
+ */
+void webkit_settings_set_fantasy_font_family(WebKitSettings* settings, const gchar* fantasyFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(fantasyFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->fantasyFontFamily.data(), fantasyFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> fantasyFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(fantasyFontFamily));
+    WKPreferencesSetFantasyFontFamily(priv->preferences.get(), fantasyFontFamilyRef.get());
+    priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "fantasy-font-family");
+}
+
+/**
+ * webkit_settings_get_pictograph_font_family:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:pictograph-font-family property.
+ *
+ * Returns: The default font family used to display content marked with pictograph font.
+ */
+const gchar* webkit_settings_get_pictograph_font_family(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->pictographFontFamily.data();
+}
+
+/**
+ * webkit_settings_set_pictograph_font_family:
+ * @settings: a #WebKitSettings
+ * @pictograph_font_family: the new default pictograph font family
+ *
+ * Set the #WebKitSettings:pictograph-font-family property.
+ */
+void webkit_settings_set_pictograph_font_family(WebKitSettings* settings, const gchar* pictographFontFamily)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(pictographFontFamily);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->pictographFontFamily.data(), pictographFontFamily))
+        return;
+
+    WKRetainPtr<WKStringRef> pictographFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(pictographFontFamily));
+    WKPreferencesSetPictographFontFamily(priv->preferences.get(), pictographFontFamilyRef.get());
+    priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "pictograph-font-family");
+}
+
+/**
+ * webkit_settings_get_default_font_size:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:default-font-size property.
+ *
+ * Returns: The default font size.
+ */
+guint32 webkit_settings_get_default_font_size(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return WKPreferencesGetDefaultFontSize(settings->priv->preferences.get());
+}
+
+/**
+ * webkit_settings_set_default_font_size:
+ * @settings: a #WebKitSettings
+ * @font_size: default font size to be set in pixels
+ *
+ * Set the #WebKitSettings:default-font-size property.
+ */
+void webkit_settings_set_default_font_size(WebKitSettings* settings, guint32 fontSize)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+
+    uint32_t currentSize = WKPreferencesGetDefaultFontSize(priv->preferences.get());
+    if (currentSize == fontSize)
+        return;
+
+    WKPreferencesSetDefaultFontSize(priv->preferences.get(), fontSize);
+    g_object_notify(G_OBJECT(settings), "default-font-size");
+}
+
+/**
+ * webkit_settings_get_default_monospace_font_size:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:default-monospace-font-size property.
+ *
+ * Returns: Default monospace font size.
+ */
+guint32 webkit_settings_get_default_monospace_font_size(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return WKPreferencesGetDefaultFixedFontSize(settings->priv->preferences.get());
+}
+
+/**
+ * webkit_settings_set_default_monospace_font_size:
+ * @settings: a #WebKitSettings
+ * @font_size: default monospace font size to be set in pixels
+ *
+ * Set the #WebKitSettings:default-monospace-font-size property.
+ */
+void webkit_settings_set_default_monospace_font_size(WebKitSettings* settings, guint32 fontSize)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+
+    uint32_t currentSize = WKPreferencesGetDefaultFixedFontSize(priv->preferences.get());
+    if (currentSize == fontSize)
+        return;
+
+    WKPreferencesSetDefaultFixedFontSize(priv->preferences.get(), fontSize);
+    g_object_notify(G_OBJECT(settings), "default-monospace-font-size");
+}
+
+/**
+ * webkit_settings_get_minimum_font_size:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:minimum-font-size property.
+ *
+ * Returns: Minimum font size.
+ */
+guint32 webkit_settings_get_minimum_font_size(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return WKPreferencesGetMinimumFontSize(settings->priv->preferences.get());
+}
+
+/**
+ * webkit_settings_set_minimum_font_size:
+ * @settings: a #WebKitSettings
+ * @font_size: minimum font size to be set in points
+ *
+ * Set the #WebKitSettings:minimum-font-size property.
+ */
+void webkit_settings_set_minimum_font_size(WebKitSettings* settings, guint32 fontSize)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+
+    uint32_t currentSize = WKPreferencesGetMinimumFontSize(priv->preferences.get());
+    if (currentSize == fontSize)
+        return;
+
+    WKPreferencesSetMinimumFontSize(priv->preferences.get(), fontSize);
+    g_object_notify(G_OBJECT(settings), "minimum-font-size");
+}
+
+/**
+ * webkit_settings_get_default_charset:
+ * @settings: a #WebKitSettings
+ *
+ * Gets the #WebKitSettings:default-charset property.
+ *
+ * Returns: Default charset.
+ */
+const gchar* webkit_settings_get_default_charset(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
+
+    return settings->priv->defaultCharset.data();
+}
+
+/**
+ * webkit_settings_set_default_charset:
+ * @settings: a #WebKitSettings
+ * @default_charset: default charset to be set
+ *
+ * Set the #WebKitSettings:default-charset property.
+ */
+void webkit_settings_set_default_charset(WebKitSettings* settings, const gchar* defaultCharset)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+    g_return_if_fail(defaultCharset);
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    if (!g_strcmp0(priv->defaultCharset.data(), defaultCharset))
+        return;
+
+    WKRetainPtr<WKStringRef> defaultCharsetRef = adoptWK(WKStringCreateWithUTF8CString(defaultCharset));
+    WKPreferencesSetDefaultTextEncodingName(priv->preferences.get(), defaultCharsetRef.get());
+    priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
+
+    g_object_notify(G_OBJECT(settings), "default-charset");
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h (100055 => 100056)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2011-11-12 02:05:39 UTC (rev 100055)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2011-11-12 02:10:55 UTC (rev 100056)
@@ -160,6 +160,83 @@
 webkit_settings_set_enable_hyperlink_auditing                  (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API const gchar *
+webkit_settings_get_default_font_family                        (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_default_font_family                        (WebKitSettings* settings,
+                                                                const gchar* default_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_monospace_font_family                      (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_monospace_font_family                      (WebKitSettings* settings,
+                                                                const gchar* monospace_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_serif_font_family                          (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_serif_font_family                          (WebKitSettings* settings,
+                                                                const gchar* serif_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_sans_serif_font_family                     (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_sans_serif_font_family                     (WebKitSettings* settings,
+                                                                const gchar* sans_serif_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_cursive_font_family                        (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_cursive_font_family                        (WebKitSettings* settings,
+                                                                const gchar* cursive_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_fantasy_font_family                        (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_fantasy_font_family                        (WebKitSettings* settings,
+                                                                const gchar* fantasy_font_family);
+
+WEBKIT_API const gchar *
+webkit_settings_get_pictograph_font_family                     (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_pictograph_font_family                     (WebKitSettings* settings,
+                                                                const gchar* pictograph_font_family);
+
+WEBKIT_API guint32
+webkit_settings_get_default_font_size                          (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_default_font_size                          (WebKitSettings* settings,
+                                                                guint32 font_size);
+
+WEBKIT_API guint32
+webkit_settings_get_default_monospace_font_size                (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_default_monospace_font_size                (WebKitSettings* settings,
+                                                                guint32 font_size);
+
+WEBKIT_API guint32
+webkit_settings_get_minimum_font_size                          (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_minimum_font_size                          (WebKitSettings* settings,
+                                                                guint32 font_size);
+
+WEBKIT_API const gchar *
+webkit_settings_get_default_charset                            (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_default_charset                            (WebKitSettings* settings,
+                                                                const gchar* default_charset);
+
 G_END_DECLS
 
 #endif /* webkitwebsettings_h */

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (100055 => 100056)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2011-11-12 02:05:39 UTC (rev 100055)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2011-11-12 02:10:55 UTC (rev 100056)
@@ -181,6 +181,28 @@
 webkit_settings_set_javascript_can_open_windows_automatically
 webkit_settings_get_load_icons_ignoring_image_load_setting
 webkit_settings_set_load_icons_ignoring_image_load_setting
+webkit_settings_get_default_font_family
+webkit_settings_set_default_font_family
+webkit_settings_get_monospace_font_family
+webkit_settings_set_monospace_font_family
+webkit_settings_get_serif_font_family
+webkit_settings_set_serif_font_family
+webkit_settings_get_sans_serif_font_family
+webkit_settings_set_sans_serif_font_family
+webkit_settings_get_cursive_font_family
+webkit_settings_set_cursive_font_family
+webkit_settings_get_fantasy_font_family
+webkit_settings_set_fantasy_font_family
+webkit_settings_get_pictograph_font_family
+webkit_settings_set_pictograph_font_family
+webkit_settings_get_default_font_size
+webkit_settings_set_default_font_size
+webkit_settings_get_default_monospace_font_size
+webkit_settings_set_default_monospace_font_size
+webkit_settings_get_minimum_font_size
+webkit_settings_set_minimum_font_size
+webkit_settings_get_default_charset
+webkit_settings_set_default_charset
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp (100055 => 100056)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2011-11-12 02:05:39 UTC (rev 100055)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2011-11-12 02:10:55 UTC (rev 100056)
@@ -102,6 +102,61 @@
     webkit_settings_set_enable_hyperlink_auditing(settings, TRUE);
     g_assert(webkit_settings_get_enable_hyperlink_auditing(settings));
 
+    // Default font family is "sans-serif".
+    g_assert_cmpstr(webkit_settings_get_default_font_family(settings), ==, "sans-serif");
+    webkit_settings_set_default_font_family(settings, "monospace");
+    g_assert_cmpstr(webkit_settings_get_default_font_family(settings), ==, "monospace");
+
+    // Default monospace font family font family is "monospace".
+    g_assert_cmpstr(webkit_settings_get_monospace_font_family(settings), ==, "monospace");
+    webkit_settings_set_monospace_font_family(settings, "sans-serif");
+    g_assert_cmpstr(webkit_settings_get_monospace_font_family(settings), ==, "sans-serif");
+
+    // Default serif font family is "serif".
+    g_assert_cmpstr(webkit_settings_get_serif_font_family(settings), ==, "serif");
+    webkit_settings_set_serif_font_family(settings, "sans-serif");
+    g_assert_cmpstr(webkit_settings_get_serif_font_family(settings), ==, "sans-serif");
+
+    // Default sans serif font family is "sans-serif".
+    g_assert_cmpstr(webkit_settings_get_sans_serif_font_family(settings), ==, "sans-serif");
+    webkit_settings_set_sans_serif_font_family(settings, "serif");
+    g_assert_cmpstr(webkit_settings_get_sans_serif_font_family(settings), ==, "serif");
+
+    // Default cursive font family "serif".
+    g_assert_cmpstr(webkit_settings_get_cursive_font_family(settings), ==, "serif");
+    webkit_settings_set_cursive_font_family(settings, "sans-serif");
+    g_assert_cmpstr(webkit_settings_get_cursive_font_family(settings), ==, "sans-serif");
+
+    // Default fantasy font family is "serif".
+    g_assert_cmpstr(webkit_settings_get_fantasy_font_family(settings), ==, "serif");
+    webkit_settings_set_fantasy_font_family(settings, "sans-serif");
+    g_assert_cmpstr(webkit_settings_get_fantasy_font_family(settings), ==, "sans-serif");
+
+    // Default pictograph font family is "serif".
+    g_assert_cmpstr(webkit_settings_get_pictograph_font_family(settings), ==, "serif");
+    webkit_settings_set_pictograph_font_family(settings, "sans-serif");
+    g_assert_cmpstr(webkit_settings_get_pictograph_font_family(settings), ==, "sans-serif");
+
+    // Default font size is 12.
+    g_assert_cmpuint(webkit_settings_get_default_font_size(settings), ==, 12);
+    webkit_settings_set_default_font_size(settings, 14);
+    g_assert_cmpuint(webkit_settings_get_default_font_size(settings), ==, 14);
+
+    // Default monospace font size is 10.
+    g_assert_cmpuint(webkit_settings_get_default_monospace_font_size(settings), ==, 10);
+    webkit_settings_set_default_monospace_font_size(settings, 12);
+    g_assert_cmpuint(webkit_settings_get_default_monospace_font_size(settings), ==, 12);
+
+    // Default minimum font size is 5.
+    g_assert_cmpuint(webkit_settings_get_minimum_font_size(settings), ==, 5);
+    webkit_settings_set_minimum_font_size(settings, 7);
+    g_assert_cmpuint(webkit_settings_get_minimum_font_size(settings), ==, 7);
+
+    // Default charset is "iso-8859-1".
+    g_assert_cmpstr(webkit_settings_get_default_charset(settings), ==, "iso-8859-1");
+    webkit_settings_set_default_charset(settings, "utf8");
+    g_assert_cmpstr(webkit_settings_get_default_charset(settings), ==, "utf8");
+
     g_object_unref(G_OBJECT(settings));
 #endif
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to