--- /dev/null
+MAINTAINERCLEANFILES = Makefile.in
+MODULE = gadget_test
+
+# data files for the module
+filesdir = $(libdir)/enlightenment/modules/$(MODULE)
+files_DATA =
+EXTRA_DIST = $(files_DATA)
+
+# the module .so file
+INCLUDES = -I. \
+ -I$(top_srcdir) \
+ -I$(includedir) \
+ -I$(top_srcdir)/$(MODULE) \
+ -I$(top_srcdir)/src/bin \
+ -I$(top_srcdir)/src/lib \
+ -I$(top_srcdir)/src/modules \
+ @e_cflags@
+pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH)
+pkg_LTLIBRARIES = module.la
+module_la_SOURCES = e_mod_main.c \
+ e_mod_main.h
+module_la_LIBADD = @e_libs@ @dlopen_libs@
+module_la_LDFLAGS = -module -avoid-version
+module_la_DEPENDENCIES = $(top_builddir)/config.h
+
--- /dev/null
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
+#include "e.h"
+#include "e_mod_main.h"
+
+E_Module_Api e_modapi =
+{
+ E_MODULE_API_VERSION,
+ "Gadget Test"
+};
+
+static void _test_face_init(void *data, E_Gadget_Face *face);
+static void _test_face_free(void *data, E_Gadget_Face *face);
+static void _test_face_change(void *data, E_Gadget_Face *face, E_Gadman_Client *gmc, E_Gadman_Change change);
+static void _test_menu_init(void *data, E_Gadget *gad);
+static void _test_face_menu_init(void *data, E_Gadget_Face *face);
+
+
+void *
+e_modapi_init(E_Module *m)
+{
+ E_Gadget *gad = NULL;
+
+ Test *t = E_NEW(Test, 1);
+
+ gad = e_gadget_new(m,
+ "test_gadget",
+ _test_face_init,
+ _test_face_free,
+ _test_face_change,
+ _test_menu_init,
+ _test_face_menu_init,
+ t);
+
+ return gad;
+}
+
+int
+e_modapi_shutdown(E_Module *m)
+{
+ E_Gadget *gad;
+
+ gad = m->data;
+ if (gad) e_object_del(E_OBJECT(gad));
+ return 1;
+}
+
+int
+e_modapi_save(E_Module *m)
+{
+ return 1;
+}
+
+int
+e_modapi_info(E_Module *m)
+{
+ return 1;
+}
+
+int
+e_modapi_about(E_Module *m)
+{
+ e_module_dialog_show(_("Enlightenment Test Module"), _("Gadget test"));
+ return 1;
+}
+
+static void
+_test_face_init(void *data, E_Gadget_Face *face)
+{
+ Test *t = data;
+
+ e_gadget_face_theme_set(face, "base/theme/modules/clock", "modules/clock/main");
+
+}
+
+static void
+_test_face_free(void *data, E_Gadget_Face *face)
+{
+ Test *t;
+ t = data;
+ if (t) free(t);
+}
+
+static void
+_test_face_change(void *data, E_Gadget_Face *face, E_Gadman_Client *gmc, E_Gadman_Change change)
+{
+ printf("change face!\n");
+}
+
+static void
+_test_menu_init(void *data, E_Gadget *gad)
+{
+ E_Menu_Item *mi;
+
+ mi = e_menu_item_new(gad->menu);
+ e_menu_item_label_set(mi, _("Test Menu Item"));
+}
+
+static void
+_test_face_menu_init(void *data, E_Gadget_Face *face)
+{
+ E_Menu_Item *mi;
+
+ mi = e_menu_item_new(face->menu);
+ e_menu_item_label_set(mi, _("Test Face Menu Item"));
+}
--- /dev/null
+#ifndef E_MOD_MAIN_H
+#define E_MOD_MAIN_H
+
+typedef struct _Test Test;
+struct _Test
+{
+ int val;
+};
+extern E_Module_Api e_modapi;
+
+EAPI void *e_modapi_init (E_Module *m);
+EAPI int e_modapi_shutdown (E_Module *m);
+EAPI int e_modapi_save (E_Module *m);
+EAPI int e_modapi_info (E_Module *m);
+EAPI int e_modapi_about (E_Module *m);
+
+#endif