Create GTypes for Shell namespace

https://bugzilla.gnome.org/show_bug.cgi?id=614755
This commit is contained in:
Colin Walters 2010-04-03 12:48:19 -04:00
parent a9aa89e858
commit 4392516713
3 changed files with 125 additions and 44 deletions

View File

@ -42,7 +42,9 @@ plugin_LTLIBRARIES = libgnome-shell.la
shell_built_sources = \ shell_built_sources = \
shell-marshal.h \ shell-marshal.h \
shell-marshal.c shell-marshal.c \
shell-enum-types.h \
shell-enum-types.c
BUILT_SOURCES += $(shell_built_sources) BUILT_SOURCES += $(shell_built_sources)
EXTRA_DIST += shell-marshal.list EXTRA_DIST += shell-marshal.list
@ -50,52 +52,56 @@ EXTRA_DIST += shell-marshal.list
SHELL_STAMP_FILES = stamp-shell-marshal.h SHELL_STAMP_FILES = stamp-shell-marshal.h
CLEANFILES += $(SHELL_STAMP_FILES) CLEANFILES += $(SHELL_STAMP_FILES)
shell_public_headers_h = \
shell-app.h \
shell-app-system.h \
shell-app-usage.h \
shell-arrow.h \
shell-doc-system.h \
shell-drawing.h \
shell-embedded-window.h \
shell-gconf.h \
shell-generic-container.h \
shell-gtk-embed.h \
shell-menu.h \
shell-overflow-list.h \
shell-process.h \
shell-global.h \
shell-slicer.h \
shell-stack.h \
shell-tray-manager.h \
shell-uri-util.h \
shell-window-tracker.h \
shell-wm.h
libgnome_shell_la_SOURCES = \ libgnome_shell_la_SOURCES = \
$(shell_built_sources) \ $(shell_built_sources) \
$(shell_public_headers_h) \
gnome-shell-plugin.c \ gnome-shell-plugin.c \
shell-app.c \ shell-app.c \
shell-app.h \
shell-app-private.h \ shell-app-private.h \
shell-app-system.c \ shell-app-system.c \
shell-app-system.h \
shell-app-usage.c \ shell-app-usage.c \
shell-app-usage.h \
shell-arrow.c \ shell-arrow.c \
shell-arrow.h \
shell-doc-system.c \ shell-doc-system.c \
shell-doc-system.h \
shell-drawing.c \ shell-drawing.c \
shell-drawing.h \
shell-embedded-window.c \ shell-embedded-window.c \
shell-embedded-window.h \
shell-embedded-window-private.h \ shell-embedded-window-private.h \
shell-gconf.c \ shell-gconf.c \
shell-gconf.h \
shell-generic-container.c \ shell-generic-container.c \
shell-generic-container.h \
shell-gtk-embed.c \ shell-gtk-embed.c \
shell-gtk-embed.h \
shell-menu.c \ shell-menu.c \
shell-menu.h \
shell-overflow-list.c \ shell-overflow-list.c \
shell-overflow-list.h \
shell-process.c \ shell-process.c \
shell-process.h \
shell-global.c \ shell-global.c \
shell-global.h \
shell-global-private.h \ shell-global-private.h \
shell-slicer.c \ shell-slicer.c \
shell-slicer.h \
shell-stack.c \ shell-stack.c \
shell-stack.h \
shell-tray-manager.c \ shell-tray-manager.c \
shell-tray-manager.h \
shell-uri-util.c \ shell-uri-util.c \
shell-uri-util.h \
shell-window-tracker.c \ shell-window-tracker.c \
shell-window-tracker.h \ shell-wm.c
shell-wm.c \
shell-wm.h
non_gir_sources = \ non_gir_sources = \
shell-embedded-window-private.h \ shell-embedded-window-private.h \
@ -149,6 +155,26 @@ shell-marshal.c: Makefile shell-marshal.list
cp -f xgen-smc shell-marshal.c && \ cp -f xgen-smc shell-marshal.c && \
rm -f xgen-smc rm -f xgen-smc
shell-enum-types.h: stamp-shell-enum-types.h Makefile
@true
stamp-shell-enum-types.h: $(srcdir)/shell-enum-types.h.in $(shell_public_headers_h)
$(AM_V_GEN) ( cd $(srcdir) && \
$(GLIB_MKENUMS) \
--template $< \
$(shell_public_headers_h) ) > $@.tmp && \
(cmp -s $@.tmp shell-enum-types.h || mv $@.tmp shell-enum-types.h) && \
rm -f $@.tmp && \
echo timestamp > $(@F)
shell-enum-types.c: shell-enum-types.c.in stamp-shell-enum-types.h
$(AM_V_GEN) ( cd $(srcdir) && \
$(GLIB_MKENUMS) \
--template $< \
$(shell_public_headers_h) ) > $@.tmp && \
mv $@.tmp $@ && \
rm -f $@.tmp
libgnome_shell_la_LDFLAGS = -avoid-version -module libgnome_shell_la_LDFLAGS = -avoid-version -module
libgnome_shell_la_LIBADD =-lm \ libgnome_shell_la_LIBADD =-lm \
$(MUTTER_PLUGIN_LIBS) \ $(MUTTER_PLUGIN_LIBS) \

30
src/shell-enum-types.c.in Normal file
View File

@ -0,0 +1,30 @@
/*** BEGIN file-header ***/
#include "shell-enum-types.h"
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
#include "@filename@"
/*** END file-production ***/
/*** BEGIN value-header ***/
GType
@enum_name@_get_type(void) {
static GType enum_type_id = 0;
if (G_UNLIKELY (!enum_type_id))
{
static const G@Type@Value values[] = {
/*** END value-header ***/
/*** BEGIN value-production ***/
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
/*** END value-production ***/
/*** BEGIN value-tail ***/
{ 0, NULL, NULL }
};
enum_type_id = g_@type@_register_static("@EnumName@", values);
}
return enum_type_id;
}
/*** END value-tail ***/

25
src/shell-enum-types.h.in Normal file
View File

@ -0,0 +1,25 @@
/*** BEGIN file-header ***/
#ifndef __SHELL_ENUM_TYPES_H__
#define __SHELL_ENUM_TYPES_H__
#include <glib-object.h>
G_BEGIN_DECLS
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/*** END file-production ***/
/*** BEGIN file-tail ***/
G_END_DECLS
#endif /* !__SHELL_ENUM_TYPES_H__ */
/*** END file-tail ***/
/*** BEGIN value-header ***/
GType @enum_name@_get_type (void) G_GNUC_CONST;
#define SHELL_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
/*** END value-header ***/