+Tue Nov 13 23:18:10 2001 Tim Janik <timj@gtk.org>
+
+ * gsignal.[hc]: add API for chaining:
+ g_signal_chain_from_overridden() and g_signal_override_class_closure(),
+ implementation yet to come.
+
+ * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
+
+ * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
+ get_name and get_blurb, to be consistent with the rest of the
+ g_param_spec_*() functions.
+
+ * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
+ G_TYPE_CLOSURE is a boxed type already.
+
Tue Nov 13 22:16:41 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: API cleanups.
## Process this file with automake to produce Makefile.in
INCLUDES = @STRIP_BEGIN@ \
- -DG_LOG_DOMAIN=g_log_domain_gruntime \
+ -DG_LOG_DOMAIN=\"GLib-GObject\" \
-I$(top_srcdir) \
-I$(top_srcdir)/glib \
-I$(top_builddir) \
void g_boxed_free (GType boxed_type,
gpointer boxed);
void g_value_set_boxed (GValue *value,
- gconstpointer boxed);
+ gconstpointer v_boxed);
void g_value_set_static_boxed (GValue *value,
- gconstpointer boxed);
+ gconstpointer v_boxed);
gpointer g_value_get_boxed (const GValue *value);
gpointer g_value_dup_boxed (const GValue *value);
/* --- marshaller specific --- */
void g_value_set_boxed_take_ownership (GValue *value,
- gconstpointer boxed);
+ gconstpointer v_boxed);
const GValue *param_values,
gpointer invocation_hint);
-
/* FIXME:
OK: data_object::destroy -> closure_invalidate();
MIS: closure_invalidate() -> disconnect(closure);
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-#include "config.h"
-
-
-/* ok, this is a bit hackish, have to provide gruntime log domain as
- * we don't link against -lgruntime
- */
-char *g_log_domain_gruntime = "GLib-Genmarshal";
-
+#undef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "GLib-Genmarshal"
#include <glib.h>
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
}
G_CONST_RETURN gchar*
-g_param_get_name (GParamSpec *pspec)
+g_param_spec_get_name (GParamSpec *pspec)
{
g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), NULL);
}
G_CONST_RETURN gchar*
-g_param_get_nick (GParamSpec *pspec)
+g_param_spec_get_nick (GParamSpec *pspec)
{
g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), NULL);
}
G_CONST_RETURN gchar*
-g_param_get_blurb (GParamSpec *pspec)
+g_param_spec_get_blurb (GParamSpec *pspec)
{
g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), NULL);
gint g_param_values_cmp (GParamSpec *pspec,
const GValue *value1,
const GValue *value2);
-G_CONST_RETURN gchar* g_param_get_name (GParamSpec *pspec);
-G_CONST_RETURN gchar* g_param_get_nick (GParamSpec *pspec);
-G_CONST_RETURN gchar* g_param_get_blurb (GParamSpec *pspec);
+G_CONST_RETURN gchar* g_param_spec_get_name (GParamSpec *pspec);
+G_CONST_RETURN gchar* g_param_spec_get_nick (GParamSpec *pspec);
+G_CONST_RETURN gchar* g_param_spec_get_blurb (GParamSpec *pspec);
void g_value_set_param (GValue *value,
GParamSpec *param);
GParamSpec* g_value_get_param (const GValue *value);
}
static void
-param_closure_init (GParamSpec *pspec)
-{
- /* GParamSpecClosure *cspec = G_PARAM_SPEC_CLOSURE (pspec); */
-}
-
-static void
-param_closure_set_default (GParamSpec *pspec,
- GValue *value)
-{
- value->data[0].v_pointer = NULL;
-}
-
-static gboolean
-param_closure_validate (GParamSpec *pspec,
- GValue *value)
-{
- /* GParamSpecClosure *cspec = G_PARAM_SPEC_CLOSURE (pspec); */
- /* GClosure *closure = value->data[0].v_pointer; */
- guint changed = 0;
-
- /* we don't actually have necessary means to ensure closure validity */
-
- return changed;
-}
-
-static gint
-param_closure_values_cmp (GParamSpec *pspec,
- const GValue *value1,
- const GValue *value2)
-{
- guint8 *p1 = value1->data[0].v_pointer;
- guint8 *p2 = value2->data[0].v_pointer;
-
- /* not much to compare here, try to at least provide stable lesser/greater result */
-
- return p1 < p2 ? -1 : p1 > p2;
-}
-
-static void
param_value_array_init (GParamSpec *pspec)
{
GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec);
g_assert (type == G_TYPE_PARAM_VALUE_ARRAY);
}
- /* G_TYPE_PARAM_CLOSURE
- */
- {
- static const GParamSpecTypeInfo pspec_info = {
- sizeof (GParamSpecClosure), /* instance_size */
- 0, /* n_preallocs */
- param_closure_init, /* instance_init */
- G_TYPE_CLOSURE, /* value_type */
- NULL, /* finalize */
- param_closure_set_default, /* value_set_default */
- param_closure_validate, /* value_validate */
- param_closure_values_cmp, /* values_cmp */
- };
- type = g_param_type_register_static ("GParamClosure", &pspec_info);
- g_assert (type == G_TYPE_PARAM_CLOSURE);
- }
-
/* G_TYPE_PARAM_OBJECT
*/
{
}
GParamSpec*
-g_param_spec_closure (const gchar *name,
- const gchar *nick,
- const gchar *blurb,
- GParamFlags flags)
-{
- GParamSpecClosure *cspec;
-
- cspec = g_param_spec_internal (G_TYPE_PARAM_CLOSURE,
- name,
- nick,
- blurb,
- flags);
- return G_PARAM_SPEC (cspec);
-}
-
-GParamSpec*
g_param_spec_object (const gchar *name,
const gchar *nick,
const gchar *blurb,
#define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
#define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
-#define G_IS_PARAM_SPEC_CLOSURE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CLOSURE))
-#define G_PARAM_SPEC_CLOSURE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CLOSURE, GParamSpecClosure))
#define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
#define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
typedef struct _GParamSpecBoxed GParamSpecBoxed;
typedef struct _GParamSpecPointer GParamSpecPointer;
typedef struct _GParamSpecValueArray GParamSpecValueArray;
-typedef struct _GParamSpecClosure GParamSpecClosure;
typedef struct _GParamSpecObject GParamSpecObject;
struct _GParamSpecChar
GParamSpec *element_spec;
guint fixed_n_elements;
};
-struct _GParamSpecClosure
-{
- GParamSpec parent_instance;
-};
struct _GParamSpecObject
{
GParamSpec parent_instance;
const gchar *blurb,
GParamSpec *element_spec,
GParamFlags flags);
-GParamSpec* g_param_spec_closure (const gchar *name,
- const gchar *nick,
- const gchar *blurb,
- GParamFlags flags);
GParamSpec* g_param_spec_object (const gchar *name,
const gchar *nick,
const gchar *blurb,
SIGNAL_LOCK ();
}
+void
+g_signal_override_class_closure (guint signal_id,
+ GType instance_type,
+ GClosure *class_closure)
+{
+}
+
+void
+g_signal_chain_from_overridden (const GValue *instance_and_params,
+ guint signal_id,
+ GValue *return_value)
+{
+}
+
gulong
g_signal_connect_closure_by_id (gpointer instance,
guint signal_id,
gpointer data);
+/* --- chaining for language bindings --- */
+void g_signal_override_class_closure (guint signal_id,
+ GType instance_type,
+ GClosure *class_closure);
+void g_signal_chain_from_overridden (const GValue *instance_and_params,
+ guint signal_id,
+ GValue *return_value);
+
+
/* --- convenience --- */
#define g_signal_connect(instance, detailed_signal, c_handler, data) \
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, 0)
GTypeDebugFlags _g_type_debug_flags = 0;
-/* --- externs --- */
-const char *g_log_domain_gruntime = "GRuntime";
-
-
/* --- type nodes --- */
static GHashTable *static_type_nodes_ht = NULL;
static GType *static_branch_seqnos = NULL;
#ifndef __G_TYPE_H__
#define __G_TYPE_H__
-extern const char *g_log_domain_gruntime;
#include <glib.h>
G_BEGIN_DECLS
G_TYPE_PARAM_BOXED = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 17),
G_TYPE_PARAM_POINTER = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 18),
G_TYPE_PARAM_VALUE_ARRAY = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 19),
- G_TYPE_PARAM_CLOSURE = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 20),
- G_TYPE_PARAM_OBJECT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 21)
+ G_TYPE_PARAM_OBJECT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 20)
} GTypeFundamentals;