Commit 89a0a894 authored by Tim Janik's avatar Tim Janik Committed by Tim Janik
Browse files

removed gtk_signal_init() compat define.

Sun Feb  4 07:55:17 2001  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.h: removed gtk_signal_init() compat define.

        * gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
        GTypeDebugFlags debug_flags and pass it on to g_type_init ();
        deprecated this function.

        * gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
        argument.

Sun Feb  4 07:45:45 2001  Tim Janik  <timj@gtk.org>

        * gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.

Sun Feb  4 07:59:57 2001  Tim Janik  <timj@gtk.org>

        * gdk-pixbuf.h: DOH! don't include glib/gobject.h but glib-object.h,
        we finally need the gobject->gruntime rename.

        * *.c: scratched calls to g_type_init(), there's simply no point in
        doing that, use gtk_init().
parent f2ceb1c4
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:55:17 2001 Tim Janik <timj@gtk.org>
* gtk/gtksignal.h: removed gtk_signal_init() compat define.
* gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument
GTypeDebugFlags debug_flags and pass it on to g_type_init ();
deprecated this function.
* gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as
argument.
Sun Feb 4 07:45:45 2001 Tim Janik <timj@gtk.org>
* gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS.
2001-02-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by
......
Sun Feb 4 07:59:57 2001 Tim Janik <timj@gtk.org>
* gdk-pixbuf.h: DOH! don't include glib/gobject.h but glib-object.h,
we finally need the gobject->gruntime rename.
* *.c: scratched calls to g_type_init(), there's simply no point in
doing that, use gtk_init().
2001-02-01 Havoc Pennington <hp@pobox.com>
* gdk-pixbuf-loader.c, gdk-pixbuf-loader.h: rename "private" field
......
......@@ -50,8 +50,6 @@ gdk_pixbuf_animation_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) NULL,
};
g_type_init ();
object_type = g_type_register_static (G_TYPE_OBJECT,
"GdkPixbufAnimation",
......@@ -458,13 +456,9 @@ gdk_pixbuf_frame_get_type (void)
static GType our_type = 0;
if (our_type == 0)
{
g_type_init ();
our_type = g_boxed_type_register_static ("GdkPixbufFrame",
gdk_pixbuf_frame_copy,
gdk_pixbuf_frame_free);
}
our_type = g_boxed_type_register_static ("GdkPixbufFrame",
gdk_pixbuf_frame_copy,
gdk_pixbuf_frame_free);
return our_type;
}
......@@ -93,8 +93,6 @@ gdk_pixbuf_loader_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) gdk_pixbuf_loader_init
};
g_type_init ();
loader_type = g_type_register_static (G_TYPE_OBJECT,
"GdkPixbufLoader",
......
......@@ -53,8 +53,6 @@ gdk_pixbuf_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) NULL,
};
g_type_init ();
object_type = g_type_register_static (G_TYPE_OBJECT,
"GdkPixbuf",
......
......@@ -28,7 +28,7 @@
#include <glib.h>
#include <gdk-pixbuf/gdk-pixbuf-features.h>
#include <gobject/gobject.h>
#include <glib-object.h>
#ifdef __cplusplus
extern "C" {
......
......@@ -323,7 +323,7 @@ gdk_init_check (int *argc,
GDK_NOTE (MISC, g_message ("progname: \"%s\"", g_get_prgname ()));
g_type_init ();
g_type_init (0);
result = _gdk_windowing_init_check (argc_orig, argv_orig);
......
......@@ -140,6 +140,7 @@ gtk_public_h_sources = @STRIP_BEGIN@ \
gtkradiomenuitem.h \
gtkrange.h \
gtkrc.h \
gtkrcdata.h \
gtkruler.h \
gtkscale.h \
gtkscrollbar.h \
......@@ -298,6 +299,7 @@ gtk_c_sources = @STRIP_BEGIN@ \
gtkrange.c \
gtkrbtree.c \
gtkrc.c \
gtkrcdata.c \
gtkruler.c \
gtkscale.c \
gtkscrollbar.c \
......
......@@ -116,6 +116,7 @@
#include <gtk/gtkradiomenuitem.h>
#include <gtk/gtkrange.h>
#include <gtk/gtkrc.h>
#include <gtk/gtkrcdata.h>
#include <gtk/gtkruler.h>
#include <gtk/gtkscale.h>
#include <gtk/gtkscrollbar.h>
......
......@@ -32,14 +32,12 @@ extern "C" {
#endif /* __cplusplus */
typedef enum {
GTK_DEBUG_OBJECTS = 1 << 0,
GTK_DEBUG_MISC = 1 << 1,
GTK_DEBUG_SIGNALS = 1 << 2,
GTK_DEBUG_DND = 1 << 3,
GTK_DEBUG_PLUGSOCKET = 1 << 4,
GTK_DEBUG_TEXT = 1 << 5,
GTK_DEBUG_TREE = 1 << 6,
GTK_DEBUG_UPDATES = 1 << 7
GTK_DEBUG_MISC = 1 << 0,
GTK_DEBUG_DND = 1 << 1,
GTK_DEBUG_PLUGSOCKET = 1 << 2,
GTK_DEBUG_TEXT = 1 << 3,
GTK_DEBUG_TREE = 1 << 4,
GTK_DEBUG_UPDATES = 1 << 5
} GtkDebugFlag;
#ifdef G_ENABLE_DEBUG
......
......@@ -57,6 +57,7 @@
#include "gtkthemes.h"
#include "gtkintl.h"
#include "gtkiconfactory.h"
#include "gtkrcdata.h"
#ifdef G_OS_WIN32
#include <io.h>
......@@ -101,6 +102,8 @@ static void gtk_rc_parse_any (const gchar *input_nam
const gchar *input_string);
static guint gtk_rc_parse_statement (GScanner *scanner);
static guint gtk_rc_parse_style (GScanner *scanner);
static guint gtk_rc_parse_assignment (GScanner *scanner,
const gchar *var_name);
static guint gtk_rc_parse_bg (GScanner *scanner,
GtkRcStyle *style);
static guint gtk_rc_parse_fg (GScanner *scanner,
......@@ -566,9 +569,9 @@ gtk_rc_init (void)
gint i, j;
static gboolean initted = FALSE;
static gboolean initialized = FALSE;
if (!initted)
if (!initialized)
{
gint length;
gchar *locale;
......@@ -579,8 +582,7 @@ gtk_rc_init (void)
#else
locale = setlocale (LC_CTYPE, NULL);
#endif
initted = TRUE;
initialized = TRUE;
pixmap_path[0] = NULL;
module_path[0] = NULL;
......@@ -628,8 +630,14 @@ gtk_rc_init (void)
g_free (normalized_locale);
}
/* setup global rc-file variables */
gtk_rc_data_install_property (g_param_spec_int ("mouse-timeout", NULL, NULL,
0, 1000, 0,
G_PARAM_READABLE | G_PARAM_WRITABLE));
}
g_object_freeze_notify (G_OBJECT (gtk_rc_data_get_global ()));
i = 0;
while (gtk_rc_default_files[i] != NULL)
{
......@@ -649,6 +657,11 @@ gtk_rc_init (void)
gtk_rc_parse (gtk_rc_default_files[i]);
i++;
}
/* setup global rc-file variables after the fact */
gtk_rc_data_install_property (g_param_spec_float ("foo-number", NULL, NULL,
-10000, 10000, 0,
G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_thaw_notify (G_OBJECT (gtk_rc_data_get_global ()));
}
void
......@@ -1535,54 +1548,119 @@ gtk_rc_parse_statement (GScanner *scanner)
guint token;
token = g_scanner_peek_next_token (scanner);
switch (token)
{
gboolean is_varname;
gchar *p;
case GTK_RC_TOKEN_INCLUDE:
token = g_scanner_get_next_token (scanner);
if (token != GTK_RC_TOKEN_INCLUDE)
return GTK_RC_TOKEN_INCLUDE;
token = g_scanner_get_next_token (scanner);
if (token != G_TOKEN_STRING)
return G_TOKEN_STRING;
gtk_rc_parse_file (scanner->value.v_string, FALSE);
return G_TOKEN_NONE;
case GTK_RC_TOKEN_STYLE:
return gtk_rc_parse_style (scanner);
case GTK_RC_TOKEN_BINDING:
return gtk_binding_parse_binding (scanner);
case GTK_RC_TOKEN_PIXMAP_PATH:
return gtk_rc_parse_pixmap_path (scanner);
case GTK_RC_TOKEN_WIDGET:
return gtk_rc_parse_path_pattern (scanner);
case GTK_RC_TOKEN_WIDGET_CLASS:
return gtk_rc_parse_path_pattern (scanner);
case GTK_RC_TOKEN_CLASS:
return gtk_rc_parse_path_pattern (scanner);
case GTK_RC_TOKEN_MODULE_PATH:
return gtk_rc_parse_module_path (scanner);
case GTK_RC_TOKEN_IM_MODULE_PATH:
return gtk_rc_parse_im_module_path (scanner);
case GTK_RC_TOKEN_IM_MODULE_FILE:
return gtk_rc_parse_im_module_file (scanner);
case G_TOKEN_IDENTIFIER:
is_varname = strchr (G_CSET_a_2_z "_", scanner->next_value.v_identifier[0]) != NULL;
for (p = scanner->next_value.v_identifier + 1; *p && is_varname; p++)
is_varname &= strchr (G_CSET_a_2_z G_CSET_DIGITS "_-", *p) != NULL;
if (is_varname)
{
gchar *name;
g_scanner_get_next_token (scanner); /* eat identifier */
name = g_strdup (scanner->value.v_identifier);
token = gtk_rc_parse_assignment (scanner, name);
g_free (name);
return token;
}
/* fall through */
default:
g_scanner_get_next_token (scanner);
return /* G_TOKEN_SYMBOL */ GTK_RC_TOKEN_STYLE;
}
}
static guint
gtk_rc_parse_assignment (GScanner *scanner,
const gchar *var_name)
{
guint token;
gboolean negate = FALSE;
gchar *location;
if (g_scanner_get_next_token (scanner) != '=')
return '=';
token = g_scanner_get_next_token (scanner);
if (token == '-')
{
negate = TRUE;
token = g_scanner_get_next_token (scanner);
if (token != G_TOKEN_FLOAT &&
token != G_TOKEN_INT)
return G_TOKEN_INT;
}
location = g_strdup_printf ("%s:%u", scanner->input_name, scanner->line);
switch (token)
{
case G_TOKEN_INT:
gtk_rc_data_set_long_property (var_name,
negate ? -scanner->value.v_int : scanner->value.v_int,
location);
break;
case G_TOKEN_FLOAT:
gtk_rc_data_set_double_property (var_name,
negate ? -scanner->value.v_float : scanner->value.v_float,
location);
break;
case G_TOKEN_STRING:
gtk_rc_data_set_string_property (var_name,
scanner->value.v_string,
location);
break;
default:
return G_TOKEN_INT;
}
g_free (location);
return G_TOKEN_NONE;
}
static guint
gtk_rc_parse_style (GScanner *scanner)
{
......
......@@ -91,22 +91,24 @@ struct _GtkRcStyleClass
* g_object_new (G_OBJECT_TYPE (style), NULL);
* should work in most cases.
*/
GtkRcStyle *(*clone) (GtkRcStyle *rc_style);
GtkRcStyle * (*clone) (GtkRcStyle *rc_style);
/* Fill in engine specific parts of GtkRcStyle by parsing contents
* of brackets. Returns G_TOKEN_NONE if succesful, otherwise returns
* the token it expected but didn't get.
*/
guint (*parse) (GtkRcStyle *rc_style, GScanner *scanner);
guint (*parse) (GtkRcStyle *rc_style,
GScanner *scanner);
/* Combine RC style data from src into dest. If overriden, this
* function should chain to the parent.
*/
void (*merge) (GtkRcStyle *dest, GtkRcStyle *src);
void (*merge) (GtkRcStyle *dest,
GtkRcStyle *src);
/* Create an empty style suitable to this RC style
*/
GtkStyle *(*create_style) (GtkRcStyle *rc_style);
GtkStyle * (*create_style) (GtkRcStyle *rc_style);
};
void gtk_rc_init (void);
......
/* GTK - The GIMP Toolkit
* Copyright (C) 2000 Red Hat, Inc.
*
* 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 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "gtkrcdata.h"
/* --- prototypes --- */
static void gtk_rc_data_init (GtkRCData *data);
static void gtk_rc_data_class_init (GtkRCDataClass *class);
static GObject* gtk_rc_data_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties);
static void gtk_rc_data_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec,
const gchar *trailer);
static void gtk_rc_data_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec,
const gchar *trailer);
static void gtk_rc_data_notify (GObject *object,
GParamSpec *pspec);
/* --- variables --- */
static gpointer parent_class = NULL;
static GtkRCData *the_singleton = NULL;
/* --- functions --- */
GType
gtk_rc_data_get_type (void)
{
static GType rc_data_type = 0;
if (!rc_data_type)
{
static const GTypeInfo rc_data_info =
{
sizeof (GtkRCDataClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) gtk_rc_data_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GtkRCData),
0, /* n_preallocs */
(GInstanceInitFunc) gtk_rc_data_init,
};
rc_data_type = g_type_register_static (G_TYPE_OBJECT, "GtkRCData", &rc_data_info, 0);
}
return rc_data_type;
}
static void
gtk_rc_data_init (GtkRCData *data)
{
g_datalist_init (&data->qvalues);
data->pvalues = NULL;
}
static void
gtk_rc_data_class_init (GtkRCDataClass *class)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
parent_class = g_type_class_peek_parent (class);
gobject_class->constructor = gtk_rc_data_constructor;
gobject_class->get_property = gtk_rc_data_get_property;
gobject_class->set_property = gtk_rc_data_set_property;
gobject_class->notify = gtk_rc_data_notify;
}
static GObject*
gtk_rc_data_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties)
{
GObject *object;
if (!the_singleton)
{
object = G_OBJECT_CLASS (parent_class)->constructor (type,
n_construct_properties,
construct_properties);
the_singleton = GTK_RC_DATA (g_object_ref (object));
}
else
object = g_object_ref (G_OBJECT (the_singleton));
return object;
}
GtkRCData*
gtk_rc_data_get_global (void)
{
if (!the_singleton)
g_object_new (GTK_TYPE_RC_DATA, NULL);
return the_singleton; /* we don't add a reference count here, we'd be rc_data_ref_global() if we did */
}
static void
set_property (GtkRCData *data,
GParamSpec *pspec,
GtkRCDataValue *dvalue)
{
if (g_value_types_exchangable (G_VALUE_TYPE (&dvalue->rc_value), G_PARAM_SPEC_VALUE_TYPE (pspec)))
{
GValue tmp_value = { 0, };
g_value_init (&tmp_value, G_PARAM_SPEC_VALUE_TYPE (pspec));
g_value_convert (&dvalue->rc_value, &tmp_value);
g_param_value_validate (pspec, &tmp_value);
g_object_set_property (G_OBJECT (data), pspec->name, &tmp_value);
g_value_unset (&tmp_value);
}
else
g_message ("%s: unable to convert rc-value of type `%s' for rc-property \"%s\" of type `%s'",
dvalue->location,
G_VALUE_TYPE_NAME (&dvalue->rc_value),
pspec->name,
g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
}