Introduce compat.h which provides new api for old libraries
This commit is contained in:
parent
cdadca0d0c
commit
65c0195501
7 changed files with 148 additions and 53 deletions
|
@ -30,4 +30,5 @@ midori_SOURCES = \
|
|||
webSearch.c webSearch.h \
|
||||
gjs.c gjs.h \
|
||||
sokoke.c sokoke.h \
|
||||
search.c search.h
|
||||
search.c search.h \
|
||||
compat.c compat.h
|
||||
|
|
102
midori/compat.c
Normal file
102
midori/compat.c
Normal file
|
@ -0,0 +1,102 @@
|
|||
/*
|
||||
Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
See the file COPYING for the full license text.
|
||||
*/
|
||||
|
||||
#include "compat.h"
|
||||
|
||||
#ifndef WEBKIT_CHECK_VERSION
|
||||
|
||||
/**
|
||||
* webkit_web_view_get_zoom_level:
|
||||
* @web_view: a #WebKitWebView
|
||||
*
|
||||
* Retrieves the current zoom level.
|
||||
*
|
||||
* Return value: the zoom level, always 1.0 if not supported
|
||||
**/
|
||||
gfloat
|
||||
webkit_web_view_get_zoom_level (WebKitWebView* web_view)
|
||||
{
|
||||
g_return_val_if_fail (WEBKIT_IS_WEB_VIEW (web_view), 1.0);
|
||||
|
||||
if (g_object_class_find_property (G_OBJECT_GET_CLASS (web_view),
|
||||
"zoom-level"))
|
||||
{
|
||||
gfloat zoom_level;
|
||||
g_object_get (web_view, "zoom-level", &zoom_level, NULL);
|
||||
return zoom_level;
|
||||
}
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* webkit_web_view_set_zoom_level:
|
||||
* @web_view: a #WebKitWebView
|
||||
*
|
||||
* Sets the current zoom level.
|
||||
*
|
||||
* Does nothing if not supported.
|
||||
**/
|
||||
void
|
||||
webkit_web_view_set_zoom_level (WebKitWebView* web_view,
|
||||
gfloat zoom_level)
|
||||
{
|
||||
g_return_if_fail (WEBKIT_IS_WEB_VIEW (web_view));
|
||||
|
||||
if (g_object_class_find_property (G_OBJECT_GET_CLASS (web_view),
|
||||
"zoom-level"))
|
||||
g_object_set (web_view, "zoom-level", zoom_level, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* webkit_web_view_zoom_in:
|
||||
* @web_view: a #WebKitWebView
|
||||
*
|
||||
* Increases the current zoom level.
|
||||
*
|
||||
* Does nothing if not supported.
|
||||
**/
|
||||
void
|
||||
webkit_web_view_zoom_in (WebKitWebView* web_view)
|
||||
{
|
||||
g_return_if_fail (WEBKIT_IS_WEB_VIEW (web_view));
|
||||
|
||||
gfloat zoom_level = webkit_web_view_get_zoom_level (web_view);
|
||||
WebKitWebSettings* settings = webkit_web_view_get_settings (web_view);
|
||||
gfloat zoom_step;
|
||||
g_object_get (settings, "zoom-step", &zoom_step, NULL);
|
||||
webkit_web_view_set_zoom_level (web_view, zoom_level + zoom_step);
|
||||
}
|
||||
|
||||
/**
|
||||
* webkit_web_view_zoom_out:
|
||||
* @web_view: a #WebKitWebView
|
||||
*
|
||||
* Decreases the current zoom level.
|
||||
*
|
||||
* Does nothing if not supported.
|
||||
**/
|
||||
void
|
||||
webkit_web_view_zoom_out (WebKitWebView* web_view)
|
||||
{
|
||||
g_return_if_fail (WEBKIT_IS_WEB_VIEW (web_view));
|
||||
|
||||
gfloat zoom_level = webkit_web_view_get_zoom_level (web_view);
|
||||
WebKitWebSettings* settings = webkit_web_view_get_settings (web_view);
|
||||
if (g_object_class_find_property (G_OBJECT_GET_CLASS (settings),
|
||||
"zoom-step"))
|
||||
{
|
||||
gfloat zoom_step;
|
||||
g_object_get (settings, "zoom-step", &zoom_step, NULL);
|
||||
webkit_web_view_set_zoom_level (web_view, zoom_level - zoom_step);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
37
midori/compat.h
Normal file
37
midori/compat.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
See the file COPYING for the full license text.
|
||||
*/
|
||||
|
||||
#ifndef __COMPAT_H__
|
||||
#define __COMPAT_H__
|
||||
|
||||
#include <webkit/webkit.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#ifndef WEBKIT_CHECK_VERSION
|
||||
|
||||
gfloat
|
||||
webkit_web_view_get_zoom_level (WebKitWebView* web_view);
|
||||
|
||||
void
|
||||
webkit_web_view_set_zoom_level (WebKitWebView* web_view);
|
||||
|
||||
void
|
||||
webkit_web_view_zoom_in (WebKitWebView* web_view);
|
||||
|
||||
void
|
||||
webkit_web_view_zoom_out (WebKitWebView* web_view);
|
||||
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __COMPAT_H__ */
|
|
@ -379,8 +379,6 @@ midori_app_set_settings (MidoriApp* app,
|
|||
{
|
||||
g_return_if_fail (MIDORI_IS_APP (app));
|
||||
|
||||
MidoriAppPrivate* priv = app->priv;
|
||||
|
||||
g_object_set (app, "settings", settings, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ _midori_browser_update_interface (MidoriBrowser* browser)
|
|||
{
|
||||
loading = midori_web_view_is_loading (MIDORI_WEB_VIEW (web_view));
|
||||
_action_set_sensitive (browser, "ZoomNormal",
|
||||
midori_web_view_get_zoom_level (MIDORI_WEB_VIEW (web_view)) != 1.0);
|
||||
webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW (web_view)) != 1.0);
|
||||
if (!g_object_class_find_property (G_OBJECT_GET_CLASS (web_view),
|
||||
"zoom-level"))
|
||||
{
|
||||
|
@ -1248,16 +1248,8 @@ _action_zoom_in_activate (GtkAction* action,
|
|||
MidoriBrowser* browser)
|
||||
{
|
||||
GtkWidget* web_view = midori_browser_get_current_web_view (browser);
|
||||
if (web_view && g_object_class_find_property (
|
||||
G_OBJECT_GET_CLASS (web_view), "zoom-level"))
|
||||
{
|
||||
MidoriBrowserPrivate* priv = browser->priv;
|
||||
|
||||
gfloat zoom_level, zoom_step;
|
||||
g_object_get (web_view, "zoom-level", &zoom_level, NULL);
|
||||
g_object_get (priv->settings, "zoom-step", &zoom_step, NULL);
|
||||
g_object_set (web_view, "zoom-level", zoom_level + zoom_step, NULL);
|
||||
}
|
||||
if (web_view)
|
||||
webkit_web_view_zoom_in (WEBKIT_WEB_VIEW (web_view));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1265,16 +1257,8 @@ _action_zoom_out_activate (GtkAction* action,
|
|||
MidoriBrowser* browser)
|
||||
{
|
||||
GtkWidget* web_view = midori_browser_get_current_web_view (browser);
|
||||
if (web_view && g_object_class_find_property (
|
||||
G_OBJECT_GET_CLASS (web_view), "zoom-level"))
|
||||
{
|
||||
MidoriBrowserPrivate* priv = browser->priv;
|
||||
|
||||
gfloat zoom_level, zoom_step;
|
||||
g_object_get (web_view, "zoom-level", &zoom_level, NULL);
|
||||
g_object_get (priv->settings, "zoom-step", &zoom_step, NULL);
|
||||
g_object_set (web_view, "zoom-level", zoom_level - zoom_step, NULL);
|
||||
}
|
||||
if (web_view)
|
||||
webkit_web_view_zoom_out (WEBKIT_WEB_VIEW (web_view));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1282,9 +1266,8 @@ _action_zoom_normal_activate (GtkAction* action,
|
|||
MidoriBrowser* browser)
|
||||
{
|
||||
GtkWidget* web_view = midori_browser_get_current_web_view (browser);
|
||||
if (web_view && g_object_class_find_property (
|
||||
G_OBJECT_GET_CLASS (web_view), "zoom-level"))
|
||||
g_object_set (web_view, "zoom-level", 1.0, NULL);
|
||||
if (web_view)
|
||||
webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW (web_view), 1.0);
|
||||
}
|
||||
|
||||
/*static void
|
||||
|
|
|
@ -1080,26 +1080,3 @@ midori_web_view_get_link_uri (MidoriWebView* web_view)
|
|||
MidoriWebViewPrivate* priv = web_view->priv;
|
||||
return priv->link_uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* midori_web_view_get_zoom_level:
|
||||
* @web_view: a #MidoriWebView
|
||||
*
|
||||
* Retrieves the current zoom level.
|
||||
*
|
||||
* Return value: the zoom level, always 1 if not supported
|
||||
**/
|
||||
gfloat
|
||||
midori_web_view_get_zoom_level (MidoriWebView* web_view)
|
||||
{
|
||||
g_return_val_if_fail (MIDORI_IS_WEB_VIEW (web_view), 1);
|
||||
|
||||
if (g_object_class_find_property (G_OBJECT_GET_CLASS (web_view),
|
||||
"zoom-level"))
|
||||
{
|
||||
gfloat zoom_level;
|
||||
g_object_get (web_view, "zoom-level", &zoom_level, NULL);
|
||||
return zoom_level;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -107,9 +107,6 @@ midori_web_view_get_display_title (MidoriWebView* web_view);
|
|||
const gchar*
|
||||
midori_web_view_get_link_uri (MidoriWebView* web_view);
|
||||
|
||||
gfloat
|
||||
midori_web_view_get_zoom_level (MidoriWebView* web_view);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __MIDORI_WEB_VIEW_H__ */
|
||||
|
|
Loading…
Reference in a new issue