Skip to content

Commit

Permalink
Merge Richard Cohen's 'more-define-types' into stable.
Browse files Browse the repository at this point in the history
  • Loading branch information
jralls committed Jun 7, 2023
2 parents a5ff19b + 680fe47 commit dda661c
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 159 deletions.
51 changes: 10 additions & 41 deletions gnucash/gnome-utils/gnc-dense-cal-model.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,9 @@ enum { GDCM_ADDED, GDCM_UPDATE, GDCM_REMOVE, LAST_SIGNAL };
static guint gnc_dense_cal_model_signals[LAST_SIGNAL] = { 0 };

static void
gnc_dense_cal_model_base_init(gpointer g_class)
gnc_dense_cal_model_default_init(GncDenseCalModelInterface *g_class)
{
static gboolean initialized = FALSE;

if (!initialized)
{
gnc_dense_cal_model_signals[GDCM_ADDED]
= g_signal_new("added",
gnc_dense_cal_model_signals[GDCM_ADDED] = g_signal_new("added",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
Expand All @@ -60,8 +55,7 @@ gnc_dense_cal_model_base_init(gpointer g_class)
G_TYPE_UINT /* param types */
);

gnc_dense_cal_model_signals[GDCM_UPDATE]
= g_signal_new("update",
gnc_dense_cal_model_signals[GDCM_UPDATE] = g_signal_new("update",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
Expand All @@ -73,8 +67,7 @@ gnc_dense_cal_model_base_init(gpointer g_class)
G_TYPE_UINT /* param types */
);

gnc_dense_cal_model_signals[GDCM_REMOVE]
= g_signal_new("removing",
gnc_dense_cal_model_signals[GDCM_REMOVE] = g_signal_new("removing",
G_TYPE_FROM_CLASS(g_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0 /* default offset */,
Expand All @@ -85,60 +78,36 @@ gnc_dense_cal_model_base_init(gpointer g_class)
1 /* n_params */,
G_TYPE_UINT /* param types */
);

initialized = TRUE;
}
}

GType
gnc_dense_cal_model_get_type(void)
{
static GType type = 0;
if (type == 0)
{
static const GTypeInfo info =
{
sizeof(GncDenseCalModelIface),
gnc_dense_cal_model_base_init, /* base_init */
NULL, /* base_finalize */
NULL, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
0,
0, /* n_preallocs */
NULL /* instance_init */
};
type = g_type_register_static(G_TYPE_INTERFACE, "GncDenseCalModel", &info, 0);
}
return type;
}
G_DEFINE_INTERFACE (GncDenseCalModel, gnc_dense_cal_model, G_TYPE_OBJECT)

GList*
gnc_dense_cal_model_get_contained(GncDenseCalModel *model)
{
return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_contained)(model);
return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_contained)(model);
}

gchar*
gnc_dense_cal_model_get_name(GncDenseCalModel *model, guint tag)
{
return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_name)(model, tag);
return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_name)(model, tag);
}

gchar*
gnc_dense_cal_model_get_info(GncDenseCalModel *model, guint tag)
{
return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_info)(model, tag);
return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_info)(model, tag);
}

gint
gnc_dense_cal_model_get_instance_count(GncDenseCalModel *model, guint tag)
{
return (*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance_count)(model, tag);
return (*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_instance_count)(model, tag);
}

void
gnc_dense_cal_model_get_instance(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date)
{
(*GNC_DENSE_CAL_MODEL_GET_INTERFACE(model)->get_instance)(model, tag, instance_index, date);
(*GNC_DENSE_CAL_MODEL_GET_IFACE(model)->get_instance)(model, tag, instance_index, date);
}
16 changes: 3 additions & 13 deletions gnucash/gnome-utils/gnc-dense-cal-model.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,19 @@
G_BEGIN_DECLS

