diff options
author | Jean-François Rameau <jframeau@cvs.gnome.org> | 2005-01-21 03:04:31 +0800 |
---|---|---|
committer | Jean-François Rameau <jframeau@src.gnome.org> | 2005-01-21 03:04:31 +0800 |
commit | 0611ef2fe780b5d8b3abea917921ceca2fdf544a (patch) | |
tree | 7849cf5b7d520a9dd7cb108952a3b78b10ab7585 /src | |
parent | 7158c7b4c0c51189580126c4966e5868c920f8d7 (diff) | |
download | gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar.gz gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar.bz2 gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar.lz gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar.xz gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.tar.zst gsoc2013-epiphany-0611ef2fe780b5d8b3abea917921ceca2fdf544a.zip |
Make ephy-bookmarks.h's enum a named enum. Auto-generate types for
2005-01-20 Jean-François Rameau <jframeau@cvs.gnome.org>
* src/bookmarks/ephy-bookmarks.h:
* src/bookmarks/Makefile.am:
* src/bookmarks/ephy-bookmarks.c: (ephy_bookmarks_get_type):
Make ephy-bookmarks.h's enum a named enum.
Auto-generate types for ephy-bookmarks.h's enum.
Make sure our enum type is registered.
Diffstat (limited to 'src')
-rw-r--r-- | src/bookmarks/Makefile.am | 57 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks.c | 5 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks.h | 4 |
3 files changed, 63 insertions, 3 deletions
diff --git a/src/bookmarks/Makefile.am b/src/bookmarks/Makefile.am index 0644de0b8..e5f286ea7 100644 --- a/src/bookmarks/Makefile.am +++ b/src/bookmarks/Makefile.am @@ -1,7 +1,9 @@ noinst_LTLIBRARIES = libephybookmarks.la headerdir = $(prefix)/include/epiphany-@EPIPHANY_MAJOR@/epiphany -header_DATA = $(INST_H_FILES) +header_DATA = \ + ephy-bookmarks-type-builtins.h \ + $(INST_H_FILES) INST_H_FILES = \ ephy-bookmarks.h @@ -21,6 +23,7 @@ NOINST_H_FILES = \ ephy-topics-selector.h libephybookmarks_la_SOURCES = \ + $(BUILT_SOURCES) \ ephy-bookmarks.c \ ephy-bookmark-action.c \ ephy-bookmarks-editor.c \ @@ -37,6 +40,54 @@ libephybookmarks_la_SOURCES = \ $(NOINST_H_FILES) \ $(INST_H_FILES) +BUILT_SOURCES = $(TYPES_SOURCE) + +TYPES_SOURCE = \ + ephy-bookmarks-type-builtins.c \ + ephy-bookmarks-type-builtins.h + +stamp_files = \ + stamp-ephy-bookmarks-type-builtins.c \ + stamp-ephy-bookmarks-type-builtins.h + +ephy-bookmarks-type-builtins.c: stamp-ephy-bookmarks-type-builtins.c + @true +stamp-ephy-bookmarks-type-builtins.c: $(INST_H_FILES) $(NOINST_H_FILES) + ( cd $(srcdir) && $(GLIB_MKENUMS) \ + --fhead "#include \"ephy-bookmarks-type-builtins.h\"\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --fprod "\n#include \"@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 (G_UNLIKELY (type == 0))\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + $(^F) ) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) + +ephy-bookmarks-type-builtins.h: stamp-ephy-bookmarks-type-builtins.h + @true +stamp-ephy-bookmarks-type-builtins.h: $(INST_H_FILES) $(NOINST_H_FILES) + ( cd $(srcdir) && $(GLIB_MKENUMS) \ + --fhead "#ifndef EPHY_BOOKMARKS_TYPE_BUILTINS_H\n" \ + --fhead "#define EPHY_BOOKMARKS_TYPE_BUILTINS_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 /* EPHY_TYPE_BUILTINS_H */\n" \ + --fprod "\n/* --- @filename@ --- */" \ + --eprod "#define EPHY_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \ + --eprod "GType @enum_name@_get_type (void);\n" \ + $(^F) ) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) + libephybookmarks_la_CPPFLAGS = \ -I$(top_builddir)/lib \ -I$(top_srcdir)/lib \ @@ -49,3 +100,7 @@ libephybookmarks_la_CPPFLAGS = \ libephybookmarks_la_CFLAGS = \ $(EPIPHANY_DEPENDENCY_CFLAGS) \ $(AM_CFLAGS) + +CLEANFILES = $(stamp_files) $(BUILT_SOURCES) +DISTCLEANFILES = $(stamp_files) $(BUILT_SOURCES) +MAINTAINERCLEANFILES = $(stamp_files) $(BUILT_SOURCES) diff --git a/src/bookmarks/ephy-bookmarks.c b/src/bookmarks/ephy-bookmarks.c index 5fa33c340..9d24f7d76 100644 --- a/src/bookmarks/ephy-bookmarks.c +++ b/src/bookmarks/ephy-bookmarks.c @@ -22,6 +22,7 @@ #include "config.h" #include "ephy-bookmarks.h" +#include "ephy-bookmarks-type-builtins.h" #include "ephy-file-helpers.h" #include "ephy-embed-shell.h" #include "ephy-shell.h" @@ -138,6 +139,10 @@ ephy_bookmarks_get_type (void) 0, /* n_preallocs */ (GInstanceInitFunc) ephy_bookmarks_init }; + volatile GType flags_type; /* work around gcc's optimiser */ + + /* make sure the flags type is known */ + flags_type = EPHY_TYPE_BOOKMARK_PROPERTY; type = g_type_register_static (G_TYPE_OBJECT, "EphyBookmarks", diff --git a/src/bookmarks/ephy-bookmarks.h b/src/bookmarks/ephy-bookmarks.h index e42a6975d..b9a3ea69c 100644 --- a/src/bookmarks/ephy-bookmarks.h +++ b/src/bookmarks/ephy-bookmarks.h @@ -42,7 +42,7 @@ typedef struct _EphyBookmarksPrivate EphyBookmarksPrivate; #define BOOKMARKS_HIERARCHY_SEP "->" -enum +typedef enum { EPHY_NODE_BMK_PROP_TITLE = 2, EPHY_NODE_BMK_PROP_LOCATION = 3, @@ -50,7 +50,7 @@ enum EPHY_NODE_KEYWORD_PROP_NAME = 5, EPHY_NODE_BMK_PROP_ICON = 7, EPHY_NODE_KEYWORD_PROP_PRIORITY = 8 -}; +} EphyBookmarkProperty; struct _EphyBookmarks { |