Example #1
0
/**
 * 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);
}
Example #2
0
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;
}
Example #3
0
/* 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;
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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);	
}
Example #7
0
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);
}
Example #8
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;
  }
}
Example #9
0
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 ();
}
Example #10
0
float wxWebViewWebKit::GetWebkitZoom() const
{
    return webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW(web_view));
}
Example #11
0
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);
	}
}
Example #12
0
static char* gtkWebBrowserGetZoomAttrib(Ihandle* ih)
{
  int zoom = (int)(webkit_web_view_get_zoom_level((WebKitWebView*)ih->handle) * 100);
  return iupStrReturnInt(zoom);
}
Example #13
0
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;
}
Example #14
0
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;
Example #16
0
float wxWebViewWebKit::GetWebkitZoom() const
{
    return webkit_web_view_get_zoom_level(m_web_view);
}
Example #17
0
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);
}