⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 100056 in webkit


Ignore:
Timestamp:
Nov 11, 2011, 6:10:55 PM (15 years ago)
Author:
commit-queue@webkit.org
Message:

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

Patch by Nayan Kumar K <nayankk@motorola.com> 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.

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r100050 r100056  
     12011-11-11  Nayan Kumar K  <nayankk@motorola.com>
     2
     3        [GTK][WEBKIT2] Add font and charset properties to WebKitWebSettings
     4        https://bugs.webkit.org/show_bug.cgi?id=68996
     5
     6        Reviewed by Martin Robinson.
     7
     8        Provision to query and set the font related properties (such as
     9        font-family, font-size) and charset properties (such as default-
     10        charset) is added.
     11
     12        * UIProcess/API/gtk/WebKitSettings.cpp: Added font and encoding properties.
     13        (webKitSettingsSetProperty): GObject set property function.
     14        (webKitSettingsGetProperty): GObject get property function.
     15        (webkit_settings_class_init): Few more signals installed.
     16        (webkit_settings_init): Initialization of instance variables.
     17        (webkit_web_settings_get_default_font_family): Get 'default-font-family'.
     18        (webkit_web_settings_set_default_font_family): Set 'default-font-family'.
     19        (webkit_web_settings_get_monospace_font_family): Get 'monospace-font-family'.
     20        (webkit_web_settings_set_monospace_font_family): Set 'monospace-font-family'.
     21        (webkit_web_settings_get_serif_font_family): Get 'serif-font-family'.
     22        (webkit_web_settings_set_serif_font_family): Set 'serif-font-family'.
     23        (webkit_web_settings_get_sans_serif_font_family): Get 'sans-serif-font-family'.
     24        (webkit_web_settings_set_sans_serif_font_family): Get 'sans-serif-font-family'.
     25        (webkit_web_settings_get_cursive_font_family): Get 'cursive-font-family'.
     26        (webkit_web_settings_set_cursive_font_family): Set 'cursive-font-family'.
     27        (webkit_web_settings_get_fantasy_font_family): Get 'fantasy-font-family'.
     28        (webkit_web_settings_set_fantasy_font_family): Set 'fantasy-font-family'.
     29        (webkit_web_settings_get_pictograph_font_family): Get 'pictograph-font-family'.
     30        (webkit_web_settings_set_pictograph_font_family): Set 'pictograph-font-family'.
     31        (webkit_web_settings_get_default_font_size): Get 'default-font-size'.
     32        (webkit_web_settings_set_default_font_size): Set 'default-font-size'.
     33        (webkit_web_settings_get_default_monospace_font_size): Get 'default-monospace-font-size'.
     34        (webkit_web_settings_set_default_monospace_font_size): Set 'default-monospace-font-size'.
     35        (webkit_web_settings_get_minimum_font_size): Get 'minimum-font-size'.
     36        (webkit_web_settings_set_minimum_font_size): Set 'minimum-font-size'.
     37        (webkit_web_settings_get_default_charset): Get 'default-charset'.
     38        (webkit_web_settings_set_default_charset): Set 'default-charset'.
     39        * UIProcess/API/gtk/WebKitSettings.h: Add new sections for gtk-doc generation.
     40        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Expose new public APIs.
     41        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
     42        (testWebKitSettings): Add new tests.
     43
    1442011-11-11  Shinya Kawanaka  <shinyak@google.com>
    245
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp

    r98846 r100056  
    3434#include "WebKitPrivate.h"
    3535#include "WebKitSettingsPrivate.h"
     36#include <WebKit2/WKAPICast.h>
     37#include <WebKit2/WKString.h>
    3638#include <WebKit2/WKRetainPtr.h>
    3739#include <glib/gi18n-lib.h>
     40#include <wtf/text/CString.h>
    3841
    3942struct _WebKitSettingsPrivate {
    4043    WKRetainPtr<WKPreferencesRef> preferences;
     44    CString defaultFontFamily;
     45    CString monospaceFontFamily;
     46    CString serifFontFamily;
     47    CString sansSerifFontFamily;
     48    CString cursiveFontFamily;
     49    CString fantasyFontFamily;
     50    CString pictographFontFamily;
     51    CString defaultCharset;
    4152};
    4253
     
    4556 * @short_description: Control the behaviour of a #WebKitWebView
    4657 *
    47  * #WebKitSettings can be applied to a #WebKitWebView to control text encoding,
     58 * #WebKitSettings can be applied to a #WebKitWebView to control text charset,
    4859 * color, font sizes, printing mode, script support, loading of images and various other things.
    4960 * After creation, a #WebKitSettings object contains default settings.
     
    7687    PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY,
    7788    PROP_ENABLE_HYPERLINK_AUDITING,
     89    PROP_DEFAULT_FONT_FAMILY,
     90    PROP_MONOSPACE_FONT_FAMILY,
     91    PROP_SERIF_FONT_FAMILY,
     92    PROP_SANS_SERIF_FONT_FAMILY,
     93    PROP_CURSIVE_FONT_FAMILY,
     94    PROP_FANTASY_FONT_FAMILY,
     95    PROP_PICTOGRAPH_FONT_FAMILY,
     96    PROP_DEFAULT_FONT_SIZE,
     97    PROP_DEFAULT_MONOSPACE_FONT_SIZE,
     98    PROP_MINIMUM_FONT_SIZE,
     99    PROP_DEFAULT_CHARSET,
    78100};
    79101
     
    119141        webkit_settings_set_enable_hyperlink_auditing(settings, g_value_get_boolean(value));
    120142        break;
     143    case PROP_DEFAULT_FONT_FAMILY:
     144        webkit_settings_set_default_font_family(settings, g_value_get_string(value));
     145        break;
     146    case PROP_MONOSPACE_FONT_FAMILY:
     147        webkit_settings_set_monospace_font_family(settings, g_value_get_string(value));
     148        break;
     149    case PROP_SERIF_FONT_FAMILY:
     150        webkit_settings_set_serif_font_family(settings, g_value_get_string(value));
     151        break;
     152    case PROP_SANS_SERIF_FONT_FAMILY:
     153        webkit_settings_set_sans_serif_font_family(settings, g_value_get_string(value));
     154        break;
     155    case PROP_CURSIVE_FONT_FAMILY:
     156        webkit_settings_set_cursive_font_family(settings, g_value_get_string(value));
     157        break;
     158    case PROP_FANTASY_FONT_FAMILY:
     159        webkit_settings_set_fantasy_font_family(settings, g_value_get_string(value));
     160        break;
     161    case PROP_PICTOGRAPH_FONT_FAMILY:
     162        webkit_settings_set_pictograph_font_family(settings, g_value_get_string(value));
     163        break;
     164    case PROP_DEFAULT_FONT_SIZE:
     165        webkit_settings_set_default_font_size(settings, g_value_get_uint(value));
     166        break;
     167    case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
     168        webkit_settings_set_default_monospace_font_size(settings, g_value_get_uint(value));
     169        break;
     170    case PROP_MINIMUM_FONT_SIZE:
     171        webkit_settings_set_minimum_font_size(settings, g_value_get_uint(value));
     172        break;
     173    case PROP_DEFAULT_CHARSET:
     174        webkit_settings_set_default_charset(settings, g_value_get_string(value));
     175        break;
    121176    default:
    122177        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
     
    165220    case PROP_ENABLE_HYPERLINK_AUDITING:
    166221        g_value_set_boolean(value, webkit_settings_get_enable_hyperlink_auditing(settings));
     222        break;
     223    case PROP_DEFAULT_FONT_FAMILY:
     224        g_value_set_string(value, webkit_settings_get_default_font_family(settings));
     225        break;
     226    case PROP_MONOSPACE_FONT_FAMILY:
     227        g_value_set_string(value, webkit_settings_get_monospace_font_family(settings));
     228        break;
     229    case PROP_SERIF_FONT_FAMILY:
     230        g_value_set_string(value, webkit_settings_get_serif_font_family(settings));
     231        break;
     232    case PROP_SANS_SERIF_FONT_FAMILY:
     233        g_value_set_string(value, webkit_settings_get_sans_serif_font_family(settings));
     234        break;
     235    case PROP_CURSIVE_FONT_FAMILY:
     236        g_value_set_string(value, webkit_settings_get_cursive_font_family(settings));
     237        break;
     238    case PROP_FANTASY_FONT_FAMILY:
     239        g_value_set_string(value, webkit_settings_get_fantasy_font_family(settings));
     240        break;
     241    case PROP_PICTOGRAPH_FONT_FAMILY:
     242        g_value_set_string(value, webkit_settings_get_pictograph_font_family(settings));
     243        break;
     244    case PROP_DEFAULT_FONT_SIZE:
     245        g_value_set_uint(value, webkit_settings_get_default_font_size(settings));
     246        break;
     247    case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
     248        g_value_set_uint(value, webkit_settings_get_default_monospace_font_size(settings));
     249        break;
     250    case PROP_MINIMUM_FONT_SIZE:
     251        g_value_set_uint(value, webkit_settings_get_minimum_font_size(settings));
     252        break;
     253    case PROP_DEFAULT_CHARSET:
     254        g_value_set_string(value, webkit_settings_get_default_charset(settings));
    167255        break;
    168256    default:
     
    368456                                                         readWriteConstructParamFlags));
    369457
     458    /**
     459    * WebKitWebSettings:default-font-family
     460    *
     461    * The font family to use as the default for content that does not specify a font.
     462    */
     463    g_object_class_install_property(gObjectClass,
     464                                    PROP_DEFAULT_FONT_FAMILY,
     465                                    g_param_spec_string("default-font-family",
     466                                                        _("Default font family"),
     467                                                        _("The font family to use as the default for content that does not specify a font."),
     468                                                        "sans-serif",
     469                                                        readWriteConstructParamFlags));
     470
     471    /**
     472    * WebKitWebSettings:monospace-font-family
     473    *
     474    * The font family used as the default for content using a monospace font.
     475    *
     476    */
     477    g_object_class_install_property(gObjectClass,
     478                                    PROP_MONOSPACE_FONT_FAMILY,
     479                                    g_param_spec_string("monospace-font-family",
     480                                                        _("Monospace font family"),
     481                                                        _("The font family used as the default for content using monospace font."),
     482                                                        "monospace",
     483                                                        readWriteConstructParamFlags));
     484
     485    /**
     486    * WebKitWebSettings:serif-font-family
     487    *
     488    * The font family used as the default for content using a serif font.
     489    */
     490    g_object_class_install_property(gObjectClass,
     491                                    PROP_SERIF_FONT_FAMILY,
     492                                    g_param_spec_string("serif-font-family",
     493                                                        _("Serif font family"),
     494                                                        _("The font family used as the default for content using serif font."),
     495                                                        "serif",
     496                                                        readWriteConstructParamFlags));
     497
     498    /**
     499    * WebKitWebSettings:sans-serif-font-family
     500    *
     501    * The font family used as the default for content using a sans-serif font.
     502    */
     503    g_object_class_install_property(gObjectClass,
     504                                    PROP_SANS_SERIF_FONT_FAMILY,
     505                                    g_param_spec_string("sans-serif-font-family",
     506                                                        _("Sans-serif font family"),
     507                                                        _("The font family used as the default for content using sans-serif font."),
     508                                                        "sans-serif",
     509                                                        readWriteConstructParamFlags));
     510
     511    /**
     512    * WebKitWebSettings:cursive-font-family
     513    *
     514    * The font family used as the default for content using a cursive font.
     515    */
     516    g_object_class_install_property(gObjectClass,
     517                                    PROP_CURSIVE_FONT_FAMILY,
     518                                    g_param_spec_string("cursive-font-family",
     519                                                        _("Cursive font family"),
     520                                                        _("The font family used as the default for content using cursive font."),
     521                                                        "serif",
     522                                                        readWriteConstructParamFlags));
     523
     524    /**
     525    * WebKitWebSettings:fantasy-font-family
     526    *
     527    * The font family used as the default for content using a fantasy font.
     528    */
     529    g_object_class_install_property(gObjectClass,
     530                                    PROP_FANTASY_FONT_FAMILY,
     531                                    g_param_spec_string("fantasy-font-family",
     532                                                        _("Fantasy font family"),
     533                                                        _("The font family used as the default for content using fantasy font."),
     534                                                        "serif",
     535                                                        readWriteConstructParamFlags));
     536
     537    /**
     538    * WebKitWebSettings:pictograph-font-family
     539    *
     540    * The font family used as the default for content using a pictograph font.
     541    */
     542    g_object_class_install_property(gObjectClass,
     543                                    PROP_PICTOGRAPH_FONT_FAMILY,
     544                                    g_param_spec_string("pictograph-font-family",
     545                                                        _("Pictograph font family"),
     546                                                        _("The font family used as the default for content using pictograph font."),
     547                                                        "serif",
     548                                                        readWriteConstructParamFlags));
     549
     550    /**
     551    * WebKitWebSettings:default-font-size
     552    *
     553    * The default font size in pixels to use for content displayed if
     554    * no font size is specified.
     555    */
     556    g_object_class_install_property(gObjectClass,
     557                                    PROP_DEFAULT_FONT_SIZE,
     558                                    g_param_spec_uint("default-font-size",
     559                                                      _("Default font size"),
     560                                                      _("The default font size used to display text."),
     561                                                      0, G_MAXUINT, 12,
     562                                                      readWriteConstructParamFlags));
     563
     564    /**
     565    * WebKitWebSettings:default-monospace-font-size
     566    *
     567    * The default font size in pixels to use for content displayed in
     568    * monospace font if no font size is specified.
     569    */
     570    g_object_class_install_property(gObjectClass,
     571                                    PROP_DEFAULT_MONOSPACE_FONT_SIZE,
     572                                    g_param_spec_uint("default-monospace-font-size",
     573                                                      _("Default monospace font size"),
     574                                                      _("The default font size used to display monospace text."),
     575                                                      0, G_MAXUINT, 10,
     576                                                      readWriteConstructParamFlags));
     577
     578    /**
     579    * WebKitWebSettings:minimum-font-size
     580    *
     581    * The minimum font size in points used to display text. This setting
     582    * controls the absolute smallest size. Values other than 0 can
     583    * potentially break page layouts.
     584    */
     585    g_object_class_install_property(gObjectClass,
     586                                    PROP_MINIMUM_FONT_SIZE,
     587                                    g_param_spec_uint("minimum-font-size",
     588                                                      _("Minimum font size"),
     589                                                      _("The minimum font size used to display text."),
     590                                                      0, G_MAXUINT, 0,
     591                                                      readWriteConstructParamFlags));
     592
     593    /**
     594    * WebKitSettings:default-charset
     595    *
     596    * The default text charset used when interpreting content with an unspecified charset.
     597    */
     598    g_object_class_install_property(gObjectClass,
     599                                    PROP_DEFAULT_CHARSET,
     600                                    g_param_spec_string("default-charset",
     601                                                        _("Default charset"),
     602                                                        _("The default text charset used when interpreting content with unspecified charset."),
     603                                                        "iso-8859-1",
     604                                                        readWriteConstructParamFlags));
     605
     606
    370607    g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
    371608}
     
    378615
    379616    priv->preferences = adoptWK(WKPreferencesCreate());
     617
     618    WKRetainPtr<WKStringRef> defaultFontFamilyRef = WKPreferencesCopyStandardFontFamily(priv->preferences.get());
     619    priv->defaultFontFamily =  WebKit::toImpl(defaultFontFamilyRef.get())->string().utf8();
     620
     621    WKRetainPtr<WKStringRef> monospaceFontFamilyRef = WKPreferencesCopyFixedFontFamily(priv->preferences.get());
     622    priv->monospaceFontFamily = WebKit::toImpl(monospaceFontFamilyRef.get())->string().utf8();
     623
     624    WKRetainPtr<WKStringRef> serifFontFamilyRef = WKPreferencesCopySerifFontFamily(priv->preferences.get());
     625    priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
     626
     627    WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = WKPreferencesCopySansSerifFontFamily(priv->preferences.get());
     628    priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
     629
     630    WKRetainPtr<WKStringRef> cursiveFontFamilyRef = WKPreferencesCopyCursiveFontFamily(priv->preferences.get());
     631    priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
     632
     633    WKRetainPtr<WKStringRef> fantasyFontFamilyRef = WKPreferencesCopyFantasyFontFamily(priv->preferences.get());
     634    priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
     635
     636    WKRetainPtr<WKStringRef> pictographFontFamilyRef = WKPreferencesCopyPictographFontFamily(priv->preferences.get());
     637    priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
     638
     639    WKRetainPtr<WKStringRef> defaultCharsetRef = WKPreferencesCopyDefaultTextEncodingName(priv->preferences.get());
     640    priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
    380641}
    381642
     
    8391100    g_object_notify(G_OBJECT(settings), "enable-hyperlink-auditing");
    8401101}
     1102
     1103/**
     1104 * webkit_web_settings_get_default_font_family:
     1105 * @settings: a #WebKitSettings
     1106 *
     1107 * Gets the #WebKitSettings:default-font-family property.
     1108 *
     1109 * Returns: The default font family used to display content that does not specify a font.
     1110 */
     1111const gchar* webkit_settings_get_default_font_family(WebKitSettings* settings)
     1112{
     1113    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1114
     1115    return settings->priv->defaultFontFamily.data();
     1116}
     1117
     1118/**
     1119 * webkit_settings_set_default_font_family:
     1120 * @settings: a #WebKitSettings
     1121 * @default_font_family: the new default font family
     1122 *
     1123 * Set the #WebKitSettings:default-font-family property.
     1124 */
     1125void webkit_settings_set_default_font_family(WebKitSettings* settings, const gchar* defaultFontFamily)
     1126{
     1127    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1128    g_return_if_fail(defaultFontFamily);
     1129
     1130    WebKitSettingsPrivate* priv = settings->priv;
     1131    if (!g_strcmp0(priv->defaultFontFamily.data(), defaultFontFamily))
     1132        return;
     1133
     1134    WKRetainPtr<WKStringRef> standardFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(defaultFontFamily));
     1135    WKPreferencesSetStandardFontFamily(priv->preferences.get(), standardFontFamilyRef.get());
     1136    priv->defaultFontFamily = WebKit::toImpl(standardFontFamilyRef.get())->string().utf8();
     1137
     1138    g_object_notify(G_OBJECT(settings), "default-font-family");
     1139}
     1140
     1141/**
     1142 * webkit_settings_get_monospace_font_family:
     1143 * @settings: a #WebKitSettings
     1144 *
     1145 * Gets the #WebKitSettings:monospace-font-family property.
     1146 *
     1147 * Returns: Default font family used to display content marked with monospace font.
     1148 */
     1149const gchar* webkit_settings_get_monospace_font_family(WebKitSettings* settings)
     1150{
     1151    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1152
     1153    return settings->priv->monospaceFontFamily.data();
     1154}
     1155
     1156/**
     1157 * webkit_settings_set_monospace_font_family:
     1158 * @settings: a #WebKitSettings
     1159 * @monospace_font_family: the new default monospace font family
     1160 *
     1161 * Set the #WebKitSettings:monospace-font-family property.
     1162 */
     1163void webkit_settings_set_monospace_font_family(WebKitSettings* settings, const gchar* monospaceFontFamily)
     1164{
     1165    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1166    g_return_if_fail(monospaceFontFamily);
     1167
     1168    WebKitSettingsPrivate* priv = settings->priv;
     1169    if (!g_strcmp0(priv->monospaceFontFamily.data(), monospaceFontFamily))
     1170        return;
     1171
     1172    WKRetainPtr<WKStringRef> fixedFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(monospaceFontFamily));
     1173    WKPreferencesSetFixedFontFamily(priv->preferences.get(), fixedFontFamilyRef.get());
     1174    priv->monospaceFontFamily = WebKit::toImpl(fixedFontFamilyRef.get())->string().utf8();
     1175
     1176    g_object_notify(G_OBJECT(settings), "monospace-font-family");
     1177}
     1178
     1179/**
     1180 * webkit_settings_get_serif_font_family:
     1181 * @settings: a #WebKitSettings
     1182 *
     1183 * Gets the #WebKitSettings:serif-font-family property.
     1184 *
     1185 * Returns: The default font family used to display content marked with serif font.
     1186 */
     1187const gchar* webkit_settings_get_serif_font_family(WebKitSettings* settings)
     1188{
     1189    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1190
     1191    return settings->priv->serifFontFamily.data();
     1192}
     1193
     1194/**
     1195 * webkit_settings_set_serif_font_family:
     1196 * @settings: a #WebKitSettings
     1197 * @serif_font_family: the new default serif font family
     1198 *
     1199 * Set the #WebKitSettings:serif-font-family property.
     1200 */
     1201void webkit_settings_set_serif_font_family(WebKitSettings* settings, const gchar* serifFontFamily)
     1202{
     1203    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1204    g_return_if_fail(serifFontFamily);
     1205
     1206    WebKitSettingsPrivate* priv = settings->priv;
     1207    if (!g_strcmp0(priv->serifFontFamily.data(), serifFontFamily))
     1208        return;
     1209
     1210    WKRetainPtr<WKStringRef> serifFontFamilyRef = WKStringCreateWithUTF8CString(serifFontFamily);
     1211    WKPreferencesSetSerifFontFamily(priv->preferences.get(), serifFontFamilyRef.get());
     1212    priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
     1213
     1214    g_object_notify(G_OBJECT(settings), "serif-font-family");
     1215}
     1216
     1217/**
     1218 * webkit_settings_get_sans_serif_font_family:
     1219 * @settings: a #WebKitSettings
     1220 *
     1221 * Gets the #WebKitSettings:sans-serif-font-family property.
     1222 *
     1223 * Returns: The default font family used to display content marked with sans-serif font.
     1224 */
     1225const gchar* webkit_settings_get_sans_serif_font_family(WebKitSettings* settings)
     1226{
     1227    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1228
     1229    return settings->priv->sansSerifFontFamily.data();
     1230}
     1231
     1232/**
     1233 * webkit_settings_set_sans_serif_font_family:
     1234 * @settings: a #WebKitSettings
     1235 * @sans_serif_font_family: the new default sans-serif font family
     1236 *
     1237 * Set the #WebKitSettings:sans-serif-font-family property.
     1238 */
     1239void webkit_settings_set_sans_serif_font_family(WebKitSettings* settings, const gchar* sansSerifFontFamily)
     1240{
     1241    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1242    g_return_if_fail(sansSerifFontFamily);
     1243
     1244    WebKitSettingsPrivate* priv = settings->priv;
     1245    if (!g_strcmp0(priv->sansSerifFontFamily.data(), sansSerifFontFamily))
     1246        return;
     1247
     1248    WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(sansSerifFontFamily));
     1249    WKPreferencesSetSansSerifFontFamily(priv->preferences.get(), sansSerifFontFamilyRef.get());
     1250    priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
     1251
     1252    g_object_notify(G_OBJECT(settings), "sans-serif-font-family");
     1253}
     1254
     1255/**
     1256 * webkit_settings_get_cursive_font_family:
     1257 * @settings: a #WebKitSettings
     1258 *
     1259 * Gets the #WebKitSettings:cursive-font-family property.
     1260 *
     1261 * Returns: The default font family used to display content marked with cursive font.
     1262 */
     1263const gchar* webkit_settings_get_cursive_font_family(WebKitSettings* settings)
     1264{
     1265    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1266
     1267    return settings->priv->cursiveFontFamily.data();
     1268}
     1269
     1270/**
     1271 * webkit_settings_set_cursive_font_family:
     1272 * @settings: a #WebKitSettings
     1273 * @cursive_font_family: the new default cursive font family
     1274 *
     1275 * Set the #WebKitSettings:cursive-font-family property.
     1276 */
     1277void webkit_settings_set_cursive_font_family(WebKitSettings* settings, const gchar* cursiveFontFamily)
     1278{
     1279    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1280    g_return_if_fail(cursiveFontFamily);
     1281
     1282    WebKitSettingsPrivate* priv = settings->priv;
     1283    if (!g_strcmp0(priv->cursiveFontFamily.data(), cursiveFontFamily))
     1284        return;
     1285
     1286    WKRetainPtr<WKStringRef> cursiveFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(cursiveFontFamily));
     1287    WKPreferencesSetCursiveFontFamily(priv->preferences.get(), cursiveFontFamilyRef.get());
     1288    priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
     1289
     1290    g_object_notify(G_OBJECT(settings), "cursive-font-family");
     1291}
     1292
     1293/**
     1294 * webkit_settings_get_fantasy_font_family:
     1295 * @settings: a #WebKitSettings
     1296 *
     1297 * Gets the #WebKitSettings:fantasy-font-family property.
     1298 *
     1299 * Returns: The default font family used to display content marked with fantasy font.
     1300 */
     1301const gchar* webkit_settings_get_fantasy_font_family(WebKitSettings* settings)
     1302{
     1303    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1304
     1305    return settings->priv->fantasyFontFamily.data();
     1306}
     1307
     1308/**
     1309 * webkit_settings_set_fantasy_font_family:
     1310 * @settings: a #WebKitSettings
     1311 * @fantasy_font_family: the new default fantasy font family
     1312 *
     1313 * Set the #WebKitSettings:fantasy-font-family property.
     1314 */
     1315void webkit_settings_set_fantasy_font_family(WebKitSettings* settings, const gchar* fantasyFontFamily)
     1316{
     1317    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1318    g_return_if_fail(fantasyFontFamily);
     1319
     1320    WebKitSettingsPrivate* priv = settings->priv;
     1321    if (!g_strcmp0(priv->fantasyFontFamily.data(), fantasyFontFamily))
     1322        return;
     1323
     1324    WKRetainPtr<WKStringRef> fantasyFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(fantasyFontFamily));
     1325    WKPreferencesSetFantasyFontFamily(priv->preferences.get(), fantasyFontFamilyRef.get());
     1326    priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
     1327
     1328    g_object_notify(G_OBJECT(settings), "fantasy-font-family");
     1329}
     1330
     1331/**
     1332 * webkit_settings_get_pictograph_font_family:
     1333 * @settings: a #WebKitSettings
     1334 *
     1335 * Gets the #WebKitSettings:pictograph-font-family property.
     1336 *
     1337 * Returns: The default font family used to display content marked with pictograph font.
     1338 */
     1339const gchar* webkit_settings_get_pictograph_font_family(WebKitSettings* settings)
     1340{
     1341    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1342
     1343    return settings->priv->pictographFontFamily.data();
     1344}
     1345
     1346/**
     1347 * webkit_settings_set_pictograph_font_family:
     1348 * @settings: a #WebKitSettings
     1349 * @pictograph_font_family: the new default pictograph font family
     1350 *
     1351 * Set the #WebKitSettings:pictograph-font-family property.
     1352 */
     1353void webkit_settings_set_pictograph_font_family(WebKitSettings* settings, const gchar* pictographFontFamily)
     1354{
     1355    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1356    g_return_if_fail(pictographFontFamily);
     1357
     1358    WebKitSettingsPrivate* priv = settings->priv;
     1359    if (!g_strcmp0(priv->pictographFontFamily.data(), pictographFontFamily))
     1360        return;
     1361
     1362    WKRetainPtr<WKStringRef> pictographFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(pictographFontFamily));
     1363    WKPreferencesSetPictographFontFamily(priv->preferences.get(), pictographFontFamilyRef.get());
     1364    priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
     1365
     1366    g_object_notify(G_OBJECT(settings), "pictograph-font-family");
     1367}
     1368
     1369/**
     1370 * webkit_settings_get_default_font_size:
     1371 * @settings: a #WebKitSettings
     1372 *
     1373 * Gets the #WebKitSettings:default-font-size property.
     1374 *
     1375 * Returns: The default font size.
     1376 */
     1377guint32 webkit_settings_get_default_font_size(WebKitSettings* settings)
     1378{
     1379    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1380
     1381    return WKPreferencesGetDefaultFontSize(settings->priv->preferences.get());
     1382}
     1383
     1384/**
     1385 * webkit_settings_set_default_font_size:
     1386 * @settings: a #WebKitSettings
     1387 * @font_size: default font size to be set in pixels
     1388 *
     1389 * Set the #WebKitSettings:default-font-size property.
     1390 */
     1391void webkit_settings_set_default_font_size(WebKitSettings* settings, guint32 fontSize)
     1392{
     1393    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1394
     1395    WebKitSettingsPrivate* priv = settings->priv;
     1396
     1397    uint32_t currentSize = WKPreferencesGetDefaultFontSize(priv->preferences.get());
     1398    if (currentSize == fontSize)
     1399        return;
     1400
     1401    WKPreferencesSetDefaultFontSize(priv->preferences.get(), fontSize);
     1402    g_object_notify(G_OBJECT(settings), "default-font-size");
     1403}
     1404
     1405/**
     1406 * webkit_settings_get_default_monospace_font_size:
     1407 * @settings: a #WebKitSettings
     1408 *
     1409 * Gets the #WebKitSettings:default-monospace-font-size property.
     1410 *
     1411 * Returns: Default monospace font size.
     1412 */
     1413guint32 webkit_settings_get_default_monospace_font_size(WebKitSettings* settings)
     1414{
     1415    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1416
     1417    return WKPreferencesGetDefaultFixedFontSize(settings->priv->preferences.get());
     1418}
     1419
     1420/**
     1421 * webkit_settings_set_default_monospace_font_size:
     1422 * @settings: a #WebKitSettings
     1423 * @font_size: default monospace font size to be set in pixels
     1424 *
     1425 * Set the #WebKitSettings:default-monospace-font-size property.
     1426 */
     1427void webkit_settings_set_default_monospace_font_size(WebKitSettings* settings, guint32 fontSize)
     1428{
     1429    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1430
     1431    WebKitSettingsPrivate* priv = settings->priv;
     1432
     1433    uint32_t currentSize = WKPreferencesGetDefaultFixedFontSize(priv->preferences.get());
     1434    if (currentSize == fontSize)
     1435        return;
     1436
     1437    WKPreferencesSetDefaultFixedFontSize(priv->preferences.get(), fontSize);
     1438    g_object_notify(G_OBJECT(settings), "default-monospace-font-size");
     1439}
     1440
     1441/**
     1442 * webkit_settings_get_minimum_font_size:
     1443 * @settings: a #WebKitSettings
     1444 *
     1445 * Gets the #WebKitSettings:minimum-font-size property.
     1446 *
     1447 * Returns: Minimum font size.
     1448 */
     1449guint32 webkit_settings_get_minimum_font_size(WebKitSettings* settings)
     1450{
     1451    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1452
     1453    return WKPreferencesGetMinimumFontSize(settings->priv->preferences.get());
     1454}
     1455
     1456/**
     1457 * webkit_settings_set_minimum_font_size:
     1458 * @settings: a #WebKitSettings
     1459 * @font_size: minimum font size to be set in points
     1460 *
     1461 * Set the #WebKitSettings:minimum-font-size property.
     1462 */
     1463void webkit_settings_set_minimum_font_size(WebKitSettings* settings, guint32 fontSize)
     1464{
     1465    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1466
     1467    WebKitSettingsPrivate* priv = settings->priv;
     1468
     1469    uint32_t currentSize = WKPreferencesGetMinimumFontSize(priv->preferences.get());
     1470    if (currentSize == fontSize)
     1471        return;
     1472
     1473    WKPreferencesSetMinimumFontSize(priv->preferences.get(), fontSize);
     1474    g_object_notify(G_OBJECT(settings), "minimum-font-size");
     1475}
     1476
     1477/**
     1478 * webkit_settings_get_default_charset:
     1479 * @settings: a #WebKitSettings
     1480 *
     1481 * Gets the #WebKitSettings:default-charset property.
     1482 *
     1483 * Returns: Default charset.
     1484 */
     1485const gchar* webkit_settings_get_default_charset(WebKitSettings* settings)
     1486{
     1487    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
     1488
     1489    return settings->priv->defaultCharset.data();
     1490}
     1491
     1492/**
     1493 * webkit_settings_set_default_charset:
     1494 * @settings: a #WebKitSettings
     1495 * @default_charset: default charset to be set
     1496 *
     1497 * Set the #WebKitSettings:default-charset property.
     1498 */
     1499void webkit_settings_set_default_charset(WebKitSettings* settings, const gchar* defaultCharset)
     1500{
     1501    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     1502    g_return_if_fail(defaultCharset);
     1503
     1504    WebKitSettingsPrivate* priv = settings->priv;
     1505    if (!g_strcmp0(priv->defaultCharset.data(), defaultCharset))
     1506        return;
     1507
     1508    WKRetainPtr<WKStringRef> defaultCharsetRef = adoptWK(WKStringCreateWithUTF8CString(defaultCharset));
     1509    WKPreferencesSetDefaultTextEncodingName(priv->preferences.get(), defaultCharsetRef.get());
     1510    priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
     1511
     1512    g_object_notify(G_OBJECT(settings), "default-charset");
     1513}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h

    r98846 r100056  
    161161                                                                gboolean        enabled);
    162162
     163WEBKIT_API const gchar *
     164webkit_settings_get_default_font_family                        (WebKitSettings* settings);
     165
     166WEBKIT_API void
     167webkit_settings_set_default_font_family                        (WebKitSettings* settings,
     168                                                                const gchar* default_font_family);
     169
     170WEBKIT_API const gchar *
     171webkit_settings_get_monospace_font_family                      (WebKitSettings* settings);
     172
     173WEBKIT_API void
     174webkit_settings_set_monospace_font_family                      (WebKitSettings* settings,
     175                                                                const gchar* monospace_font_family);
     176
     177WEBKIT_API const gchar *
     178webkit_settings_get_serif_font_family                          (WebKitSettings* settings);
     179
     180WEBKIT_API void
     181webkit_settings_set_serif_font_family                          (WebKitSettings* settings,
     182                                                                const gchar* serif_font_family);
     183
     184WEBKIT_API const gchar *
     185webkit_settings_get_sans_serif_font_family                     (WebKitSettings* settings);
     186
     187WEBKIT_API void
     188webkit_settings_set_sans_serif_font_family                     (WebKitSettings* settings,
     189                                                                const gchar* sans_serif_font_family);
     190
     191WEBKIT_API const gchar *
     192webkit_settings_get_cursive_font_family                        (WebKitSettings* settings);
     193
     194WEBKIT_API void
     195webkit_settings_set_cursive_font_family                        (WebKitSettings* settings,
     196                                                                const gchar* cursive_font_family);
     197
     198WEBKIT_API const gchar *
     199webkit_settings_get_fantasy_font_family                        (WebKitSettings* settings);
     200
     201WEBKIT_API void
     202webkit_settings_set_fantasy_font_family                        (WebKitSettings* settings,
     203                                                                const gchar* fantasy_font_family);
     204
     205WEBKIT_API const gchar *
     206webkit_settings_get_pictograph_font_family                     (WebKitSettings* settings);
     207
     208WEBKIT_API void
     209webkit_settings_set_pictograph_font_family                     (WebKitSettings* settings,
     210                                                                const gchar* pictograph_font_family);
     211
     212WEBKIT_API guint32
     213webkit_settings_get_default_font_size                          (WebKitSettings* settings);
     214
     215WEBKIT_API void
     216webkit_settings_set_default_font_size                          (WebKitSettings* settings,
     217                                                                guint32 font_size);
     218
     219WEBKIT_API guint32
     220webkit_settings_get_default_monospace_font_size                (WebKitSettings* settings);
     221
     222WEBKIT_API void
     223webkit_settings_set_default_monospace_font_size                (WebKitSettings* settings,
     224                                                                guint32 font_size);
     225
     226WEBKIT_API guint32
     227webkit_settings_get_minimum_font_size                          (WebKitSettings* settings);
     228
     229WEBKIT_API void
     230webkit_settings_set_minimum_font_size                          (WebKitSettings* settings,
     231                                                                guint32 font_size);
     232
     233WEBKIT_API const gchar *
     234webkit_settings_get_default_charset                            (WebKitSettings* settings);
     235
     236WEBKIT_API void
     237webkit_settings_set_default_charset                            (WebKitSettings* settings,
     238                                                                const gchar* default_charset);
     239
    163240G_END_DECLS
    164241
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r99863 r100056  
    182182webkit_settings_get_load_icons_ignoring_image_load_setting
    183183webkit_settings_set_load_icons_ignoring_image_load_setting
     184webkit_settings_get_default_font_family
     185webkit_settings_set_default_font_family
     186webkit_settings_get_monospace_font_family
     187webkit_settings_set_monospace_font_family
     188webkit_settings_get_serif_font_family
     189webkit_settings_set_serif_font_family
     190webkit_settings_get_sans_serif_font_family
     191webkit_settings_set_sans_serif_font_family
     192webkit_settings_get_cursive_font_family
     193webkit_settings_set_cursive_font_family
     194webkit_settings_get_fantasy_font_family
     195webkit_settings_set_fantasy_font_family
     196webkit_settings_get_pictograph_font_family
     197webkit_settings_set_pictograph_font_family
     198webkit_settings_get_default_font_size
     199webkit_settings_set_default_font_size
     200webkit_settings_get_default_monospace_font_size
     201webkit_settings_set_default_monospace_font_size
     202webkit_settings_get_minimum_font_size
     203webkit_settings_set_minimum_font_size
     204webkit_settings_get_default_charset
     205webkit_settings_set_default_charset
    184206
    185207<SUBSECTION Standard>
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp

    r99045 r100056  
    103103    g_assert(webkit_settings_get_enable_hyperlink_auditing(settings));
    104104
     105    // Default font family is "sans-serif".
     106    g_assert_cmpstr(webkit_settings_get_default_font_family(settings), ==, "sans-serif");
     107    webkit_settings_set_default_font_family(settings, "monospace");
     108    g_assert_cmpstr(webkit_settings_get_default_font_family(settings), ==, "monospace");
     109
     110    // Default monospace font family font family is "monospace".
     111    g_assert_cmpstr(webkit_settings_get_monospace_font_family(settings), ==, "monospace");
     112    webkit_settings_set_monospace_font_family(settings, "sans-serif");
     113    g_assert_cmpstr(webkit_settings_get_monospace_font_family(settings), ==, "sans-serif");
     114
     115    // Default serif font family is "serif".
     116    g_assert_cmpstr(webkit_settings_get_serif_font_family(settings), ==, "serif");
     117    webkit_settings_set_serif_font_family(settings, "sans-serif");
     118    g_assert_cmpstr(webkit_settings_get_serif_font_family(settings), ==, "sans-serif");
     119
     120    // Default sans serif font family is "sans-serif".
     121    g_assert_cmpstr(webkit_settings_get_sans_serif_font_family(settings), ==, "sans-serif");
     122    webkit_settings_set_sans_serif_font_family(settings, "serif");
     123    g_assert_cmpstr(webkit_settings_get_sans_serif_font_family(settings), ==, "serif");
     124
     125    // Default cursive font family "serif".
     126    g_assert_cmpstr(webkit_settings_get_cursive_font_family(settings), ==, "serif");
     127    webkit_settings_set_cursive_font_family(settings, "sans-serif");
     128    g_assert_cmpstr(webkit_settings_get_cursive_font_family(settings), ==, "sans-serif");
     129
     130    // Default fantasy font family is "serif".
     131    g_assert_cmpstr(webkit_settings_get_fantasy_font_family(settings), ==, "serif");
     132    webkit_settings_set_fantasy_font_family(settings, "sans-serif");
     133    g_assert_cmpstr(webkit_settings_get_fantasy_font_family(settings), ==, "sans-serif");
     134
     135    // Default pictograph font family is "serif".
     136    g_assert_cmpstr(webkit_settings_get_pictograph_font_family(settings), ==, "serif");
     137    webkit_settings_set_pictograph_font_family(settings, "sans-serif");
     138    g_assert_cmpstr(webkit_settings_get_pictograph_font_family(settings), ==, "sans-serif");
     139
     140    // Default font size is 12.
     141    g_assert_cmpuint(webkit_settings_get_default_font_size(settings), ==, 12);
     142    webkit_settings_set_default_font_size(settings, 14);
     143    g_assert_cmpuint(webkit_settings_get_default_font_size(settings), ==, 14);
     144
     145    // Default monospace font size is 10.
     146    g_assert_cmpuint(webkit_settings_get_default_monospace_font_size(settings), ==, 10);
     147    webkit_settings_set_default_monospace_font_size(settings, 12);
     148    g_assert_cmpuint(webkit_settings_get_default_monospace_font_size(settings), ==, 12);
     149
     150    // Default minimum font size is 5.
     151    g_assert_cmpuint(webkit_settings_get_minimum_font_size(settings), ==, 5);
     152    webkit_settings_set_minimum_font_size(settings, 7);
     153    g_assert_cmpuint(webkit_settings_get_minimum_font_size(settings), ==, 7);
     154
     155    // Default charset is "iso-8859-1".
     156    g_assert_cmpstr(webkit_settings_get_default_charset(settings), ==, "iso-8859-1");
     157    webkit_settings_set_default_charset(settings, "utf8");
     158    g_assert_cmpstr(webkit_settings_get_default_charset(settings), ==, "utf8");
     159
    105160    g_object_unref(G_OBJECT(settings));
    106161#endif
Note: See TracChangeset for help on using the changeset viewer.