/** * Return current zoom level as a float */ static gfloat liferea_webkit_get_zoom_level (GtkWidget *scrollpane) { WebKitWebView *view; view = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (scrollpane))); return webkit_web_view_get_zoom_level (view); }
static VbResult normal_zoom(Client *c, const NormalCmdInfo *info) { float step = 0.1, level, count; WebKitWebView *view = c->webview; /* check if the second key is allowed */ if (!strchr("iIoOz", info->key2)) { return RESULT_ERROR; } count = info->count ? (float)info->count : 1.0; /* zz reset zoom to it's default zoom level */ if (info->key2 == 'z') { webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(view), FALSE); webkit_web_view_set_zoom_level(view, c->config.default_zoom / 100.0); return RESULT_COMPLETE; } level= webkit_web_view_get_zoom_level(view); /* calculate the new zoom level */ if (info->key2 == 'i' || info->key2 == 'I') { level += ((float)count * step); } else { level -= ((float)count * step); } /* apply the new zoom level */ webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(view), VB_IS_LOWER(info->key2)); webkit_web_view_set_zoom_level(view, level); return RESULT_COMPLETE; }
/* ghtml_get_zoom */ gdouble ghtml_get_zoom(GtkWidget * widget) { GHtml * ghtml; gdouble zoom; ghtml = g_object_get_data(G_OBJECT(widget), "ghtml"); zoom = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(ghtml->view)); return zoom; }
static void zoomOut(gboolean fullContentsZoom) { WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame); if (!view) return; webkit_web_view_set_full_content_zoom(view, fullContentsZoom); gfloat currentZoom = webkit_web_view_get_zoom_level(view); webkit_web_view_set_zoom_level(view, currentZoom / zoomMultiplierRatio); }
static JSValueRef textZoomOutCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) { WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame); if (!view) return JSValueMakeUndefined(context); gfloat currentZoom = webkit_web_view_get_zoom_level(view); webkit_web_view_set_zoom_level(view, currentZoom / zoomMultiplierRatio); return JSValueMakeUndefined(context); }
void html_decrease_size(Html *html) { gfloat zoom; g_return_if_fail(IS_HTML (html)); zoom = webkit_web_view_get_zoom_level(html->webview); zoom /= 1.2; webkit_web_view_set_zoom_level(html->webview,zoom); }
void resize(GtkWidget *w, GtkAllocation *a, Client *c) { double zoom; if(c->zoomed) return; zoom = webkit_web_view_get_zoom_level(c->view); if(a->width * a->height < 300 * 400 && zoom != 0.2) webkit_web_view_set_zoom_level(c->view, 0.2); else if(zoom != 1.0) webkit_web_view_set_zoom_level(c->view, 1.0); }
static void document_webkit_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { Document_WebkitDetails *docdet = DOCUMENT_WEBKIT_GET_PRIVATE(object); gint p; switch (prop_id) { case PROP_CAN_MODIFY: g_value_set_boolean (value, webkit_web_view_get_editable (WEBKIT_WEB_VIEW(docdet->help_view))); break; case PROP_CONVERTED_TO_UTF8: break; case PROP_TYPE: g_value_set_int (value, docdet->type); break; case PROP_IS_EMPTY: g_value_set_boolean (value, FALSE); break; case PROP_SAVED: g_value_set_boolean (value, TRUE); break; case PROP_CAN_PREVIEW: g_value_set_boolean (value, FALSE); break; case PROP_ZOOM_LEVEL: p = webkit_web_view_get_zoom_level (docdet->help_view) * 100; g_value_set_uint (value, p); break; case PROP_TITLE: g_value_set_string (value, document_webkit_get_title(DOCUMENT_WEBKIT(object))); break; case PROP_LABEL: g_value_set_object (value, docdet->label); break; case PROP_WIDGET: g_value_set_object (value, docdet->container); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void dialog_unmap (GtkWidget *window, GtkWidget *paned) { DialogData data; gtk_window_get_size (GTK_WINDOW (window), &data.width, &data.height); data.paned_position = gtk_paned_get_position (GTK_PANED (paned)); data.show_index = gtk_widget_get_visible (sidebar); data.zoom = (view ? webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW (view)) : 1.0); gimp_set_data (GIMP_HELP_BROWSER_DIALOG_DATA, &data, sizeof (data)); gtk_main_quit (); }
float wxWebViewWebKit::GetWebkitZoom() const { return webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW(web_view)); }
static void web_zoom_100(GtkWidget* item, WebKitWebView* webView) { gfloat zoom = webkit_web_view_get_zoom_level(webView); if (zoom != 1.0) { webkit_web_view_set_zoom_level(webView, 1.0); } }
static char* gtkWebBrowserGetZoomAttrib(Ihandle* ih) { int zoom = (int)(webkit_web_view_get_zoom_level((WebKitWebView*)ih->handle) * 100); return iupStrReturnInt(zoom); }
gboolean key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data) { struct Client *c = (struct Client *)data; gdouble dx, dy; gchar *f; gfloat z; WebKitWebContext *wc = webkit_web_view_get_context(WEBKIT_WEB_VIEW(c->web_view)); if (event->type == GDK_KEY_PRESS) { if (((GdkEventKey *)event)->state & GDK_MOD1_MASK) { switch (((GdkEventKey *)event)->keyval) { case GDK_KEY_q: /* close window (left hand) */ gtk_widget_destroy(c->win); return TRUE; case GDK_KEY_w: /* home (left hand) */ f = ensure_uri_scheme(home_uri); webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view), f); g_free(f); return TRUE; case GDK_KEY_e: /* new tab (left hand) */ f = ensure_uri_scheme(home_uri); client_new(f); g_free(f); return TRUE; case GDK_KEY_r: /* reload (left hand) */ webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW( c->web_view)); return TRUE; case GDK_KEY_d: /* download manager (left hand) */ gtk_widget_show_all(dm.win); return TRUE; case GDK_KEY_2: /* search forward (left hand) */ case GDK_KEY_n: /* search forward (maybe both hands) */ search(c, 1); return TRUE; case GDK_KEY_3: /* search backward (left hand) */ search(c, -1); return TRUE; case GDK_KEY_l: /* location (BOTH hands) */ gtk_widget_grab_focus(c->location); return TRUE; case GDK_KEY_k: /* initiate search (BOTH hands) */ gtk_widget_grab_focus(c->location); gtk_entry_set_text(GTK_ENTRY(c->location), "/"); gtk_editable_set_position(GTK_EDITABLE(c->location), -1); return TRUE; case GDK_KEY_c: /* reload trusted certs (left hand) */ trust_user_certs(wc); return TRUE; } } /* navigate backward (left hand) */ else if (((GdkEventKey *)event)->keyval == GDK_KEY_F2) { webkit_web_view_go_back(WEBKIT_WEB_VIEW(c->web_view)); return TRUE; } /* navigate forward (left hand) */ else if (((GdkEventKey *)event)->keyval == GDK_KEY_F3) { webkit_web_view_go_forward(WEBKIT_WEB_VIEW(c->web_view)); return TRUE; } else if (((GdkEventKey *)event)->keyval == GDK_KEY_Escape) { webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(c->web_view)); gtk_level_bar_set_value(GTK_LEVEL_BAR(c->progress), 0); } } else if (event->type == GDK_BUTTON_PRESS) { switch (((GdkEventButton *)event)->button) { case 2: if (c->hover_uri != NULL) { client_new(c->hover_uri); return TRUE; } break; case 8: webkit_web_view_go_back(WEBKIT_WEB_VIEW(c->web_view)); return TRUE; case 9: webkit_web_view_go_forward(WEBKIT_WEB_VIEW(c->web_view)); return TRUE; } } else if (event->type == GDK_SCROLL) { if (((GdkEventScroll *)event)->state & GDK_MOD1_MASK || ((GdkEventScroll *)event)->state & GDK_CONTROL_MASK) { gdk_event_get_scroll_deltas(event, &dx, &dy); z = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(c->web_view)); z += -dy * 0.1; z = dx != 0 ? global_zoom : z; webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), z); return TRUE; } } return FALSE; }
static void activateEntry(GtkWidget* entry, gpointer* gdata) { WebKitWebView* webView = g_object_get_data(G_OBJECT(entry), "webView"); const gchar* entry_str = gtk_entry_get_text(GTK_ENTRY(entry)); WebKitWebSettings* settings = webkit_web_view_get_settings( WEBKIT_WEB_VIEW(webView)); gfloat current_zoom = webkit_web_view_get_zoom_level(webView); gboolean fz = webkit_web_view_get_full_content_zoom(webView); if (entry_str[0] != 0) { if (strncmp(entry_str, "?", 1) == 0) { gchar* s = g_strdup(entry_str); s++; gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, search_str, s, NULL)); if ((startpage == TRUE) && (fz == TRUE) && (current_zoom != 1.0)) { fz = FALSE; webkit_web_view_set_full_content_zoom(webView, fz); GtkWidget* window = g_object_get_data(G_OBJECT(entry), "window"); setZbutton(window, fz); } } else if (strncmp(entry_str, "=", 1) == 0) { gchar* s = g_strdup(entry_str); s++; searchText(webView, s); return; } else if (strncmp(entry_str, "#", 1) == 0) { int r = 0; r = fork(); if (r == 0) { execl("/usr/local/bin/kwebhelper.py", "kwebhelper.py", "cmd", entry_str, NULL); } return; } else if (strncmp(entry_str, "!", 1) == 0) { gchar* s = g_strdup(entry_str); s++; if (strlen(s) > 1) { g_object_set(G_OBJECT(settings), "spell-checking-languages", s, NULL); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "Spell checking language has been set to: ", s, NULL)); } return; } else if (strncmp(entry_str, "&", 1) == 0) { gchar* s = g_strdup(entry_str); s++; g_object_set(G_OBJECT(settings), "user-stylesheet-uri", s, NULL); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "User style sheet: ", s, NULL)); return; } else if (strncmp(entry_str, "$", 1) == 0) { gchar* s = g_strdup(entry_str); s++; g_object_set(G_OBJECT(settings), "user-agent", s, NULL); const gchar* t = webkit_web_settings_get_user_agent(settings); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "User agent: ", t, NULL)); return; } else if (strcmp(entry_str, ":c") == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", homedir, "/kweb_about_c.html", NULL)); } else if (strncmp(entry_str, ":", 1) == 0) { gchar* s = g_strdup(entry_str); s++; gchar* fname = g_strjoin(NULL, "/usr/local/share/kweb/kweb_about_", s, ".html", NULL); struct stat stbc; if (stat(fname, &stbc) == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", fname, NULL)); } else { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file:///usr/local/share/kweb/kweb_about_e.html", NULL)); } } else if (strstr(entry_str, "://") == NULL) { if (strncmp(entry_str, "/", 1) == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", entry_str, NULL)); } else { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "http://", entry_str, NULL)); } } const gchar* uri = gtk_entry_get_text(GTK_ENTRY(entry)); webkit_web_view_stop_loading(webView); webkit_web_view_load_uri(webView, uri); gtk_widget_grab_focus(GTK_WIDGET(webView)); } }
GRefPtr<WebKitSettings> newSettings2 = adoptGRef(webkit_settings_new()); test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(newSettings2.get())); webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView2.get()), newSettings2.get()); settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView2.get())); g_assert(settings == newSettings2.get()); g_assert(webkit_settings_get_enable_javascript(settings)); GRefPtr<GtkWidget> webView3 = webkit_web_view_new_with_settings(newSettings2.get()); test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(webView3.get())); g_assert(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView3.get())) == newSettings2.get()); } static void testWebViewZoomLevel(WebViewTest* test, gconstpointer) { g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 1); webkit_web_view_set_zoom_level(test->m_webView, 2.5); g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(test->m_webView), TRUE); // The zoom level shouldn't change when zoom-text-only setting changes. g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); } static void testWebViewRunJavaScript(WebViewTest* test, gconstpointer) { static const char* html = "<html><body><a id='WebKitLink' href='http://www.webkitgtk.org/' title='WebKitGTK+ Title'>WebKitGTK+ Website</a></body></html>"; test->loadHtml(html, 0); test->waitUntilLoadFinished(); GUniqueOutPtr<GError> error;
float wxWebViewWebKit::GetWebkitZoom() const { return webkit_web_view_get_zoom_level(m_web_view); }
static void zoomOutCallback(BrowserWindow *window) { gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) / zoomStep; webkit_web_view_set_zoom_level(window->webView, zoomLevel); }