Changeset 29723 in webkit
- Timestamp:
- Jan 22, 2008 12:45:18 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 2 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r29714 r29723 1 2008-01-22 Christian Dywan <christian@imendio.com> 2 3 Reviewed by Alp Toker. 4 5 [GTK] API: WebKitWebSettings is not usable 6 http://bugs.webkit.org/show_bug.cgi?id=16219 7 8 Implement WebKitWebSettings. 9 10 * GNUmakefile.am: 11 1 12 2008-01-22 Simon Hausmann <hausmann@webkit.org> 2 13 -
trunk/GNUmakefile.am
r29701 r29723 239 239 WebKit/gtk/WebView/webkitnetworkrequest.h \ 240 240 WebKit/gtk/WebView/webkitwebframe.h \ 241 WebKit/gtk/WebView/webkitwebsettings.h \ 241 242 WebKit/gtk/WebView/webkitwebview.h 242 243 … … 247 248 webkitgtk_headers += \ 248 249 WebKit/gtk/WebView/webkitprivate.h \ 249 WebKit/gtk/WebView/webkitsettings.h \250 250 WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \ 251 251 WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \ … … 259 259 WebKit/gtk/WebView/webkitnetworkrequest.cpp \ 260 260 WebKit/gtk/WebView/webkitprivate.cpp \ 261 WebKit/gtk/WebView/webkitsettings.cpp \262 261 WebKit/gtk/WebView/webkitwebframe.cpp \ 262 WebKit/gtk/WebView/webkitwebsettings.cpp \ 263 263 WebKit/gtk/WebView/webkitwebview.cpp \ 264 264 WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ -
trunk/WebKit/gtk/ChangeLog
r29699 r29723 1 2008-01-22 Christian Dywan <christian@imendio.com> 2 3 Reviewed by Alp Toker. 4 5 [GTK] API: WebKitWebSettings is not usable 6 http://bugs.webkit.org/show_bug.cgi?id=16219 7 8 Implement WebKitWebSettings. 9 10 * WebView/headers.pri: 11 * WebView/webkit.h: 12 * WebView/webkitprivate.cpp: 13 * WebView/webkitprivate.h: 14 * WebView/webkitsettings.cpp: Removed. 15 * WebView/webkitsettings.h: Removed. 16 * WebView/webkitwebsettings.cpp: Added. 17 * WebView/webkitwebsettings.h: Added. 18 * WebView/webkitwebview.cpp: 19 * WebView/webkitwebview.h: 20 1 21 2008-01-21 Alp Toker <alp@atoker.com> 2 22 -
trunk/WebKit/gtk/WebView/headers.pri
r28818 r29723 3 3 $$PWD/webkitnetworkrequest.h \ 4 4 $$PWD/webkitwebframe.h \ 5 $$PWD/webkitwebsettings.h \ 5 6 $$PWD/webkitwebview.h -
trunk/WebKit/gtk/WebView/webkit.h
r29663 r29723 24 24 #include <webkitnetworkrequest.h> 25 25 #include <webkitwebframe.h> 26 #include <webkitwebsettings.h> 26 27 #include <webkitwebview.h> 27 28 -
trunk/WebKit/gtk/WebView/webkitprivate.cpp
r29698 r29723 37 37 38 38 namespace WebKit { 39 void apply(WebKitSettings*, WebCore::Settings*)40 {41 notImplemented();42 }43 44 WebKitSettings* create(WebCore::Settings*)45 {46 notImplemented();47 return 0;48 }49 39 50 40 WebKitWebView* getViewFromFrame(WebKitWebFrame* frame) -
trunk/WebKit/gtk/WebView/webkitprivate.h
r29663 r29723 28 28 29 29 #include "webkitdefines.h" 30 #include "webkitsettings.h"31 30 #include "webkitwebview.h" 32 31 #include "webkitwebframe.h" 32 #include "webkitwebsettings.h" 33 33 #include "webkitnetworkrequest.h" 34 34 … … 39 39 40 40 namespace WebKit { 41 void apply(WebKitSettings*,WebCore::Settings*);42 WebKitSettings* create(WebCore::Settings*);43 41 WebKitWebView* getViewFromFrame(WebKitWebFrame*); 44 42 … … 59 57 struct _WebKitWebViewPrivate { 60 58 WebCore::Page* corePage; 61 Web Core::Settings* settings;59 WebKitWebSettings* webSettings; 62 60 63 61 WebKitWebFrame* mainFrame; -
trunk/WebKit/gtk/WebView/webkitwebview.cpp
r29683 r29723 86 86 PROP_COPY_TARGET_LIST, 87 87 PROP_PASTE_TARGET_LIST, 88 PROP_EDITABLE 88 PROP_EDITABLE, 89 PROP_SETTINGS 89 90 }; 90 91 … … 193 194 g_value_set_boolean(value, webkit_web_view_get_editable(webView)); 194 195 break; 196 case PROP_SETTINGS: 197 g_value_set_object(value, webkit_web_view_get_settings(webView)); 198 break; 195 199 default: 196 200 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 197 break;198 201 } 199 202 } … … 207 210 webkit_web_view_set_editable(webView, g_value_get_boolean(value)); 208 211 break; 212 case PROP_SETTINGS: 213 webkit_web_view_set_settings(webView, WEBKIT_WEB_SETTINGS(g_value_get_object(value))); 214 break; 209 215 default: 210 g_assert_not_reached(); 211 break; 216 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 212 217 } 213 218 } … … 576 581 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(WEBKIT_WEB_VIEW(object)); 577 582 delete webViewData->corePage; 578 delete webViewData->settings;583 g_object_unref(webViewData->webSettings); 579 584 g_object_unref(webViewData->mainFrame); 580 585 g_object_unref(webViewData->imContext); … … 1008 1013 WEBKIT_PARAM_READABLE)); 1009 1014 1015 g_object_class_install_property(objectClass, PROP_SETTINGS, 1016 g_param_spec_object("settings", 1017 "Settings", 1018 "An associated WebKitWebSettings instance", 1019 WEBKIT_TYPE_WEB_SETTINGS, 1020 WEBKIT_PARAM_READWRITE)); 1021 1010 1022 g_object_class_install_property(objectClass, PROP_EDITABLE, 1011 1023 g_param_spec_boolean("editable", … … 1016 1028 } 1017 1029 1030 static void webkit_web_view_screen_changed(WebKitWebView* webView, GdkScreen* previousScreen, gpointer userdata) 1031 { 1032 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1033 WebKitWebSettings* webSettings = webViewData->webSettings; 1034 Settings* settings = webViewData->corePage->settings(); 1035 1036 guint defaultFontSize, defaultMonospaceFontSize, minimumFontSize, minimumLogicalFontSize; 1037 1038 g_object_get(G_OBJECT(webSettings), 1039 "default-font-size", &defaultFontSize, 1040 "default-monospace-font-size", &defaultMonospaceFontSize, 1041 "minimum-font-size", &minimumFontSize, 1042 "minimum-logical-font-size", &minimumLogicalFontSize, 1043 NULL); 1044 1045 #if GTK_CHECK_VERSION(2, 10, 0) 1046 GdkScreen* screen = gtk_widget_has_screen(GTK_WIDGET(webView)) ? gtk_widget_get_screen(GTK_WIDGET(webView)) : gdk_screen_get_default(); 1047 guint DPI = gdk_screen_get_resolution(screen); 1048 #else 1049 guint DPI = 96; 1050 g_warning("Cannot retrieve resolution, falling back to 96 DPI"); 1051 #endif 1052 settings->setDefaultFontSize(defaultFontSize / 72.0 * DPI); 1053 settings->setDefaultFixedFontSize(defaultMonospaceFontSize / 72.0 * DPI); 1054 settings->setMinimumFontSize(minimumFontSize / 72.0 * DPI); 1055 settings->setMinimumLogicalFontSize(minimumLogicalFontSize / 72.0 * DPI); 1056 } 1057 1058 static void webkit_web_view_update_settings(WebKitWebView* webView) 1059 { 1060 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1061 WebKitWebSettings* webSettings = webViewData->webSettings; 1062 Settings* settings = webViewData->corePage->settings(); 1063 1064 gchar* defaultEncoding, *cursiveFontFamily, *defaultFontFamily, *fantasyFontFamily, *monospaceFontFamily, *sansSerifFontFamily, *serifFontFamily, *userStylesheetUri; 1065 gboolean autoLoadImages, autoShrinkImages, printBackgrounds, enableScripts, enablePlugins, resizableTextAreas; 1066 1067 g_object_get(G_OBJECT(webSettings), 1068 "default-encoding", &defaultEncoding, 1069 "cursive-font-family", &cursiveFontFamily, 1070 "default-font-family", &defaultFontFamily, 1071 "fantasy-font-family", &fantasyFontFamily, 1072 "monospace-font-family", &monospaceFontFamily, 1073 "sans-serif-font-family", &sansSerifFontFamily, 1074 "serif-font-family", &serifFontFamily, 1075 "auto-load-images", &autoLoadImages, 1076 "auto-shrink-images", &autoShrinkImages, 1077 "print-backgrounds", &printBackgrounds, 1078 "enable-scripts", &enableScripts, 1079 "enable-plugins", &enablePlugins, 1080 "resizable-text-areas", &resizableTextAreas, 1081 "user-stylesheet-uri", &userStylesheetUri, 1082 NULL); 1083 1084 settings->setDefaultTextEncodingName(defaultEncoding); 1085 settings->setCursiveFontFamily(cursiveFontFamily); 1086 settings->setStandardFontFamily(defaultFontFamily); 1087 settings->setFantasyFontFamily(fantasyFontFamily); 1088 settings->setFixedFontFamily(monospaceFontFamily); 1089 settings->setSansSerifFontFamily(sansSerifFontFamily); 1090 settings->setSerifFontFamily(serifFontFamily); 1091 settings->setLoadsImagesAutomatically(autoLoadImages); 1092 settings->setShrinksStandaloneImagesToFit(autoShrinkImages); 1093 settings->setShouldPrintBackgrounds(printBackgrounds); 1094 settings->setJavaScriptEnabled(enableScripts); 1095 settings->setPluginsEnabled(enablePlugins); 1096 settings->setTextAreasAreResizable(resizableTextAreas); 1097 settings->setUserStyleSheetLocation(userStylesheetUri); 1098 1099 g_free(defaultEncoding); 1100 g_free(cursiveFontFamily); 1101 g_free(defaultFontFamily); 1102 g_free(fantasyFontFamily); 1103 g_free(monospaceFontFamily); 1104 g_free(sansSerifFontFamily); 1105 g_free(serifFontFamily); 1106 g_free(userStylesheetUri); 1107 1108 webkit_web_view_screen_changed(webView, NULL, NULL); 1109 } 1110 1111 static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView) 1112 { 1113 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1114 Settings* settings = webViewData->corePage->settings(); 1115 1116 const gchar* name = g_intern_string(pspec->name); 1117 GValue value = {0, 0}; 1118 g_value_init(&value, pspec->value_type); 1119 g_object_get_property(G_OBJECT(webSettings), name, &value); 1120 1121 if (name == g_intern_string("default-encoding")) 1122 settings->setDefaultTextEncodingName(g_value_get_string(&value)); 1123 else if (name == g_intern_string("cursive-font-family")) 1124 settings->setCursiveFontFamily(g_value_get_string(&value)); 1125 else if (name == g_intern_string("default-font-family")) 1126 settings->setStandardFontFamily(g_value_get_string(&value)); 1127 else if (name == g_intern_string("fantasy-font-family")) 1128 settings->setFantasyFontFamily(g_value_get_string(&value)); 1129 else if (name == g_intern_string("monospace-font-family")) 1130 settings->setFixedFontFamily(g_value_get_string(&value)); 1131 else if (name == g_intern_string("sans-serif-font-family")) 1132 settings->setSansSerifFontFamily(g_value_get_string(&value)); 1133 else if (name == g_intern_string("serif-font-family")) 1134 settings->setSerifFontFamily(g_value_get_string(&value)); 1135 else if (name == g_intern_string("default-font-size")) 1136 settings->setDefaultFontSize(g_value_get_int(&value)); 1137 else if (name == g_intern_string("default-monospace-font-size")) 1138 settings->setDefaultFixedFontSize(g_value_get_int(&value)); 1139 else if (name == g_intern_string("minimum-font-size")) 1140 settings->setMinimumFontSize(g_value_get_int(&value)); 1141 else if (name == g_intern_string("minimum-logical-font-size")) 1142 settings->setMinimumLogicalFontSize(g_value_get_int(&value)); 1143 else if (name == g_intern_string("auto-load-images")) 1144 settings->setLoadsImagesAutomatically(g_value_get_boolean(&value)); 1145 else if (name == g_intern_string("auto-shrink-images")) 1146 settings->setShrinksStandaloneImagesToFit(g_value_get_boolean(&value)); 1147 else if (name == g_intern_string("print-backgrounds")) 1148 settings->setShouldPrintBackgrounds(g_value_get_boolean(&value)); 1149 else if (name == g_intern_string("enable-scripts")) 1150 settings->setJavaScriptEnabled(g_value_get_boolean(&value)); 1151 else if (name == g_intern_string("enable-plugins")) 1152 settings->setPluginsEnabled(g_value_get_boolean(&value)); 1153 else if (name == g_intern_string("resizable-text-areas")) 1154 settings->setTextAreasAreResizable(g_value_get_boolean(&value)); 1155 else if (name == g_intern_string("user-stylesheet-uri")) 1156 settings->setUserStyleSheetLocation(g_value_get_string(&value)); 1157 else 1158 g_warning("Unexpected setting '%s'", name); 1159 g_value_unset(&value); 1160 } 1161 1018 1162 static void webkit_web_view_init(WebKitWebView* webView) 1019 1163 { 1020 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE( WEBKIT_WEB_VIEW(webView));1164 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1021 1165 webViewData->imContext = gtk_im_multicontext_new(); 1022 1166 webViewData->corePage = new Page(new WebKit::ChromeClient(webView), new WebKit::ContextMenuClient, new WebKit::EditorClient(webView), new WebKit::DragClient, new WebKit::InspectorClient); 1023 1167 1024 Settings* settings = webViewData->corePage->settings(); 1025 settings->setLoadsImagesAutomatically(true); 1026 settings->setMinimumFontSize(5); 1027 settings->setDOMPasteAllowed(true); 1028 settings->setMinimumLogicalFontSize(5); 1029 settings->setShouldPrintBackgrounds(true); 1030 settings->setJavaScriptEnabled(true); 1031 settings->setDefaultFixedFontSize(14); 1032 settings->setDefaultFontSize(14); 1033 settings->setSerifFontFamily("Times New Roman"); 1034 settings->setSansSerifFontFamily("Arial"); 1035 settings->setFixedFontFamily("Courier New"); 1036 settings->setStandardFontFamily("Arial"); 1168 webViewData->webSettings = webkit_web_settings_new(); 1169 webkit_web_view_update_settings(webView); 1170 g_signal_connect(webView, "screen-changed", G_CALLBACK(webkit_web_view_screen_changed), NULL); 1171 g_signal_connect(webViewData->webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView); 1037 1172 1038 1173 GTK_WIDGET_SET_FLAGS(webView, GTK_CAN_FOCUS); … … 1065 1200 } 1066 1201 1067 void webkit_web_view_set_settings(WebKitWebView* webView, WebKit Settings* settings)1202 void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* webSettings) 1068 1203 { 1069 1204 g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); 1070 g_return_if_fail(settings); 1071 1072 notImplemented(); 1073 } 1074 1075 WebKitSettings* webkit_web_view_get_settings(WebKitWebView* webView) 1205 g_return_if_fail(WEBKIT_IS_WEB_SETTINGS(webSettings)); 1206 1207 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1208 g_signal_handlers_disconnect_by_func(webViewData->webSettings, (gpointer)webkit_web_view_settings_notify, webView); 1209 g_object_unref(webViewData->webSettings); 1210 g_object_ref(webSettings); 1211 webViewData->webSettings = webSettings; 1212 webkit_web_view_update_settings(webView); 1213 g_signal_connect(webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView); 1214 } 1215 1216 WebKitWebSettings* webkit_web_view_get_settings(WebKitWebView* webView) 1076 1217 { 1077 1218 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); 1078 1219 1079 notImplemented();1080 return NULL;1220 WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView); 1221 return webViewData->webSettings; 1081 1222 } 1082 1223 -
trunk/WebKit/gtk/WebView/webkitwebview.h
r29663 r29723 25 25 26 26 #include "webkitdefines.h" 27 #include "webkitwebsettings.h" 27 28 28 29 G_BEGIN_DECLS … … 182 183 183 184 WEBKIT_API GtkTargetList* 184 webkit_web_view_get_copy_target_list (WebKitWebView* web View);185 webkit_web_view_get_copy_target_list (WebKitWebView* web_view); 185 186 186 187 WEBKIT_API GtkTargetList* 187 webkit_web_view_get_paste_target_list (WebKitWebView* webView); 188 webkit_web_view_get_paste_target_list (WebKitWebView* web_view); 189 190 WEBKIT_API void 191 webkit_web_view_set_settings (WebKitWebView* web_view, WebKitWebSettings* settings); 192 193 WEBKIT_API WebKitWebSettings* 194 webkit_web_view_get_settings (WebKitWebView* web_view); 188 195 189 196 G_END_DECLS
Note: See TracChangeset
for help on using the changeset viewer.