#define GNC_TYPE_DENSE_CAL_MODEL (gnc_dense_cal_model_get_type())
#define GNC_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModel))
#define GNC_IS_DENSE_CAL_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_DENSE_CAL_MODEL))
#define GNC_DENSE_CAL_MODEL_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GNC_TYPE_DENSE_CAL_MODEL, GncDenseCalModelIface))
G_DECLARE_INTERFACE (GncDenseCalModel, gnc_dense_cal_model, GNC, DENSE_CAL_MODEL, GObject)

typedef struct _GncDenseCalModel GncDenseCalModel; /* non existent */
typedef struct _GncDenseCalModelIface
struct _GncDenseCalModelInterface
{
GTypeInterface parent;

/* signals */
void (*insert)(GncDenseCalModel *mdl, gint tag);
void (*update)(GncDenseCalModel *mdl, gint tag);
void (*remove)(GncDenseCalModel *mdl, gint tag);

/* virtual table */
GList* (*get_contained)(GncDenseCalModel *model);
gchar* (*get_name)(GncDenseCalModel *model, guint tag);
gchar* (*get_info)(GncDenseCalModel *model, guint tag);
gint (*get_instance_count)(GncDenseCalModel *model, guint tag);
void (*get_instance)(GncDenseCalModel *model, guint tag, gint instance_index, GDate *date);
} GncDenseCalModelIface;

GType gnc_dense_cal_model_get_type(void);
};

/** @return Caller-owned GList (but not elements). The Model-user will free. **/
GList* gnc_dense_cal_model_get_contained(GncDenseCalModel *model);
Expand Down
4 changes: 2 additions & 2 deletions gnucash/gnome-utils/gnc-dense-cal-store.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ struct _GncDenseCalStoreClass
GObjectClass parent_class;
};

static void gnc_dense_cal_store_iface_init(GncDenseCalModelIface *iface);
static void gnc_dense_cal_store_iface_init(GncDenseCalModelInterface *iface);
static void gnc_dense_cal_store_finalize(GObject *obj);

static GList* gdcs_get_contained(GncDenseCalModel *model);
Expand All @@ -85,7 +85,7 @@ gnc_dense_cal_store_init(GncDenseCalStore *self)
}

static void
gnc_dense_cal_store_iface_init(GncDenseCalModelIface *iface)
gnc_dense_cal_store_iface_init(GncDenseCalModelInterface *iface)
{
iface->get_contained = gdcs_get_contained;
iface->get_name = gdcs_get_name;
Expand Down
4 changes: 2 additions & 2 deletions gnucash/gnome-utils/gnc-embedded-window.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ static QofLogModule log_module = GNC_MOD_GUI;
static void gnc_embedded_window_finalize (GObject *object);
static void gnc_embedded_window_dispose (GObject *object);

static void gnc_window_embedded_window_init (GncWindowIface *iface);
static void gnc_window_embedded_window_init (GncWindowInterface *iface);

static void gnc_embedded_window_setup_window (GncEmbeddedWindow *window);

Expand Down Expand Up @@ -499,7 +499,7 @@ gnc_embedded_window_get_accel_group (GncWindow *window)
* @param iface A pointer to the interface data structure to
* populate. */
static void
gnc_window_embedded_window_init (GncWindowIface *iface)
gnc_window_embedded_window_init (GncWindowInterface *iface)
{
iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
iface->get_statusbar = gnc_embedded_window_get_statusbar;
Expand Down
4 changes: 2 additions & 2 deletions gnucash/gnome-utils/gnc-main-window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ static void gnc_main_window_finalize (GObject *object);
static void gnc_main_window_destroy (GtkWidget *widget);

static void gnc_main_window_setup_window (GncMainWindow *window);
static void gnc_window_main_window_init (GncWindowIface *iface);
static void gnc_window_main_window_init (GncWindowInterface *iface);
#ifndef MAC_INTEGRATION
static void gnc_main_window_update_all_menu_items (void);
#endif
Expand Down Expand Up @@ -5453,7 +5453,7 @@ gnc_main_window_get_accel_group (GncWindow *window)
* @param iface A pointer to the interface data structure to
* populate. */
static void
gnc_window_main_window_init (GncWindowIface *iface)
gnc_window_main_window_init (GncWindowInterface *iface)
{
iface->get_gtk_window = gnc_main_window_get_gtk_window;
iface->get_statusbar = gnc_main_window_get_statusbar;
Expand Down
4 changes: 2 additions & 2 deletions gnucash/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
#define G_LOG_DOMAIN "gnc.gui.sx.adapter.sx-dense-cal"
static const QofLogModule log_module = G_LOG_DOMAIN;

static void gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelIface *iface);
static void gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelInterface *iface);
static void gnc_sx_instance_dense_cal_adapter_dispose(GObject *obj);
static void gnc_sx_instance_dense_cal_adapter_finalize(GObject *obj);

Expand Down Expand Up @@ -82,7 +82,7 @@ gnc_sx_instance_dense_cal_adapter_init(GncSxInstanceDenseCalAdapter *instance)
}

