use GObject api for ETableHeader use GObject api on ETableHeader

2002-11-04  Mike Kestner  <mkestner@ximian.com>

	* e-table-group.c : use GObject api for ETableHeader
	* e-table-header-item.c : use GObject api on ETableHeader
	* e-table-header.[ch] : GObjectify
	* e-table-item.c : use GObject api on ETableHeader
	* e-table-search.[ch] : GObjectify
	* e-table-sorted.c : use GObject api for ETableHeader
	* e-table-sorter.c : use GObject api for ETableHeader
	* e-table-specification.[ch] : GObjectify
	* e-table-utils.c : use GObject api for ETableHeader
	* e-tree-sorted.c : use GObject api for ETableHeader
	* e-tree.c : use GObject api on Header, Spec, and Search

svn path=/trunk/; revision=18531
This commit is contained in:
Mike Kestner
2002-11-04 16:18:45 +00:00
committed by Mike Kestner
parent dcb12b11c9
commit 65269c6882
15 changed files with 298 additions and 328 deletions

View File

@ -58,12 +58,12 @@ etg_destroy (GtkObject *object)
ETableGroup *etg = E_TABLE_GROUP(object);
if (etg->header) {
gtk_object_unref (GTK_OBJECT(etg->header));
g_object_unref (G_OBJECT(etg->header));
etg->header = NULL;
}
if (etg->full_header) {
gtk_object_unref (GTK_OBJECT(etg->full_header));
g_object_unref (G_OBJECT(etg->full_header));
etg->full_header = NULL;
}
@ -130,9 +130,9 @@ e_table_group_construct (GnomeCanvasGroup *parent,
ETableModel *model)
{
etg->full_header = full_header;
gtk_object_ref (GTK_OBJECT(etg->full_header));
g_object_ref (G_OBJECT(etg->full_header));
etg->header = header;
gtk_object_ref (GTK_OBJECT(etg->header));
g_object_ref (G_OBJECT(etg->header));
etg->model = model;
gtk_object_ref (GTK_OBJECT(etg->model));
gnome_canvas_item_construct (GNOME_CANVAS_ITEM (etg), parent, 0, NULL);

View File

@ -137,7 +137,7 @@ ethi_destroy (GtkObject *object){
}
if (ethi->full_header)
gtk_object_unref (GTK_OBJECT(ethi->full_header));
g_object_unref (G_OBJECT(ethi->full_header));
ethi->full_header = NULL;
if (ethi->config)
@ -258,16 +258,16 @@ ethi_font_load (ETableHeaderItem *ethi, char *fontname)
static void
ethi_drop_table_header (ETableHeaderItem *ethi)
{
GtkObject *header;
GObject *header;
if (!ethi->eth)
return;
header = GTK_OBJECT (ethi->eth);
gtk_signal_disconnect (header, ethi->structure_change_id);
gtk_signal_disconnect (header, ethi->dimension_change_id);
header = G_OBJECT (ethi->eth);
g_signal_handler_disconnect (header, ethi->structure_change_id);
g_signal_handler_disconnect (header, ethi->dimension_change_id);
gtk_object_unref (header);
g_object_unref (header);
ethi->eth = NULL;
ethi->width = 0;
}
@ -288,16 +288,16 @@ static void
ethi_add_table_header (ETableHeaderItem *ethi, ETableHeader *header)
{
ethi->eth = header;
gtk_object_ref (GTK_OBJECT (ethi->eth));
g_object_ref (G_OBJECT (ethi->eth));
ethi->height = e_table_header_item_get_height (ethi);
ethi->structure_change_id = gtk_signal_connect (
GTK_OBJECT (header), "structure_change",
GTK_SIGNAL_FUNC(structure_changed), ethi);
ethi->dimension_change_id = gtk_signal_connect (
GTK_OBJECT (header), "dimension_change",
GTK_SIGNAL_FUNC(dimension_changed), ethi);
ethi->structure_change_id = g_signal_connect (
G_OBJECT (header), "structure_change",
G_CALLBACK (structure_changed), ethi);
ethi->dimension_change_id = g_signal_connect (
G_OBJECT (header), "dimension_change",
G_CALLBACK (dimension_changed), ethi);
e_canvas_item_request_reflow(GNOME_CANVAS_ITEM(ethi));
gnome_canvas_item_request_update (GNOME_CANVAS_ITEM(ethi));
}
@ -320,15 +320,15 @@ ethi_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
switch (arg_id){
case ARG_TABLE_HEADER:
ethi_drop_table_header (ethi);
ethi_add_table_header (ethi, E_TABLE_HEADER(GTK_VALUE_OBJECT (*arg)));
ethi_add_table_header (ethi, E_TABLE_HEADER(GTK_VALUE_POINTER (*arg)));
break;
case ARG_FULL_HEADER:
if (ethi->full_header)
gtk_object_unref(GTK_OBJECT(ethi->full_header));
ethi->full_header = E_TABLE_HEADER(GTK_VALUE_OBJECT (*arg));
g_object_unref(G_OBJECT(ethi->full_header));
ethi->full_header = E_TABLE_HEADER(GTK_VALUE_POINTER (*arg));
if (ethi->full_header)
gtk_object_ref(GTK_OBJECT(ethi->full_header));
g_object_ref(G_OBJECT(ethi->full_header));
break;
case ARG_DND_CODE:
@ -389,7 +389,7 @@ ethi_get_arg (GtkObject *o, GtkArg *arg, guint arg_id)
switch (arg_id){
case ARG_FULL_HEADER:
GTK_VALUE_OBJECT (*arg) = GTK_OBJECT (ethi->full_header);
GTK_VALUE_POINTER (*arg) = G_OBJECT (ethi->full_header);
break;
case ARG_DND_CODE:
GTK_VALUE_STRING (*arg) = g_strdup (ethi->dnd_code);
@ -1727,9 +1727,9 @@ ethi_class_init (GtkObjectClass *object_class)
item_class->point = ethi_point;
item_class->event = ethi_event;
gtk_object_add_arg_type ("ETableHeaderItem::ETableHeader", GTK_TYPE_OBJECT,
gtk_object_add_arg_type ("ETableHeaderItem::ETableHeader", G_TYPE_OBJECT,
GTK_ARG_WRITABLE, ARG_TABLE_HEADER);
gtk_object_add_arg_type ("ETableHeaderItem::full_header", GTK_TYPE_OBJECT,
gtk_object_add_arg_type ("ETableHeaderItem::full_header", G_TYPE_OBJECT,
GTK_ARG_READWRITE, ARG_FULL_HEADER);
gtk_object_add_arg_type ("ETableHeaderItem::dnd_code", GTK_TYPE_STRING,
GTK_ARG_READWRITE, ARG_DND_CODE);

View File

@ -24,8 +24,7 @@
#include <config.h>
#include <string.h>
#include <gtk/gtkobject.h>
#include <gtk/gtksignal.h>
#include <glib-object.h>
#include <gtk/gtkimage.h>
#include <gal/util/e-util.h>
#include "e-table-header.h"
@ -34,10 +33,10 @@
/* The arguments we take */
enum {
ARG_0,
ARG_SORT_INFO,
ARG_WIDTH,
ARG_WIDTH_EXTRAS
PROP_0,
PROP_SORT_INFO,
PROP_WIDTH,
PROP_WIDTH_EXTRAS
};
enum {
@ -53,7 +52,7 @@ static void eth_calc_widths (ETableHeader *eth);
static guint eth_signals [LAST_SIGNAL] = { 0, };
static GtkObjectClass *e_table_header_parent_class;
static GObjectClass *e_table_header_parent_class;
struct two_ints {
int column;
@ -144,7 +143,7 @@ eth_do_remove (ETableHeader *eth, int idx, gboolean do_unref)
}
static void
eth_destroy (GtkObject *object)
eth_finalize (GObject *object)
{
ETableHeader *eth = E_TABLE_HEADER (object);
const int cols = eth->col_count;
@ -152,8 +151,8 @@ eth_destroy (GtkObject *object)
if (eth->sort_info) {
if (eth->sort_info_group_change_id)
gtk_signal_disconnect(GTK_OBJECT(eth->sort_info),
eth->sort_info_group_change_id);
g_signal_handler_disconnect(GTK_OBJECT(eth->sort_info),
eth->sort_info_group_change_id);
gtk_object_unref(GTK_OBJECT(eth->sort_info));
eth->sort_info = NULL;
}
@ -179,8 +178,8 @@ eth_destroy (GtkObject *object)
eth->col_count = 0;
eth->columns = NULL;
if (e_table_header_parent_class->destroy)
e_table_header_parent_class->destroy (object);
if (e_table_header_parent_class->finalize)
e_table_header_parent_class->finalize (object);
}
static void
@ -190,31 +189,31 @@ eth_group_info_changed(ETableSortInfo *info, ETableHeader *eth)
}
static void
eth_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
eth_set_prop (GObject *object, guint prop_id, const GValue *val, GParamSpec *pspec)
{
ETableHeader *eth = E_TABLE_HEADER (object);
switch (arg_id) {
case ARG_WIDTH:
eth->nominal_width = GTK_VALUE_DOUBLE (*arg);
enqueue(eth, -1, GTK_VALUE_DOUBLE (*arg));
break;
case ARG_WIDTH_EXTRAS:
eth->width_extras = GTK_VALUE_DOUBLE (*arg);
switch (prop_id) {
case PROP_WIDTH:
eth->nominal_width = g_value_get_double (val);
enqueue(eth, -1, eth->nominal_width);
break;
case ARG_SORT_INFO:
case PROP_WIDTH_EXTRAS:
eth->width_extras = g_value_get_double (val);
enqueue(eth, -1, eth->nominal_width);
break;
case PROP_SORT_INFO:
if (eth->sort_info) {
if (eth->sort_info_group_change_id)
gtk_signal_disconnect(GTK_OBJECT(eth->sort_info), eth->sort_info_group_change_id);
gtk_object_unref(GTK_OBJECT(eth->sort_info));
g_signal_handler_disconnect(GTK_OBJECT(eth->sort_info), eth->sort_info_group_change_id);
g_object_unref (G_OBJECT(eth->sort_info));
}
eth->sort_info = E_TABLE_SORT_INFO(GTK_VALUE_OBJECT (*arg));
eth->sort_info = E_TABLE_SORT_INFO(g_value_get_object (val));
if (eth->sort_info) {
gtk_object_ref(GTK_OBJECT(eth->sort_info));
g_object_ref(G_OBJECT(eth->sort_info));
eth->sort_info_group_change_id
= gtk_signal_connect(GTK_OBJECT(eth->sort_info), "group_info_changed",
GTK_SIGNAL_FUNC(eth_group_info_changed), eth);
= g_signal_connect(G_OBJECT(eth->sort_info), "group_info_changed",
G_CALLBACK(eth_group_info_changed), eth);
}
enqueue(eth, -1, eth->nominal_width);
break;
@ -224,74 +223,87 @@ eth_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
}
static void
eth_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
eth_get_prop (GObject *object, guint prop_id, GValue *val, GParamSpec *pspec)
{
ETableHeader *eth = E_TABLE_HEADER (object);
switch (arg_id) {
case ARG_SORT_INFO:
GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(eth->sort_info);
switch (prop_id) {
case PROP_SORT_INFO:
g_value_set_object (val, G_OBJECT(eth->sort_info));
break;
case ARG_WIDTH:
GTK_VALUE_DOUBLE (*arg) = eth->nominal_width;
case PROP_WIDTH:
g_value_set_double (val, eth->nominal_width);
break;
case ARG_WIDTH_EXTRAS:
GTK_VALUE_DOUBLE (*arg) = eth->width_extras;
case PROP_WIDTH_EXTRAS:
g_value_set_double (val, eth->width_extras);
break;
default:
arg->type = GTK_TYPE_INVALID;
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
e_table_header_class_init (GtkObjectClass *object_class)
e_table_header_class_init (GObjectClass *object_class)
{
ETableHeaderClass *klass = E_TABLE_HEADER_CLASS (object_class);
object_class->destroy = eth_destroy;
object_class->set_arg = eth_set_arg;
object_class->get_arg = eth_get_arg;
object_class->finalize = eth_finalize;
object_class->set_property = eth_set_prop;
object_class->get_property = eth_get_prop;
e_table_header_parent_class = (gtk_type_class (gtk_object_get_type ()));
e_table_header_parent_class = g_type_class_peek_parent (object_class);
gtk_object_add_arg_type ("ETableHeader::width", GTK_TYPE_DOUBLE,
GTK_ARG_READWRITE, ARG_WIDTH);
gtk_object_add_arg_type ("ETableHeader::width_extras", GTK_TYPE_DOUBLE,
GTK_ARG_READWRITE, ARG_WIDTH_EXTRAS);
gtk_object_add_arg_type ("ETableHeader::sort_info", GTK_TYPE_OBJECT,
GTK_ARG_READWRITE, ARG_SORT_INFO);
g_object_class_install_property (
object_class, PROP_WIDTH,
g_param_spec_double ("width", "Width", "Width",
0.0, G_MAXDOUBLE, 0.0,
G_PARAM_READWRITE));
g_object_class_install_property (
object_class, PROP_WIDTH_EXTRAS,
g_param_spec_double ("width_extras", "Width of Extras", "Width of Extras",
0.0, G_MAXDOUBLE, 0.0,
G_PARAM_READWRITE));
g_object_class_install_property (
object_class, PROP_SORT_INFO,
g_param_spec_object ("sort_info", "Sort Info", "Sort Info",
E_TABLE_SORT_INFO_TYPE,
G_PARAM_READWRITE));
eth_signals [STRUCTURE_CHANGE] =
gtk_signal_new ("structure_change",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableHeaderClass, structure_change),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
g_signal_new ("structure_change",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableHeaderClass, structure_change),
(GSignalAccumulator) NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
eth_signals [DIMENSION_CHANGE] =
gtk_signal_new ("dimension_change",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableHeaderClass, dimension_change),
gtk_marshal_NONE__INT,
GTK_TYPE_NONE, 1, GTK_TYPE_INT);
g_signal_new ("dimension_change",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableHeaderClass, dimension_change),
(GSignalAccumulator) NULL, NULL,
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE, 1, G_TYPE_INT);
eth_signals [EXPANSION_CHANGE] =
gtk_signal_new ("expansion_change",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableHeaderClass, expansion_change),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
g_signal_new ("expansion_change",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableHeaderClass, expansion_change),
(GSignalAccumulator) NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
eth_signals [REQUEST_WIDTH] =
gtk_signal_new ("request_width",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableHeaderClass, request_width),
e_marshal_INT__INT,
GTK_TYPE_INT, 1, GTK_TYPE_INT);
E_OBJECT_CLASS_ADD_SIGNALS (object_class, eth_signals, LAST_SIGNAL);
g_signal_new ("request_width",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableHeaderClass, request_width),
(GSignalAccumulator) NULL, NULL,
e_marshal_INT__INT,
G_TYPE_INT, 1, G_TYPE_INT);
klass->structure_change = NULL;
klass->dimension_change = NULL;
@ -324,11 +336,8 @@ e_table_header_init (ETableHeader *eth)
ETableHeader *
e_table_header_new (void)
{
ETableHeader *eth;
eth = gtk_type_new (e_table_header_get_type ());
return eth;
return (ETableHeader *) g_object_new (E_TABLE_HEADER_TYPE, NULL);
}
static void
@ -390,7 +399,7 @@ e_table_header_add_column (ETableHeader *eth, ETableCol *tc, int pos)
eth_do_insert (eth, pos, tc);
enqueue(eth, -1, eth->nominal_width);
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [STRUCTURE_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [STRUCTURE_CHANGE], 0);
}
/**
@ -631,8 +640,8 @@ e_table_header_move (ETableHeader *eth, int source_index, int target_index)
eth_do_insert (eth, target_index, old);
eth_update_offsets (eth);
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [DIMENSION_CHANGE], eth->width);
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [STRUCTURE_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [DIMENSION_CHANGE], 0, eth->width);
g_signal_emit (G_OBJECT (eth), eth_signals [STRUCTURE_CHANGE], 0);
}
/**
@ -653,7 +662,7 @@ e_table_header_remove (ETableHeader *eth, int idx)
eth_do_remove (eth, idx, TRUE);
enqueue(eth, -1, eth->nominal_width);
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [STRUCTURE_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [STRUCTURE_CHANGE], 0);
}
/*
@ -724,7 +733,7 @@ eth_set_size (ETableHeader *eth, int idx, int size)
eth->columns[i]->expansion = 0;
}
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
return;
}
@ -734,7 +743,7 @@ eth_set_size (ETableHeader *eth, int idx, int size)
for (i = idx; i < eth->col_count; i++) {
eth->columns[i]->expansion = 0;
}
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
return;
}
@ -751,7 +760,7 @@ eth_set_size (ETableHeader *eth, int idx, int size)
for (i = idx + 1; i < eth->col_count; i++) {
eth->columns[i]->expansion = 0;
}
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
return;
}
@ -776,7 +785,7 @@ eth_set_size (ETableHeader *eth, int idx, int size)
eth->columns[i]->expansion = expansion / expandable_count;
}
}
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
return;
}
@ -788,7 +797,7 @@ eth_set_size (ETableHeader *eth, int idx, int size)
eth->columns[i]->expansion *= expansion / old_expansion;
}
}
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
}
/**
@ -870,7 +879,7 @@ eth_calc_widths (ETableHeader *eth)
}
g_free (widths);
if (changed)
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [DIMENSION_CHANGE], eth->width);
g_signal_emit (G_OBJECT (eth), eth_signals [DIMENSION_CHANGE], 0, eth->width);
eth_update_offsets (eth);
}
@ -885,38 +894,17 @@ e_table_header_update_horizontal (ETableHeader *eth)
for (i = 0; i < cols; i++) {
int width = 0;
gtk_signal_emit_by_name (GTK_OBJECT (eth),
g_signal_emit_by_name (G_OBJECT (eth),
"request_width",
i, &width);
eth->columns[i]->min_width = width + 10;
eth->columns[i]->expansion = 1;
}
enqueue(eth, -1, eth->nominal_width);
gtk_signal_emit (GTK_OBJECT (eth), eth_signals [EXPANSION_CHANGE]);
g_signal_emit (G_OBJECT (eth), eth_signals [EXPANSION_CHANGE], 0);
}
GtkType
e_table_header_get_type (void)
{
static GtkType type = 0;
if (!type){
GtkTypeInfo info = {
"ETableHeader",
sizeof (ETableHeader),
sizeof (ETableHeaderClass),
(GtkClassInitFunc) e_table_header_class_init,
(GtkObjectInitFunc) e_table_header_init,
NULL, /* reserved 1 */
NULL, /* reserved 2 */
(GtkClassInitFunc) NULL
};
type = gtk_type_unique (gtk_object_get_type (), &info);
}
return type;
}
E_MAKE_TYPE(e_table_header, "ETableHeader", ETableHeader, e_table_header_class_init, e_table_header_init, G_TYPE_OBJECT)
int
e_table_header_prioritized_column (ETableHeader *eth)

View File

@ -25,7 +25,7 @@
#ifndef _E_TABLE_COLUMN_H_
#define _E_TABLE_COLUMN_H_
#include <gtk/gtkobject.h>
#include <glib-object.h>
#include <gdk/gdk.h>
#include <gal/e-table/e-table-sort-info.h>
#include <gal/e-table/e-table-col.h>
@ -35,10 +35,11 @@ G_BEGIN_DECLS
typedef struct _ETableHeader ETableHeader;
#define E_TABLE_HEADER_TYPE (e_table_header_get_type ())
#define E_TABLE_HEADER(o) (GTK_CHECK_CAST ((o), E_TABLE_HEADER_TYPE, ETableHeader))
#define E_TABLE_HEADER_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_TABLE_HEADER_TYPE, ETableHeaderClass))
#define E_IS_TABLE_HEADER(o) (GTK_CHECK_TYPE ((o), E_TABLE_HEADER_TYPE))
#define E_IS_TABLE_HEADER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_HEADER_TYPE))
#define E_TABLE_HEADER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_TABLE_HEADER_TYPE, ETableHeader))
#define E_TABLE_HEADER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_TABLE_HEADER_TYPE, ETableHeaderClass))
#define E_IS_TABLE_HEADER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_TABLE_HEADER_TYPE))
#define E_IS_TABLE_HEADER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_TABLE_HEADER_TYPE))
#define E_TABLE_HEADER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_TABLE_HEADER_TYPE, ETableHeaderClass))
typedef gboolean (*ETableColCheckFunc) (ETableCol *col, gpointer user_data);
@ -46,7 +47,7 @@ typedef gboolean (*ETableColCheckFunc) (ETableCol *col, gpointer user_data);
* A Columnar header.
*/
struct _ETableHeader {
GtkObject base;
GObject base;
int col_count;
int width;
@ -63,7 +64,7 @@ struct _ETableHeader {
};
typedef struct {
GtkObjectClass parent_class;
GObjectClass parent_class;
void (*structure_change) (ETableHeader *eth);
void (*dimension_change) (ETableHeader *eth, int width);
@ -71,7 +72,7 @@ typedef struct {
int (*request_width) (ETableHeader *eth, int col);
} ETableHeaderClass;
GtkType e_table_header_get_type (void);
GType e_table_header_get_type (void);
ETableHeader *e_table_header_new (void);
void e_table_header_add_column (ETableHeader *eth,
@ -113,7 +114,6 @@ ETableCol *e_table_header_prioritized_column_selected (ETableHeader *e
ETableColCheckFunc check_func,
gpointer user_data);
G_END_DECLS
#endif /* _E_TABLE_HEADER_H_ */

View File

@ -566,18 +566,18 @@ eti_remove_header_model (ETableItem *eti)
if (!eti->header)
return;
gtk_signal_disconnect (GTK_OBJECT (eti->header),
eti->header_structure_change_id);
gtk_signal_disconnect (GTK_OBJECT (eti->header),
eti->header_dim_change_id);
gtk_signal_disconnect (GTK_OBJECT (eti->header),
eti->header_request_width_id);
g_signal_handler_disconnect (G_OBJECT (eti->header),
eti->header_structure_change_id);
g_signal_handler_disconnect (G_OBJECT (eti->header),
eti->header_dim_change_id);
g_signal_handler_disconnect (G_OBJECT (eti->header),
eti->header_request_width_id);
if (eti->cell_views){
eti_unrealize_cell_views (eti);
eti_detach_cell_views (eti);
}
gtk_object_unref (GTK_OBJECT (eti->header));
g_object_unref (G_OBJECT (eti->header));
eti->header_structure_change_id = 0;
@ -1366,21 +1366,21 @@ eti_add_header_model (ETableItem *eti, ETableHeader *header)
g_assert (eti->header == NULL);
eti->header = header;
gtk_object_ref (GTK_OBJECT (header));
g_object_ref (G_OBJECT (header));
eti_header_structure_changed (header, eti);
eti->header_dim_change_id = gtk_signal_connect (
GTK_OBJECT (header), "dimension_change",
GTK_SIGNAL_FUNC (eti_header_dim_changed), eti);
eti->header_dim_change_id = g_signal_connect (
G_OBJECT (header), "dimension_change",
G_CALLBACK (eti_header_dim_changed), eti);
eti->header_structure_change_id = gtk_signal_connect (
GTK_OBJECT (header), "structure_change",
GTK_SIGNAL_FUNC (eti_header_structure_changed), eti);
eti->header_structure_change_id = g_signal_connect (
G_OBJECT (header), "structure_change",
G_CALLBACK (eti_header_structure_changed), eti);
eti->header_request_width_id = gtk_signal_connect
(GTK_OBJECT (header), "request_width",
GTK_SIGNAL_FUNC (eti_request_column_width), eti);
eti->header_request_width_id = g_signal_connect
(G_OBJECT (header), "request_width",
G_CALLBACK (eti_request_column_width), eti);
}
/*
@ -2955,7 +2955,7 @@ eti_class_init (GtkObjectClass *object_class)
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableItemClass, style_set),
gtk_marshal_NONE__POINTER,
gtk_marshal_NONE__OBJECT,
GTK_TYPE_NONE, 1, GTK_TYPE_STYLE);
E_OBJECT_CLASS_ADD_SIGNALS (object_class, eti_signals, LAST_SIGNAL);

View File

@ -22,16 +22,11 @@
*/
#include <config.h>
#include <gtk/gtksignal.h>
#include "e-table-search.h"
#include "gal/util/e-util.h"
#include <string.h>
#define ETS_CLASS(e) ((ETableSearchClass *)((GtkObject *)e)->klass)
#define PARENT_TYPE gtk_object_get_type ()
#define d(x)
d(static gint depth = 0);
@ -43,7 +38,7 @@ struct _ETableSearchPrivate {
gunichar last_character;
};
static GtkObjectClass *e_table_search_parent_class;
static GObjectClass *e_table_search_parent_class;
enum {
SEARCH_SEARCH,
@ -60,8 +55,9 @@ e_table_search_search (ETableSearch *e_table_search, char *string, ETableSearchF
g_return_val_if_fail (e_table_search != NULL, FALSE);
g_return_val_if_fail (E_IS_TABLE_SEARCH (e_table_search), FALSE);
gtk_signal_emit (GTK_OBJECT (e_table_search),
e_table_search_signals [SEARCH_SEARCH], string, flags, &ret_val);
g_signal_emit (G_OBJECT (e_table_search),
e_table_search_signals [SEARCH_SEARCH],
0, string, flags, &ret_val);
return ret_val;
}
@ -72,8 +68,8 @@ e_table_search_accept (ETableSearch *e_table_search)
g_return_if_fail (e_table_search != NULL);
g_return_if_fail (E_IS_TABLE_SEARCH (e_table_search));
gtk_signal_emit (GTK_OBJECT (e_table_search),
e_table_search_signals [SEARCH_ACCEPT]);
g_signal_emit (G_OBJECT (e_table_search),
e_table_search_signals [SEARCH_ACCEPT], 0);
}
static gboolean
@ -107,7 +103,7 @@ add_timeout (ETableSearch *ets)
}
static void
e_table_search_destroy (GtkObject *object)
e_table_search_finalize (GObject *object)
{
ETableSearch *ets = (ETableSearch *) object;
@ -115,35 +111,35 @@ e_table_search_destroy (GtkObject *object)
g_free (ets->priv->search_string);
g_free (ets->priv);
if (e_table_search_parent_class->destroy)
(*e_table_search_parent_class->destroy)(object);
if (e_table_search_parent_class->finalize)
(*e_table_search_parent_class->finalize)(object);
}
static void
e_table_search_class_init (GtkObjectClass *object_class)
e_table_search_class_init (GObjectClass *object_class)
{
ETableSearchClass *klass = E_TABLE_SEARCH_CLASS(object_class);
e_table_search_parent_class = gtk_type_class (PARENT_TYPE);
e_table_search_parent_class = g_type_class_peek_parent (klass);
object_class->destroy = e_table_search_destroy;
object_class->finalize = e_table_search_finalize;
e_table_search_signals [SEARCH_SEARCH] =
gtk_signal_new ("search",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableSearchClass, search),
e_marshal_BOOLEAN__STRING_INT,
GTK_TYPE_BOOL, 2, GTK_TYPE_STRING, GTK_TYPE_INT);
g_signal_new ("search",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableSearchClass, search),
(GSignalAccumulator) NULL, NULL,
e_marshal_BOOLEAN__STRING_INT,
G_TYPE_BOOLEAN, 2, G_TYPE_STRING, G_TYPE_INT);
e_table_search_signals [SEARCH_ACCEPT] =
gtk_signal_new ("accept",
GTK_RUN_LAST,
E_OBJECT_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ETableSearchClass, accept),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
E_OBJECT_CLASS_ADD_SIGNALS (object_class, e_table_search_signals, LAST_SIGNAL);
g_signal_new ("accept",
E_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ETableSearchClass, accept),
(GSignalAccumulator) NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
klass->search = NULL;
klass->accept = NULL;
@ -160,35 +156,12 @@ e_table_search_init (ETableSearch *ets)
}
GtkType
e_table_search_get_type (void)
{
static guint type = 0;
if (!type)
{
GtkTypeInfo info =
{
"ETableSearch",
sizeof (ETableSearch),
sizeof (ETableSearchClass),
(GtkClassInitFunc) e_table_search_class_init,
(GtkObjectInitFunc) e_table_search_init,
/* reserved_1 */ NULL,
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
type = gtk_type_unique (PARENT_TYPE, &info);
}
return type;
}
E_MAKE_TYPE(e_table_search, "ETableSearch", ETableSearch, e_table_search_class_init, e_table_search_init, G_TYPE_OBJECT)
ETableSearch *
e_table_search_new (void)
{
ETableSearch *ets = gtk_type_new (e_table_search_get_type());
ETableSearch *ets = g_object_new (E_TABLE_SEARCH_TYPE, NULL);
return ets;
}

View File

@ -29,10 +29,11 @@
G_BEGIN_DECLS
#define E_TABLE_SEARCH_TYPE (e_table_search_get_type ())
#define E_TABLE_SEARCH(o) (GTK_CHECK_CAST ((o), E_TABLE_SEARCH_TYPE, ETableSearch))
#define E_TABLE_SEARCH_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_TABLE_SEARCH_TYPE, ETableSearchClass))
#define E_IS_TABLE_SEARCH(o) (GTK_CHECK_TYPE ((o), E_TABLE_SEARCH_TYPE))
#define E_IS_TABLE_SEARCH_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_SEARCH_TYPE))
#define E_TABLE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_TABLE_SEARCH_TYPE, ETableSearch))
#define E_TABLE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_TABLE_SEARCH_TYPE, ETableSearchClass))
#define E_IS_TABLE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_TABLE_SEARCH_TYPE))
#define E_IS_TABLE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_TABLE_SEARCH_TYPE))
#define E_TABLE_SEARCH_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_TABLE_SEARCH_TYPE, ETableSearchClass))
typedef struct _ETableSearchPrivate ETableSearchPrivate;
@ -41,13 +42,13 @@ typedef enum {
} ETableSearchFlags;
typedef struct {
GtkObject base;
GObject base;
ETableSearchPrivate *priv;
} ETableSearch;
typedef struct {
GtkObjectClass parent_class;
GObjectClass parent_class;
/*
* Signals
@ -56,7 +57,7 @@ typedef struct {
void (*accept) (ETableSearch *ets);
} ETableSearchClass;
GtkType e_table_search_get_type (void);
GType e_table_search_get_type (void);
ETableSearch *e_table_search_new (void);
/**/

View File

@ -69,7 +69,7 @@ ets_destroy (GtkObject *object)
}
if (ets->full_header)
gtk_object_unref(GTK_OBJECT(ets->full_header));
g_object_unref(G_OBJECT(ets->full_header));
ets->full_header = NULL;
GTK_OBJECT_CLASS (ets_parent_class)->destroy (object);
@ -141,7 +141,7 @@ e_table_sorted_new (ETableModel *source, ETableHeader *full_header, ETableSortIn
ets->sort_info = sort_info;
gtk_object_ref(GTK_OBJECT(ets->sort_info));
ets->full_header = full_header;
gtk_object_ref(GTK_OBJECT(ets->full_header));
g_object_ref(G_OBJECT(ets->full_header));
ets_proxy_model_changed(etss, source);

View File

@ -91,7 +91,7 @@ ets_destroy (GtkObject *object)
ets->sort_info = NULL;
if (ets->full_header)
gtk_object_unref(GTK_OBJECT(ets->full_header));
g_object_unref(G_OBJECT(ets->full_header));
ets->full_header = NULL;
if (ets->source)
@ -191,7 +191,7 @@ e_table_sorter_new (ETableModel *source, ETableHeader *full_header, ETableSortIn
ets->sort_info = sort_info;
gtk_object_ref(GTK_OBJECT(ets->sort_info));
ets->full_header = full_header;
gtk_object_ref(GTK_OBJECT(ets->full_header));
g_object_ref(G_OBJECT(ets->full_header));
ets->source = source;
gtk_object_ref(GTK_OBJECT(ets->source));

View File

@ -30,18 +30,15 @@
#include <stdlib.h>
#include <string.h>
#include <gtk/gtksignal.h>
#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
#include "gal/util/e-util.h"
#include "gal/util/e-xml-utils.h"
#define PARENT_TYPE (gtk_object_get_type ())
static GtkObjectClass *etsp_parent_class;
static GObjectClass *etsp_parent_class;
static void
etsp_destroy (GtkObject *object)
etsp_finalize (GObject *object)
{
ETableSpecification *etsp = E_TABLE_SPECIFICATION (object);
int i;
@ -64,15 +61,15 @@ etsp_destroy (GtkObject *object)
g_free (etsp->domain);
etsp->domain = NULL;
GTK_OBJECT_CLASS (etsp_parent_class)->destroy (object);
etsp_parent_class->finalize (object);
}
static void
etsp_class_init (GtkObjectClass *klass)
etsp_class_init (GObjectClass *klass)
{
etsp_parent_class = gtk_type_class (PARENT_TYPE);
etsp_parent_class = g_type_class_peek_parent (klass);
klass->destroy = etsp_destroy;
klass->finalize = etsp_finalize;
}
static void
@ -99,7 +96,7 @@ etsp_init (ETableSpecification *etsp)
etsp->domain = NULL;
}
E_MAKE_TYPE (e_table_specification, "ETableSpecification", ETableSpecification, etsp_class_init, etsp_init, PARENT_TYPE)
E_MAKE_TYPE (e_table_specification, "ETableSpecification", ETableSpecification, etsp_class_init, etsp_init, G_TYPE_OBJECT)
/**
* e_table_specification_new:
@ -112,7 +109,7 @@ E_MAKE_TYPE (e_table_specification, "ETableSpecification", ETableSpecification,
ETableSpecification *
e_table_specification_new (void)
{
ETableSpecification *etsp = gtk_type_new (E_TABLE_SPECIFICATION_TYPE);
ETableSpecification *etsp = g_object_new (E_TABLE_SPECIFICATION_TYPE, NULL);
return (ETableSpecification *) etsp;
}

View File

@ -24,25 +24,24 @@
#ifndef _E_TABLE_SPECIFICATION_H_
#define _E_TABLE_SPECIFICATION_H_
#include <gtk/gtkobject.h>
#include <glib-object.h>
#include <libxml/tree.h>
#include <gal/widgets/e-selection-model.h>
#include <gal/e-table/e-table-state.h>
#include <gal/e-table/e-table-column-specification.h>
#include <gal/e-table/e-table-defines.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
G_BEGIN_DECLS
#define E_TABLE_SPECIFICATION_TYPE (e_table_specification_get_type ())
#define E_TABLE_SPECIFICATION(o) (GTK_CHECK_CAST ((o), E_TABLE_SPECIFICATION_TYPE, ETableSpecification))
#define E_TABLE_SPECIFICATION_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_TABLE_SPECIFICATION_TYPE, ETableSpecificationClass))
#define E_IS_TABLE_SPECIFICATION(o) (GTK_CHECK_TYPE ((o), E_TABLE_SPECIFICATION_TYPE))
#define E_IS_TABLE_SPECIFICATION_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_SPECIFICATION_TYPE))
#define E_TABLE_SPECIFICATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_TABLE_SPECIFICATION_TYPE, ETableSpecification))
#define E_TABLE_SPECIFICATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_TABLE_SPECIFICATION_TYPE, ETableSpecificationClass))
#define E_IS_TABLE_SPECIFICATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_TABLE_SPECIFICATION_TYPE))
#define E_IS_TABLE_SPECIFICATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_TABLE_SPECIFICATION_TYPE))
#define E_TABLE_SPECIFICATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_TABLE_SPECIFICATION_TYPE, ETableSpecificationClass))
typedef struct {
GtkObject base;
GObject base;
ETableColumnSpecification **columns;
ETableState *state;
@ -65,10 +64,10 @@ typedef struct {
} ETableSpecification;
typedef struct {
GtkObjectClass parent_class;
GObjectClass parent_class;
} ETableSpecificationClass;
GtkType e_table_specification_get_type (void);
GType e_table_specification_get_type (void);
ETableSpecification *e_table_specification_new (void);
gboolean e_table_specification_load_from_file (ETableSpecification *specification,
@ -85,8 +84,6 @@ xmlNode *e_table_specification_save_to_node (ETableSpecificatio
xmlDoc *doc);
ETableSpecification *e_table_specification_duplicate (ETableSpecification *spec);
#ifdef __cplusplus
}
#endif /* __cplusplus */
G_END_DECLS
#endif /* _E_TABLE_SPECIFICATION_H_ */

View File

@ -34,16 +34,17 @@ e_table_state_to_header (GtkWidget *widget, ETableHeader *full_header, ETableSta
ETableHeader *nh;
const int max_cols = e_table_header_count (full_header);
int column;
GValue *val = g_new0 (GValue, 1);
g_return_val_if_fail (widget, NULL);
g_return_val_if_fail (full_header, NULL);
g_return_val_if_fail (state, NULL);
nh = e_table_header_new ();
gtk_object_set(GTK_OBJECT(nh),
"width_extras", e_table_header_width_extras(widget->style),
NULL);
g_value_init (val, G_TYPE_DOUBLE);
g_value_set_double (val, e_table_header_width_extras (widget->style));
g_object_set_property (G_OBJECT(nh), "width_extras", val);
g_free (val);
for (column = 0; column < state->col_count; column++) {
int col;

View File

@ -269,16 +269,16 @@ disconnect_header (ETable *e_table)
return;
if (e_table->structure_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_table->header),
e_table->structure_change_id);
g_signal_handler_disconnect (G_OBJECT (e_table->header),
e_table->structure_change_id);
if (e_table->expansion_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_table->header),
e_table->expansion_change_id);
g_signal_handler_disconnect (G_OBJECT (e_table->header),
e_table->expansion_change_id);
if (e_table->dimension_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_table->header),
e_table->dimension_change_id);
g_signal_handler_disconnect (G_OBJECT (e_table->header),
e_table->dimension_change_id);
gtk_object_unref(GTK_OBJECT(e_table->header));
g_object_unref(G_OBJECT(e_table->header));
e_table->header = NULL;
}
@ -291,14 +291,14 @@ connect_header (ETable *e_table, ETableState *state)
e_table->header = e_table_state_to_header (GTK_WIDGET(e_table), e_table->full_header, state);
e_table->structure_change_id =
gtk_signal_connect (GTK_OBJECT (e_table->header), "structure_change",
GTK_SIGNAL_FUNC (structure_changed), e_table);
g_signal_connect (G_OBJECT (e_table->header), "structure_change",
G_CALLBACK (structure_changed), e_table);
e_table->expansion_change_id =
gtk_signal_connect (GTK_OBJECT (e_table->header), "expansion_change",
GTK_SIGNAL_FUNC (expansion_changed), e_table);
g_signal_connect (G_OBJECT (e_table->header), "expansion_change",
G_CALLBACK (expansion_changed), e_table);
e_table->dimension_change_id =
gtk_signal_connect (GTK_OBJECT (e_table->header), "dimension_change",
GTK_SIGNAL_FUNC (dimension_changed), e_table);
g_signal_connect (G_OBJECT (e_table->header), "dimension_change",
G_CALLBACK (dimension_changed), e_table);
}
static void
@ -310,12 +310,12 @@ et_destroy (GtkObject *object)
if (et->search) {
if (et->search_search_id)
gtk_signal_disconnect (GTK_OBJECT (et->search),
et->search_search_id);
g_signal_handler_disconnect (G_OBJECT (et->search),
et->search_search_id);
if (et->search_accept_id)
gtk_signal_disconnect (GTK_OBJECT (et->search),
et->search_accept_id);
gtk_object_unref (GTK_OBJECT (et->search));
g_signal_handler_disconnect (G_OBJECT (et->search),
et->search_accept_id);
g_object_unref (G_OBJECT (et->search));
et->search = NULL;
}
@ -346,7 +346,7 @@ et_destroy (GtkObject *object)
}
if (et->full_header) {
gtk_object_unref (GTK_OBJECT (et->full_header));
g_object_unref (G_OBJECT (et->full_header));
et->full_header = NULL;
}
@ -366,7 +366,7 @@ et_destroy (GtkObject *object)
}
if (et->spec) {
gtk_object_unref (GTK_OBJECT (et->spec));
g_object_unref (G_OBJECT (et->spec));
et->spec = NULL;
}
@ -486,11 +486,11 @@ init_search (ETable *e_table)
e_table->search = e_table_search_new();
e_table->search_search_id =
gtk_signal_connect (GTK_OBJECT (e_table->search), "search",
GTK_SIGNAL_FUNC (et_search_search), e_table);
g_signal_connect (G_OBJECT (e_table->search), "search",
G_CALLBACK (et_search_search), e_table);
e_table->search_accept_id =
gtk_signal_connect (GTK_OBJECT (e_table->search), "accept",
GTK_SIGNAL_FUNC (et_search_accept), e_table);
g_signal_connect (G_OBJECT (e_table->search), "accept",
G_CALLBACK (et_search_accept), e_table);
}
static void
@ -718,8 +718,11 @@ table_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
gdouble width;
gdouble height;
gdouble item_height;
GValue *val = g_new0 (GValue, 1);
g_value_init (val, G_TYPE_DOUBLE);
width = alloc->width;
g_value_set_double (val, width);
gtk_object_get (GTK_OBJECT (e_table->canvas_vbox),
"height", &height,
NULL);
@ -729,9 +732,8 @@ table_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
gtk_object_set (GTK_OBJECT (e_table->canvas_vbox),
"width", width,
NULL);
gtk_object_set (GTK_OBJECT (e_table->header),
"width", width,
NULL);
g_object_set_property (G_OBJECT (e_table->header), "width", val);
g_free (val);
if (e_table->reflow_idle_id)
g_source_remove(e_table->reflow_idle_id);
table_canvas_reflow_idle(e_table);
@ -1238,10 +1240,14 @@ e_table_fill_table (ETable *e_table, ETableModel *model)
void
e_table_set_state_object(ETable *e_table, ETableState *state)
{
GValue *val = g_new0 (GValue, 1);
g_value_init (val, G_TYPE_DOUBLE);
connect_header (e_table, state);
gtk_object_set (GTK_OBJECT (e_table->header),
"width", (double) (GTK_WIDGET(e_table->table_canvas)->allocation.width),
NULL);
g_value_set_double (val, (double) (GTK_WIDGET(e_table->table_canvas)->allocation.width));
g_object_set_property (G_OBJECT (e_table->header), "width", val);
g_free (val);
if (e_table->sort_info) {
if (e_table->group_info_change_id)
@ -1444,13 +1450,14 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
{
int row = 0;
int col_count, i;
GValue *val = g_new0 (GValue, 1);
g_value_init (val, G_TYPE_OBJECT);
if (ete)
gtk_object_ref(GTK_OBJECT(ete));
g_object_ref(G_OBJECT(ete));
else {
ete = e_table_extras_new();
gtk_object_ref(GTK_OBJECT(ete));
gtk_object_sink(GTK_OBJECT(ete));
g_object_ref(G_OBJECT(ete));
}
e_table->domain = g_strdup (specification->domain);
@ -1466,8 +1473,7 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
e_table->draw_focus = specification->draw_focus;
e_table->cursor_mode = specification->cursor_mode;
e_table->full_header = e_table_spec_to_full_header(specification, ete);
gtk_object_ref (GTK_OBJECT (e_table->full_header));
gtk_object_sink (GTK_OBJECT (e_table->full_header));
g_object_ref (G_OBJECT (e_table->full_header));
col_count = e_table_header_count (e_table->full_header);
for (i = 0; i < col_count; i++) {
@ -1502,9 +1508,9 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
GTK_SIGNAL_FUNC (sort_info_changed), e_table);
gtk_object_set(GTK_OBJECT(e_table->header),
"sort_info", e_table->sort_info,
NULL);
g_value_set_object (val, e_table->sort_info);
g_object_set_property (G_OBJECT(e_table->header), "sort_info", val);
g_free (val);
e_table->sorter = e_table_sorter_new(etm, e_table->full_header, e_table->sort_info);
gtk_object_ref (GTK_OBJECT (e_table->sorter));
@ -1552,7 +1558,7 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
gtk_widget_pop_colormap ();
gtk_object_unref(GTK_OBJECT(ete));
g_object_unref(G_OBJECT(ete));
return e_table;
}
@ -1589,10 +1595,9 @@ e_table_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
gtk_object_sink (GTK_OBJECT (etm));
specification = e_table_specification_new();
gtk_object_ref (GTK_OBJECT (specification));
gtk_object_sink (GTK_OBJECT (specification));
g_object_ref (G_OBJECT (specification));
if (!e_table_specification_load_from_string(specification, spec_str)) {
gtk_object_unref(GTK_OBJECT(specification));
g_object_unref(G_OBJECT(specification));
return NULL;
}
@ -1650,7 +1655,7 @@ e_table_construct_from_spec_file (ETable *e_table, ETableModel *etm, ETableExtra
specification = e_table_specification_new();
if (!e_table_specification_load_from_file(specification, spec_fn)) {
gtk_object_unref(GTK_OBJECT(specification));
g_object_unref(G_OBJECT(specification));
return NULL;
}

View File

@ -1330,7 +1330,7 @@ e_tree_sorted_construct (ETreeSorted *ets, ETreeModel *source, ETableHeader *ful
ets->priv->full_header = full_header;
if (full_header)
gtk_object_ref(GTK_OBJECT(full_header));
g_object_ref(G_OBJECT(full_header));
ets->priv->sort_info = sort_info;
if (sort_info)

View File

@ -321,11 +321,11 @@ disconnect_header (ETree *e_tree)
return;
if (e_tree->priv->structure_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_tree->priv->header),
e_tree->priv->structure_change_id);
g_signal_handler_disconnect (G_OBJECT (e_tree->priv->header),
e_tree->priv->structure_change_id);
if (e_tree->priv->expansion_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_tree->priv->header),
e_tree->priv->expansion_change_id);
g_signal_handler_disconnect (G_OBJECT (e_tree->priv->header),
e_tree->priv->expansion_change_id);
if (e_tree->priv->sort_info) {
if (e_tree->priv->sort_info_change_id)
gtk_signal_disconnect (GTK_OBJECT (e_tree->priv->sort_info),
@ -336,7 +336,7 @@ disconnect_header (ETree *e_tree)
gtk_object_unref(GTK_OBJECT(e_tree->priv->sort_info));
}
gtk_object_unref(GTK_OBJECT(e_tree->priv->header));
g_object_unref(G_OBJECT(e_tree->priv->header));
e_tree->priv->header = NULL;
e_tree->priv->sort_info = NULL;
}
@ -344,17 +344,19 @@ disconnect_header (ETree *e_tree)
static void
connect_header (ETree *e_tree, ETableState *state)
{
GValue *val = g_new0 (GValue, 1);
if (e_tree->priv->header != NULL)
disconnect_header (e_tree);
e_tree->priv->header = e_table_state_to_header (GTK_WIDGET(e_tree), e_tree->priv->full_header, state);
e_tree->priv->structure_change_id =
gtk_signal_connect (GTK_OBJECT (e_tree->priv->header), "structure_change",
GTK_SIGNAL_FUNC (search_col_change_trigger), e_tree);
g_signal_connect (G_OBJECT (e_tree->priv->header), "structure_change",
G_CALLBACK (search_col_change_trigger), e_tree);
e_tree->priv->expansion_change_id =
gtk_signal_connect (GTK_OBJECT (e_tree->priv->header), "expansion_change",
GTK_SIGNAL_FUNC (change_trigger), e_tree);
g_signal_connect (G_OBJECT (e_tree->priv->header), "expansion_change",
G_CALLBACK (change_trigger), e_tree);
if (state->sort_info) {
e_tree->priv->sort_info = e_table_sort_info_duplicate(state->sort_info);
@ -368,9 +370,10 @@ connect_header (ETree *e_tree, ETableState *state)
} else
e_tree->priv->sort_info = NULL;
gtk_object_set(GTK_OBJECT(e_tree->priv->header),
"sort_info", e_tree->priv->sort_info,
NULL);
g_value_init (val, G_TYPE_OBJECT);
g_value_set_object (val, e_tree->priv->sort_info);
g_object_set_property (G_OBJECT(e_tree->priv->header), "sort_info", val);
g_free (val);
}
static void
@ -382,12 +385,12 @@ et_destroy (GtkObject *object)
if (et->priv->search) {
if (et->priv->search_search_id)
gtk_signal_disconnect (GTK_OBJECT (et->priv->search),
et->priv->search_search_id);
g_signal_handler_disconnect (G_OBJECT (et->priv->search),
et->priv->search_search_id);
if (et->priv->search_accept_id)
gtk_signal_disconnect (GTK_OBJECT (et->priv->search),
et->priv->search_accept_id);
gtk_object_unref (GTK_OBJECT (et->priv->search));
g_signal_handler_disconnect (G_OBJECT (et->priv->search),
et->priv->search_accept_id);
g_object_unref (G_OBJECT (et->priv->search));
}
if (et->priv->reflow_idle_id)
@ -403,17 +406,20 @@ et_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT (et->priv->etta));
gtk_object_unref (GTK_OBJECT (et->priv->model));
gtk_object_unref (GTK_OBJECT (et->priv->sorted));
gtk_object_unref (GTK_OBJECT (et->priv->full_header));
g_object_unref (G_OBJECT (et->priv->full_header));
disconnect_header (et);
gtk_object_unref (GTK_OBJECT (et->priv->selection));
if (et->priv->spec)
gtk_object_unref (GTK_OBJECT (et->priv->spec));
g_object_unref (G_OBJECT (et->priv->spec));
et->priv->spec = NULL;
if (et->priv->sorter)
gtk_object_unref (GTK_OBJECT (et->priv->sorter));
et->priv->sorter = NULL;
if (et->priv->header_canvas)
gtk_widget_destroy (GTK_WIDGET (et->priv->header_canvas));
et->priv->header_canvas = NULL;
if (et->priv->site)
e_tree_drag_source_unset (et);
@ -603,11 +609,11 @@ e_tree_init (GtkObject *object)
e_tree->priv->search = e_table_search_new();
e_tree->priv->search_search_id =
gtk_signal_connect (GTK_OBJECT (e_tree->priv->search), "search",
GTK_SIGNAL_FUNC (et_search_search), e_tree);
g_signal_connect (G_OBJECT (e_tree->priv->search), "search",
G_CALLBACK (et_search_search), e_tree);
e_tree->priv->search_accept_id =
gtk_signal_connect (GTK_OBJECT (e_tree->priv->search), "accept",
GTK_SIGNAL_FUNC (et_search_accept), e_tree);
g_signal_connect (G_OBJECT (e_tree->priv->search), "accept",
G_CALLBACK (et_search_accept), e_tree);
e_tree->priv->current_search_col = NULL;
e_tree->priv->search_col_set = FALSE;
@ -745,8 +751,11 @@ tree_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
gdouble width;
gdouble height;
gdouble item_height;
GValue *val = g_new0 (GValue, 1);
g_value_init (val, G_TYPE_DOUBLE);
width = alloc->width;
g_value_set_double (val, width);
gtk_object_get (GTK_OBJECT (e_tree->priv->item),
"height", &height,
NULL);
@ -756,9 +765,8 @@ tree_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
gtk_object_set (GTK_OBJECT (e_tree->priv->item),
"width", width,
NULL);
gtk_object_set (GTK_OBJECT (e_tree->priv->header),
"width", width,
NULL);
g_object_set_property (G_OBJECT (e_tree->priv->header), "width", val);
g_free (val);
if (e_tree->priv->reflow_idle_id)
g_source_remove(e_tree->priv->reflow_idle_id);
tree_canvas_reflow_idle(e_tree);
@ -1529,7 +1537,7 @@ e_tree_construct_from_spec_file (ETree *e_tree, ETreeModel *etm, ETableExtras *e
specification = e_table_specification_new();
if (!e_table_specification_load_from_file(specification, spec_fn)) {
gtk_object_unref(GTK_OBJECT(specification));
g_object_unref(G_OBJECT(specification));
return NULL;
}