SUBDIRS = libmaemo-tweaks-section modules
+libmaemo_tweaks_section = \
+ $(top_builddir)/libmaemo-tweaks-section/libmaemo-tweaks-section.la
+
libmaemo_tweaks_LTLIBRARIES = libmaemo-tweaks.la
libmaemo_tweaksdir = $(libdir)/hildon-control-panel
libmaemo_tweaks_la_LIBADD = \
$(GTK_LIBS) \
$(HILDON_LIBS) \
- $(OSSO_LIBS)
+ $(OSSO_LIBS) \
+ $(libmaemo_tweaks_section)
AM_CFLAGS = \
$(GTK_CFLAGS) \
$(HILDON_CFLAGS) \
$(OSSO_CFLAGS) \
-I$(top_srcdir) \
+ -DMODULES_DIR=\"$(modulesdir)\" \
-DG_LOG_DOMAIN=\"maemo-tweaks\"
libmaemo_tweaks_la_SOURCES = \
CFLAGS="$CFLAGS -g -fprofile-arcs -ftest-coverage"
fi
+AC_ARG_WITH(modules_dir, AS_HELP_STRING([--with-modules-dir=<path>],[Directory for storing maemo-tweaks modules]))
+if test -z "$with_modules_dir" ; then
+ modulesdir=$libdir/maemo-tweaks/modules
+else
+ modulesdir=$with_modules_dir
+fi
+AC_SUBST(modulesdir)
+
AC_OUTPUT([
Makefile
libmaemo-tweaks-section/Makefile
#include <hildon-cp-plugin/hildon-cp-plugin-interface.h>
#include <gtk/gtk.h>
+#include "maemo-tweaks-types.h"
+#include "libmaemo-tweaks-section/maemo-tweaks-section.h"
+#include "maemo-tweaks-module-manager.h"
+
GtkWidget *create_dialog (GtkWindow *parent)
{
GtkWidget *dialog;
return dialog;
}
-
osso_return_t execute (osso_context_t *osso, gpointer data,
gboolean user_activated)
{
GtkWidget *dialog;
gint response;
+ MaemoTweaksModuleManager *manager;
+ GType *section_types;
+ guint n_sections;
+ GList *sections = NULL;
+ gint i;
+
+ manager = g_object_new (MAEMO_TWEAKS_TYPE_MODULE_MANAGER,
+ "module-path", MODULES_DIR,
+ NULL);
+
+ section_types = g_type_children (MAEMO_TWEAKS_TYPE_SECTION, &n_sections);
+
dialog = create_dialog (GTK_WINDOW (data));
+
+ for (i = 0; i < n_sections; i++)
+ {
+ MaemoTweaksSection *section;
+ MaemoTweaksSectionClass *klass;
+
+ klass = g_type_class_ref (section_types[i]);
+ section = maemo_tweaks_section_new (section_types[i]);
+
+ sections = g_list_prepend (sections, section);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+ maemo_tweaks_section_get_widget (section),
+ FALSE, FALSE, 0);
+
+ g_type_class_unref (klass);
+ }
+
response = gtk_dialog_run (GTK_DIALOG (dialog));
if (response == GTK_RESPONSE_OK)
{
}
+
gtk_widget_destroy (GTK_WIDGET (dialog));
+ g_object_unref (manager);
+ g_list_foreach (sections, (GFunc) g_object_unref, NULL);
+ if (sections)
+ g_list_free (sections);
+
return OSSO_OK;
}