aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/Makefile.am57
-rw-r--r--libempathy-gtk/empathy-contact-list-store.c23
-rw-r--r--libempathy-gtk/empathy-contact-list-store.h4
-rw-r--r--libempathy-gtk/empathy-main-window.c1
-rw-r--r--libempathy-gtk/empathy-preferences.c1
5 files changed, 58 insertions, 28 deletions
diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am
index 9da681a1e..7b0a9db29 100644
--- a/libempathy-gtk/Makefile.am
+++ b/libempathy-gtk/Makefile.am
@@ -5,6 +5,10 @@ AM_CPPFLAGS = \
$(EMPATHY_CFLAGS) \
$(WARN_CFLAGS)
+BUILT_SOURCES = \
+ empathy-gtk-enum-types.h \
+ empathy-gtk-enum-types.c
+
lib_LTLIBRARIES = libempathy-gtk.la
libempathy_gtk_la_SOURCES = \
@@ -42,6 +46,10 @@ libempathy_gtk_la_SOURCES = \
empathy-ui-utils.c \
empathy-account-widget-msn.c
+# do not distribute generated files
+nodist_libempathy_gtk_la_SOURCES =\
+ $(BUILT_SOURCES)
+
libempathy_gtk_la_LIBADD = \
$(EMPATHY_LIBS) \
$(top_builddir)/libempathy/libempathy.la
@@ -49,8 +57,7 @@ libempathy_gtk_la_LIBADD = \
libempathy_gtk_la_LDFLAGS = \
-version-info ${LIBEMPATHY_GTK_CURRENT}:${LIBEMPATHY_GTK_REVISION}:${LIBEMPATHY_GTK_AGE}
-libempathy_gtkdir = $(includedir)/libempathy-gtk/
-libempathy_gtk_HEADERS = \
+libempathy_gtk_headers = \
empathy-images.h \
empathy-main-window.h \
empathy-status-icon.h \
@@ -85,6 +92,11 @@ libempathy_gtk_HEADERS = \
empathy-ui-utils.h \
empathy-account-widget-msn.h
+libempathy_gtk_includedir = $(includedir)/libempathy-gtk/
+libempathy_gtk_include_HEADERS = \
+ $(libempathy_gtk_headers) \
+ empathy-gtk-enum-types.h
+
gladedir = $(datadir)/empathy
glade_DATA = \
empathy-main-window.glade \
@@ -103,6 +115,44 @@ glade_DATA = \
empathy-chat.glade \
empathy-account-widget-msn.glade
+empathy-gtk-enum-types.h: stamp-empathy-gtk-enum-types.h
+ @true
+stamp-empathy-gtk-enum-types.h: Makefile $(libempathy_gtk_headers)
+ (cd $(srcdir) \
+ && glib-mkenums \
+ --fhead "#ifndef __LIBEMPATHY_GTK_ENUM_TYPES_H__\n" \
+ --fhead "#define __LIBEMPATHY_GTK_ENUM_TYPES_H__ 1\n\n" \
+ --fhead "#include <glib-object.h>\n\n" \
+ --fhead "G_BEGIN_DECLS\n\n" \
+ --ftail "G_END_DECLS\n\n" \
+ --ftail "#endif /* __LIBEMPATHY_GTK_ENUM_TYPES_H__ */\n" \
+ --fprod "#include <libempathy-gtk/@filename@>\n" \
+ --eprod "#define EMPATHY_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \
+ --eprod "GType @enum_name@_get_type (void);\n" \
+ $(libempathy_gtk_headers) ) > xgen-gth \
+ && (cmp -s xgen-gth empathy-gtk-enum-type.h || cp xgen-gth empathy-gtk-enum-types.h) \
+ && rm -f xgen-gth \
+ && echo timestamp > $(@F)
+
+empathy-gtk-enum-types.c: Makefile $(libempathy_gtk_headers)
+ (cd $(srcdir) \
+ && glib-mkenums \
+ --fhead "#include <config.h>\n" \
+ --fhead "#include <glib-object.h>\n" \
+ --fhead "#include \"empathy-gtk-enum-types.h\"\n\n" \
+ --fprod "\n/* enumerations from \"@filename@\" */" \
+ --vhead "static const G@Type@Value _@enum_name@_values[] = {" \
+ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+ --vtail " { 0, NULL, NULL }\n};\n\n" \
+ --vtail "GType\n@enum_name@_get_type (void)\n{\n" \
+ --vtail " static GType type = 0;\n\n" \
+ --vtail " if (!type)\n" \
+ --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \
+ --vtail " return type;\n}\n\n" \
+ $(libempathy_gtk_headers) ) > xgen-gtc \
+ && cp xgen-gtc $(@F) \
+ && rm -f xgen-gtc
+
dtddir = $(datadir)/empathy
dtd_DATA = \
empathy-status-presets.dtd \
@@ -115,3 +165,6 @@ EXTRA_DIST = \
$(glade_DATA) \
$(dtd_DATA)
+CLEANFILES = \
+ $(BUILT_SOURCES) \
+ stamp-empathy-gtk-enum-types.h
diff --git a/libempathy-gtk/empathy-contact-list-store.c b/libempathy-gtk/empathy-contact-list-store.c
index 3b4892e3c..ac2fa62cd 100644
--- a/libempathy-gtk/empathy-contact-list-store.c
+++ b/libempathy-gtk/empathy-contact-list-store.c
@@ -35,6 +35,7 @@
#include "empathy-contact-list-store.h"
#include "empathy-contact-groups.h"
#include "empathy-ui-utils.h"
+#include "empathy-gtk-enum-types.h"
#define DEBUG_DOMAIN "ContactListStore"
@@ -157,28 +158,6 @@ enum {
PROP_SORT_CRITERIUM
};
-GType
-empathy_contact_list_store_sort_get_type (void)
-{
- static GType etype = 0;
-
- if (etype == 0) {
- static const GEnumValue values[] = {
- { EMPATHY_CONTACT_LIST_STORE_SORT_NAME,
- "EMPATHY_CONTACT_LIST_STORE_SORT_NAME",
- "name" },
- { EMPATHY_CONTACT_LIST_STORE_SORT_STATE,
- "EMPATHY_CONTACT_LIST_STORE_SORT_STATE",
- "state" },
- { 0, NULL, NULL }
- };
-
- etype = g_enum_register_static ("EmpathyContactListStoreSort", values);
- }
-
- return etype;
-}
-
G_DEFINE_TYPE (EmpathyContactListStore, empathy_contact_list_store, GTK_TYPE_TREE_STORE);
static void
diff --git a/libempathy-gtk/empathy-contact-list-store.h b/libempathy-gtk/empathy-contact-list-store.h
index 2e40e8c72..d7c9635f5 100644
--- a/libempathy-gtk/empathy-contact-list-store.h
+++ b/libempathy-gtk/empathy-contact-list-store.h
@@ -36,15 +36,11 @@ G_BEGIN_DECLS
/*
* EmpathyContactListStoreSort
*/
-#define EMPATHY_TYPE_CONTACT_LIST_STORE_SORT (empathy_contact_list_store_sort_get_type ())
-
typedef enum {
EMPATHY_CONTACT_LIST_STORE_SORT_STATE,
EMPATHY_CONTACT_LIST_STORE_SORT_NAME
} EmpathyContactListStoreSort;
-GType empathy_contact_list_store_sort_get_type (void) G_GNUC_CONST;
-
/*
* EmpathyContactListStore
*/
diff --git a/libempathy-gtk/empathy-main-window.c b/libempathy-gtk/empathy-main-window.c
index 7f61afcdb..13c578d89 100644
--- a/libempathy-gtk/empathy-main-window.c
+++ b/libempathy-gtk/empathy-main-window.c
@@ -51,6 +51,7 @@
#include "empathy-new-chatroom-dialog.h"
#include "empathy-chatrooms-window.h"
#include "empathy-log-window.h"
+#include "empathy-gtk-enum-types.h"
#define DEBUG_DOMAIN "MainWindow"
diff --git a/libempathy-gtk/empathy-preferences.c b/libempathy-gtk/empathy-preferences.c
index 7c9a27b6d..024d5137d 100644
--- a/libempathy-gtk/empathy-preferences.c
+++ b/libempathy-gtk/empathy-preferences.c
@@ -37,6 +37,7 @@
#include "empathy-theme-manager.h"
#include "empathy-spell.h"
#include "empathy-contact-list-store.h"
+#include "empathy-gtk-enum-types.h"
typedef struct {
GtkWidget *dialog;