forked from AuroraMiddleware/gtk
Make the GdkScreen font options api public, and add properties
2005-08-26 Matthias Clasen <mclasen@redhat.com> * gdk/gdk.symbols: * gdk/gdkscreen.h: * gdk/gdkscreen.c: Make the GdkScreen font options api public, and add properties GdkScreen::font-options and GdkScreen::resolution. (#314004) * gdk/gdkpango.c: * gtk/gtksettings.c: * gtk/gtkwidget.c: Adjust all callers. * gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h. * gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h. * gdk/gdkscreen.c: Include gdkintl.h.
This commit is contained in:
parent
a4df08a6c7
commit
b3a757762c
14
ChangeLog
14
ChangeLog
@ -1,5 +1,19 @@
|
|||||||
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gdk/gdk.symbols:
|
||||||
|
* gdk/gdkscreen.h:
|
||||||
|
* gdk/gdkscreen.c: Make the GdkScreen font options api
|
||||||
|
public, and add properties GdkScreen::font-options and
|
||||||
|
GdkScreen::resolution. (#314004)
|
||||||
|
|
||||||
|
* gdk/gdkpango.c:
|
||||||
|
* gtk/gtksettings.c:
|
||||||
|
* gtk/gtkwidget.c: Adjust all callers.
|
||||||
|
|
||||||
|
* gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h.
|
||||||
|
* gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h.
|
||||||
|
* gdk/gdkscreen.c: Include gdkintl.h.
|
||||||
|
|
||||||
* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
|
* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
|
||||||
variable warning, pointed out by Colin Walters. (#314585)
|
variable warning, pointed out by Colin Walters. (#314585)
|
||||||
|
|
||||||
|
@ -1,5 +1,19 @@
|
|||||||
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gdk/gdk.symbols:
|
||||||
|
* gdk/gdkscreen.h:
|
||||||
|
* gdk/gdkscreen.c: Make the GdkScreen font options api
|
||||||
|
public, and add properties GdkScreen::font-options and
|
||||||
|
GdkScreen::resolution. (#314004)
|
||||||
|
|
||||||
|
* gdk/gdkpango.c:
|
||||||
|
* gtk/gtksettings.c:
|
||||||
|
* gtk/gtkwidget.c: Adjust all callers.
|
||||||
|
|
||||||
|
* gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h.
|
||||||
|
* gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h.
|
||||||
|
* gdk/gdkscreen.c: Include gdkintl.h.
|
||||||
|
|
||||||
* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
|
* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
|
||||||
variable warning, pointed out by Colin Walters. (#314585)
|
variable warning, pointed out by Colin Walters. (#314585)
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gdk/gdk-sections.txt: Add font options
|
||||||
|
API.
|
||||||
|
|
||||||
2005-08-24 Matthias Clasen <mclasen@redhat.com>
|
2005-08-24 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* === Released 2.8.2 ===
|
* === Released 2.8.2 ===
|
||||||
|
@ -215,6 +215,10 @@ gdk_screen_get_monitor_at_point
|
|||||||
gdk_screen_get_monitor_at_window
|
gdk_screen_get_monitor_at_window
|
||||||
gdk_screen_broadcast_client_message
|
gdk_screen_broadcast_client_message
|
||||||
gdk_screen_get_setting
|
gdk_screen_get_setting
|
||||||
|
gdk_screen_get_font_options
|
||||||
|
gdk_screen_set_font_options
|
||||||
|
gdk_screen_get_resolution
|
||||||
|
gdk_screen_set_resolution
|
||||||
<SUBSECTION Spawning>
|
<SUBSECTION Spawning>
|
||||||
gdk_spawn_on_screen
|
gdk_spawn_on_screen
|
||||||
gdk_spawn_on_screen_with_pipes
|
gdk_spawn_on_screen_with_pipes
|
||||||
|
@ -962,10 +962,10 @@ gdk_draw_rgb_image_dithalign
|
|||||||
gdk_screen_get_type G_GNUC_CONST
|
gdk_screen_get_type G_GNUC_CONST
|
||||||
gdk_screen_get_monitor_at_point
|
gdk_screen_get_monitor_at_point
|
||||||
gdk_screen_get_monitor_at_window
|
gdk_screen_get_monitor_at_window
|
||||||
gdk_screen_set_font_options_libgtk_only
|
gdk_screen_set_font_options
|
||||||
gdk_screen_get_font_options_libgtk_only
|
gdk_screen_get_font_options
|
||||||
gdk_screen_set_resolution_libgtk_only
|
gdk_screen_set_resolution
|
||||||
gdk_screen_get_resolution_libgtk_only
|
gdk_screen_get_resolution
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -28,25 +28,12 @@
|
|||||||
#define __GDKINTL_H__
|
#define __GDKINTL_H__
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <glib/gi18n-lib.h>
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
#include<libintl.h>
|
|
||||||
#define _(String) dgettext(GETTEXT_PACKAGE,String)
|
|
||||||
#define P_(String) dgettext(GETTEXT_PACKAGE "-properties",String)
|
#define P_(String) dgettext(GETTEXT_PACKAGE "-properties",String)
|
||||||
#ifdef gettext_noop
|
|
||||||
#define N_(String) gettext_noop(String)
|
|
||||||
#else
|
#else
|
||||||
#define N_(String) (String)
|
|
||||||
#endif
|
|
||||||
#else /* NLS is disabled */
|
|
||||||
#define _(String) (String)
|
|
||||||
#define P_(String) (String)
|
#define P_(String) (String)
|
||||||
#define N_(String) (String)
|
|
||||||
#define textdomain(String) (String)
|
|
||||||
#define gettext(String) (String)
|
|
||||||
#define dgettext(Domain,String) (String)
|
|
||||||
#define dcgettext(Domain,String,Type) (String)
|
|
||||||
#define bindtextdomain(Domain,Directory) (Domain)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -30,8 +30,7 @@
|
|||||||
#include "gdkscreen.h"
|
#include "gdkscreen.h"
|
||||||
#include "gdkalias.h"
|
#include "gdkalias.h"
|
||||||
|
|
||||||
/* This is for P_() ... a bit non-kosher, but works fine */
|
#include "gdkintl.h"
|
||||||
#include "gtk/gtkintl.h"
|
|
||||||
|
|
||||||
#define GDK_INFO_KEY "gdk-info"
|
#define GDK_INFO_KEY "gdk-info"
|
||||||
|
|
||||||
@ -1384,10 +1383,10 @@ gdk_pango_context_get_for_screen (GdkScreen *screen)
|
|||||||
|
|
||||||
context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
|
context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
|
||||||
|
|
||||||
options = gdk_screen_get_font_options_libgtk_only (screen);
|
options = gdk_screen_get_font_options (screen);
|
||||||
pango_cairo_context_set_font_options (context, options);
|
pango_cairo_context_set_font_options (context, options);
|
||||||
|
|
||||||
dpi = gdk_screen_get_resolution_libgtk_only (screen);
|
dpi = gdk_screen_get_resolution (screen);
|
||||||
pango_cairo_context_set_resolution (context, dpi);
|
pango_cairo_context_set_resolution (context, dpi);
|
||||||
|
|
||||||
return context;
|
return context;
|
||||||
|
153
gdk/gdkscreen.c
153
gdk/gdkscreen.c
@ -26,12 +26,28 @@
|
|||||||
#include "gdkcolor.h"
|
#include "gdkcolor.h"
|
||||||
#include "gdkwindow.h"
|
#include "gdkwindow.h"
|
||||||
#include "gdkscreen.h"
|
#include "gdkscreen.h"
|
||||||
|
#include "gdkintl.h"
|
||||||
#include "gdkalias.h"
|
#include "gdkalias.h"
|
||||||
|
|
||||||
static void gdk_screen_class_init (GdkScreenClass *klass);
|
static void gdk_screen_class_init (GdkScreenClass *klass);
|
||||||
static void gdk_screen_init (GdkScreen *screen);
|
static void gdk_screen_init (GdkScreen *screen);
|
||||||
static void gdk_screen_dispose (GObject *object);
|
static void gdk_screen_dispose (GObject *object);
|
||||||
static void gdk_screen_finalize (GObject *object);
|
static void gdk_screen_finalize (GObject *object);
|
||||||
|
static void gdk_screen_set_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
static void gdk_screen_get_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
PROP_0,
|
||||||
|
PROP_FONT_OPTIONS,
|
||||||
|
PROP_RESOLUTION
|
||||||
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -79,7 +95,26 @@ gdk_screen_class_init (GdkScreenClass *klass)
|
|||||||
|
|
||||||
object_class->dispose = gdk_screen_dispose;
|
object_class->dispose = gdk_screen_dispose;
|
||||||
object_class->finalize = gdk_screen_finalize;
|
object_class->finalize = gdk_screen_finalize;
|
||||||
|
object_class->set_property = gdk_screen_set_property;
|
||||||
|
object_class->get_property = gdk_screen_get_property;
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_FONT_OPTIONS,
|
||||||
|
g_param_spec_pointer ("font-options",
|
||||||
|
P_("Font options"),
|
||||||
|
P_("The default font options for the screen"),
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_RESOLUTION,
|
||||||
|
g_param_spec_double ("resolution",
|
||||||
|
P_("Font resolution"),
|
||||||
|
P_("The resolution for fonts on the screen"),
|
||||||
|
-G_MAXDOUBLE,
|
||||||
|
G_MAXDOUBLE,
|
||||||
|
-1.0,
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GdkScreen::size-changed:
|
* GdkScreen::size-changed:
|
||||||
* @screen: the object on which the signal is emitted
|
* @screen: the object on which the signal is emitted
|
||||||
@ -338,7 +373,7 @@ gdk_screen_height_mm (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_screen_set_font_options_libgtk_only:
|
* gdk_screen_set_font_options:
|
||||||
* @screen: a #GdkScreen
|
* @screen: a #GdkScreen
|
||||||
* @options: a #cairo_font_options_t, or %NULL to unset any
|
* @options: a #cairo_font_options_t, or %NULL to unset any
|
||||||
* previously set default font options.
|
* previously set default font options.
|
||||||
@ -348,36 +383,42 @@ gdk_screen_height_mm (void)
|
|||||||
* with gdk_pango_context_get_for_screen(). Changing the
|
* with gdk_pango_context_get_for_screen(). Changing the
|
||||||
* default set of font options does not affect contexts that
|
* default set of font options does not affect contexts that
|
||||||
* have already been created.
|
* have already been created.
|
||||||
*
|
*
|
||||||
* This function is not part of the GDK public API and is only
|
* Since: 2.10
|
||||||
* for use by GTK+.
|
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
gdk_screen_set_font_options_libgtk_only (GdkScreen *screen,
|
gdk_screen_set_font_options (GdkScreen *screen,
|
||||||
const cairo_font_options_t *options)
|
const cairo_font_options_t *options)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||||
|
|
||||||
if (screen->font_options)
|
if (screen->font_options != options)
|
||||||
cairo_font_options_destroy (screen->font_options);
|
{
|
||||||
|
if (screen->font_options)
|
||||||
if (options)
|
cairo_font_options_destroy (screen->font_options);
|
||||||
screen->font_options = cairo_font_options_copy (options);
|
|
||||||
else
|
if (options)
|
||||||
screen->font_options = NULL;
|
screen->font_options = cairo_font_options_copy (options);
|
||||||
|
else
|
||||||
|
screen->font_options = NULL;
|
||||||
|
|
||||||
|
g_object_notify (G_OBJECT (screen), "font-options");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_screen_get_font_options_libgtk_only:
|
* gdk_screen_get_font_options:
|
||||||
* @screen: a #GdkScreen
|
* @screen: a #GdkScreen
|
||||||
*
|
*
|
||||||
* Gets any options previously set with gdk_screen_set_font_options_libgtk_only().
|
* Gets any options previously set with gdk_screen_set_font_options().
|
||||||
*
|
*
|
||||||
* Return value: the current font options, or %NULL if no default
|
* Return value: the current font options, or %NULL if no default
|
||||||
* font options have been set.
|
* font options have been set.
|
||||||
|
*
|
||||||
|
* Since: 2.10
|
||||||
**/
|
**/
|
||||||
const cairo_font_options_t *
|
const cairo_font_options_t *
|
||||||
gdk_screen_get_font_options_libgtk_only (GdkScreen *screen)
|
gdk_screen_get_font_options (GdkScreen *screen)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||||
|
|
||||||
@ -385,7 +426,7 @@ gdk_screen_get_font_options_libgtk_only (GdkScreen *screen)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_screen_set_resolution_libgtk_only:
|
* gdk_screen_set_resolution:
|
||||||
* @screen: a #GdkScreen
|
* @screen: a #GdkScreen
|
||||||
* @dpi: the resolution in "dots per inch". (Physical inches aren't actually
|
* @dpi: the resolution in "dots per inch". (Physical inches aren't actually
|
||||||
* involved; the terminology is conventional.)
|
* involved; the terminology is conventional.)
|
||||||
@ -395,38 +436,88 @@ gdk_screen_get_font_options_libgtk_only (GdkScreen *screen)
|
|||||||
* and cairo units. The default value is 96, meaning that a 10 point
|
* and cairo units. The default value is 96, meaning that a 10 point
|
||||||
* font will be 13 units high. (10 * 96. / 72. = 13.3).
|
* font will be 13 units high. (10 * 96. / 72. = 13.3).
|
||||||
*
|
*
|
||||||
* This function is not part of the GDK public API and is only
|
* Since: 2.10
|
||||||
* for use by GTK+.
|
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
gdk_screen_set_resolution_libgtk_only (GdkScreen *screen,
|
gdk_screen_set_resolution (GdkScreen *screen,
|
||||||
gdouble dpi)
|
gdouble dpi)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||||
|
|
||||||
if (dpi >= 0)
|
if (dpi < 0)
|
||||||
|
dpi = -1.0;
|
||||||
|
|
||||||
|
if (screen->resolution != dpi)
|
||||||
|
{
|
||||||
screen->resolution = dpi;
|
screen->resolution = dpi;
|
||||||
else
|
|
||||||
screen->resolution = -1.;
|
g_object_notify (G_OBJECT (screen), "resolution");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_screen_get_resolution_libgtk_only:
|
* gdk_screen_get_resolution:
|
||||||
* @screen: a #GdkScreen
|
* @screen: a #GdkScreen
|
||||||
*
|
*
|
||||||
* Gets the resolution for font handling on the screen; see
|
* Gets the resolution for font handling on the screen; see
|
||||||
* gdk_screen_set_resolution_libgtk_only() for full details.
|
* gdk_screen_set_resolution() for full details.
|
||||||
*
|
*
|
||||||
* Return value: the current resolution, or -1 if no resolution
|
* Return value: the current resolution, or -1 if no resolution
|
||||||
* has been set.
|
* has been set.
|
||||||
|
*
|
||||||
|
* Since: 2.10
|
||||||
**/
|
**/
|
||||||
gdouble
|
gdouble
|
||||||
gdk_screen_get_resolution_libgtk_only (GdkScreen *screen)
|
gdk_screen_get_resolution (GdkScreen *screen)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), -1.);
|
g_return_val_if_fail (GDK_IS_SCREEN (screen), -1.);
|
||||||
|
|
||||||
return screen->resolution;
|
return screen->resolution;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gdk_screen_get_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GdkScreen *screen = GDK_SCREEN (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_FONT_OPTIONS:
|
||||||
|
g_value_set_pointer (value, gdk_screen_get_font_options (screen));
|
||||||
|
break;
|
||||||
|
case PROP_RESOLUTION:
|
||||||
|
g_value_set_double (value, gdk_screen_get_resolution (screen));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gdk_screen_set_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GdkScreen *screen = GDK_SCREEN (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_FONT_OPTIONS:
|
||||||
|
gdk_screen_set_font_options (screen, g_value_get_pointer (value));
|
||||||
|
break;
|
||||||
|
case PROP_RESOLUTION:
|
||||||
|
gdk_screen_set_resolution (screen, g_value_get_double (value));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#define __GDK_SCREEN_C__
|
#define __GDK_SCREEN_C__
|
||||||
#include "gdkaliasdef.c"
|
#include "gdkaliasdef.c"
|
||||||
|
@ -102,13 +102,13 @@ gboolean gdk_screen_get_setting (GdkScreen *screen,
|
|||||||
const gchar *name,
|
const gchar *name,
|
||||||
GValue *value);
|
GValue *value);
|
||||||
|
|
||||||
void gdk_screen_set_font_options_libgtk_only (GdkScreen *screen,
|
void gdk_screen_set_font_options (GdkScreen *screen,
|
||||||
const cairo_font_options_t *options);
|
const cairo_font_options_t *options);
|
||||||
const cairo_font_options_t *gdk_screen_get_font_options_libgtk_only (GdkScreen *screen);
|
const cairo_font_options_t *gdk_screen_get_font_options (GdkScreen *screen);
|
||||||
|
|
||||||
void gdk_screen_set_resolution_libgtk_only (GdkScreen *screen,
|
void gdk_screen_set_resolution (GdkScreen *screen,
|
||||||
gdouble dpi);
|
gdouble dpi);
|
||||||
gdouble gdk_screen_get_resolution_libgtk_only (GdkScreen *screen);
|
gdouble gdk_screen_get_resolution (GdkScreen *screen);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -1448,7 +1448,7 @@ settings_update_font_options (GtkSettings *settings)
|
|||||||
|
|
||||||
cairo_font_options_set_antialias (options, antialias_mode);
|
cairo_font_options_set_antialias (options, antialias_mode);
|
||||||
|
|
||||||
gdk_screen_set_font_options_libgtk_only (settings->screen, options);
|
gdk_screen_set_font_options (settings->screen, options);
|
||||||
|
|
||||||
cairo_font_options_destroy (options);
|
cairo_font_options_destroy (options);
|
||||||
}
|
}
|
||||||
@ -1468,7 +1468,7 @@ settings_update_resolution (GtkSettings *settings)
|
|||||||
else
|
else
|
||||||
dpi = -1.;
|
dpi = -1.;
|
||||||
|
|
||||||
gdk_screen_set_resolution_libgtk_only (settings->screen, dpi);
|
gdk_screen_set_resolution (settings->screen, dpi);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -5218,9 +5218,9 @@ gtk_widget_update_pango_context (GtkWidget *widget)
|
|||||||
if (screen)
|
if (screen)
|
||||||
{
|
{
|
||||||
pango_cairo_context_set_resolution (context,
|
pango_cairo_context_set_resolution (context,
|
||||||
gdk_screen_get_resolution_libgtk_only (screen));
|
gdk_screen_get_resolution (screen));
|
||||||
pango_cairo_context_set_font_options (context,
|
pango_cairo_context_set_font_options (context,
|
||||||
gdk_screen_get_font_options_libgtk_only (screen));
|
gdk_screen_get_font_options (screen));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user