static void
gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelIface *iface)
gnc_sx_instance_dense_cal_adapter_interface_init(GncDenseCalModelInterface *iface)
{
iface->get_contained = gsidca_get_contained;
iface->get_name = gsidca_get_name;
Expand Down
30 changes: 4 additions & 26 deletions gnucash/gnome-utils/gnc-window.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,33 +34,11 @@

static QofLogModule log_module = GNC_MOD_GUI;

GType
gnc_window_get_type (void)
{
static GType gnc_window_type = 0;

if (gnc_window_type == 0)
{
static const GTypeInfo our_info =
{
sizeof (GncWindowIface),
NULL,
NULL,
NULL,
NULL,
NULL,
0,
0,
NULL
};

gnc_window_type = g_type_register_static (G_TYPE_INTERFACE,
"GncWindow",
&our_info, 0);
g_type_interface_add_prerequisite (gnc_window_type, G_TYPE_OBJECT);
}
G_DEFINE_INTERFACE (GncWindow, gnc_window, G_TYPE_OBJECT)

return gnc_window_type;
static void
gnc_window_default_init (GncWindowInterface *klass)
{
}

/************************************************************
Expand Down
12 changes: 3 additions & 9 deletions gnucash/gnome-utils/gnc-window.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,10 @@ G_BEGIN_DECLS

/* type macros */
#define GNC_TYPE_WINDOW (gnc_window_get_type ())
#define GNC_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_WINDOW, GncWindow))
#define GNC_IS_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_WINDOW))
#define GNC_WINDOW_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GNC_TYPE_WINDOW, GncWindowIface))
G_DECLARE_INTERFACE (GncWindow, gnc_window, GNC, WINDOW, GObject)

/* typedefs & structures */
typedef struct GncWindow GncWindow; /* dummy typedef */

typedef struct
struct _GncWindowInterface
{
GTypeInterface parent;

Expand All @@ -68,11 +64,9 @@ typedef struct
GMenuModel * (* get_menubar_model) (GncWindow *window);
GtkAccelGroup * (* get_accel_group) (GncWindow *window);
void (* ui_set_sensitive) (GncWindow *window, gboolean sensitive);
} GncWindowIface;
};

/* function prototypes */
GType gnc_window_get_type (void);

GtkWindow *gnc_window_get_gtk_window (GncWindow *window);

void gnc_window_update_status (GncWindow *window, GncPluginPage *page);
Expand Down
1 change: 0 additions & 1 deletion libgnucash/app-utils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ include (GncFindLibm)
set (app_utils_HEADERS
QuickFill.h
file-utils.h
gnc-basic-gobject.h
gnc-account-merge.h
gnc-addr-quickfill.h
gnc-entry-quickfill.h
Expand Down
61 changes: 0 additions & 61 deletions libgnucash/app-utils/gnc-basic-gobject.h

This file was deleted.

0 comments on commit dda661c

Please sign in to comment.