[maemo-commits] [maemo-commits] r9004 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . data src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jan 9 15:54:52 EET 2007
Author: lucasr
Date: 2007-01-09 15:54:50 +0200 (Tue, 09 Jan 2007)
New Revision: 9004

Added:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/data/app-switcher.desktop.in
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.h
Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac
   projects/haf/branches/maemo-af-desktop/hildon-desktop/data/Makefile.am
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.h
Log:
2007-01-09  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-plugin-loader-builtin.[ch], src/Makefile.am: new builtin
	plugin loader.
	* src/hd-plugin-loader-factory.c: added builtin loader.
	* data/Makefile.am, data/app-switcher.desktop.in: desktop file for application switcher
	plugin.


Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-01-09 13:54:50 UTC (rev 9004)
@@ -1,5 +1,13 @@
 2007-01-09  Lucas Rocha  <lucas.rocha at nokia.com>
 
+	* src/hd-plugin-loader-builtin.[ch], src/Makefile.am: new builtin
+	plugin loader.
+	* src/hd-plugin-loader-factory.c: added builtin loader.
+	* data/Makefile.am, data/app-switcher.desktop.in: desktop file for application switcher
+	plugin.
+
+2007-01-09  Lucas Rocha  <lucas.rocha at nokia.com>
+
 	* libhildondesktop/hildon-home-window.c, data/Makefile.am: renamed
 	hildon-home-layout.conf to home-layout.conf.
 

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac	2007-01-09 13:54:50 UTC (rev 9004)
@@ -178,6 +178,8 @@
 
 AC_OUTPUT([
 Makefile 
+src/Makefile
+src/hildon-desktop.pc
 libhildonwm/Makefile 
 libhildonwm/libhildonwm.pc 
 libhildondesktop/Makefile 
@@ -187,6 +189,5 @@
 background-manager/background-manager.xml 
 background-manager/background-manager-dbus.h 
 data/Makefile 
-src/Makefile
-src/hildon-desktop.pc
+data/app-switcher.desktop 
 ])

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/data/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/data/Makefile.am	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/data/Makefile.am	2007-01-09 13:54:50 UTC (rev 9004)
@@ -1,6 +1,10 @@
-hildondesktopconf_DATA = desktop.conf 			\
-			 tasknavigator.conf 		\
-			 home.conf			\
-			 home-layout.conf
+hildondesktopconf_DATA = \
+	desktop.conf        \
+	tasknavigator.conf  \
+	home.conf           \
+	home-layout.conf
 
+hildonnavigatordesktopentry_DATA = \
+	app-switcher.desktop 
+
 CLEANFILES = *~

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/data/app-switcher.desktop.in
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/data/app-switcher.desktop.in	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/data/app-switcher.desktop.in	2007-01-09 13:54:50 UTC (rev 9004)
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Name=Application Switcher
+Type=builtin
+X-Path=appswitcher

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am	2007-01-09 13:54:50 UTC (rev 9004)
@@ -44,6 +44,8 @@
 	hd-plugin-loader.h          \
 	hd-plugin-loader-default.c  \
 	hd-plugin-loader-default.h  \
+	hd-plugin-loader-builtin.c  \
+	hd-plugin-loader-builtin.h  \
 	hd-plugin-loader-legacy.c   \
 	hd-plugin-loader-legacy.h 
 

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.c	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.c	2007-01-09 13:54:50 UTC (rev 9004)
@@ -0,0 +1,100 @@
+/*
+ * This file is part of hildon-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author:  Lucas Rocha <lucas.rocha at nokia.com>
+ * Contact: Karoliina Salminen <karoliina.t.salminen at nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "hd-plugin-loader-builtin.h"
+#include "hd-config.h"
+#include "hn-app-switcher.h"
+
+#define HD_PLUGIN_LOADER_BUILTIN_GET_PRIVATE(obj) \
+        (G_TYPE_INSTANCE_GET_PRIVATE ((obj), HD_TYPE_PLUGIN_LOADER_BUILTIN, HDPluginLoaderBuiltinPrivate))
+
+G_DEFINE_TYPE (HDPluginLoaderBuiltin, hd_plugin_loader_builtin, HD_TYPE_PLUGIN_LOADER);
+
+#define HD_PLUGIN_LOADER_BUILTIN_APP_SWITCHER "appswitcher"
+
+static GList *
+hd_plugin_loader_builtin_load (HDPluginLoader *loader, GError **error)
+{
+  GList *objects = NULL;
+  GKeyFile *keyfile;
+  gchar *path;
+  GError *keyfile_error;
+  
+  g_return_val_if_fail (loader, NULL);
+ 
+  keyfile = hd_plugin_loader_get_key_file (loader);
+
+  if (!keyfile)
+  {
+    g_set_error (error,
+                 hd_plugin_loader_error_quark (),
+                 HD_PLUGIN_LOADER_ERROR_KEYFILE,
+                 "A keyfile required to load plugins");
+
+    return NULL;
+  }
+
+  
+  path = g_key_file_get_string (keyfile, 
+                                HD_PLUGIN_CONFIG_GROUP, 
+                                HD_PLUGIN_CONFIG_KEY_PATH,
+                                &keyfile_error);
+
+  if (keyfile_error)
+  {
+    g_propagate_error (error, keyfile_error);
+
+    return NULL;
+  }
+
+  if (!g_ascii_strcasecmp (path, HD_PLUGIN_LOADER_BUILTIN_APP_SWITCHER)) 
+  {
+    GObject *object = g_object_new (HN_TYPE_APP_SWITCHER, NULL);
+
+    objects = g_list_append (objects, object);
+  }
+
+  g_free (path);
+  
+  return objects;
+}
+
+static void
+hd_plugin_loader_builtin_init (HDPluginLoaderBuiltin *loader)
+{
+}
+
+static void
+hd_plugin_loader_builtin_class_init (HDPluginLoaderBuiltinClass *class)
+{
+  HDPluginLoaderClass *loader_class;
+
+  loader_class = HD_PLUGIN_LOADER_CLASS (class);
+  
+  loader_class->load = hd_plugin_loader_builtin_load;
+}

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.h	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-builtin.h	2007-01-09 13:54:50 UTC (rev 9004)
@@ -0,0 +1,59 @@
+/*
+ * This file is part of hildon-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author:  Lucas Rocha <lucas.rocha at nokia.com>
+ * Contact: Karoliina Salminen <karoliina.t.salminen at nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef __HD_PLUGIN_LOADER_BUILTIN_H__
+#define __HD_PLUGIN_LOADER_BUILTIN_H__
+
+#include "hd-plugin-loader.h"
+
+G_BEGIN_DECLS
+
+typedef struct _HDPluginLoaderBuiltin HDPluginLoaderBuiltin;
+typedef struct _HDPluginLoaderBuiltinClass HDPluginLoaderBuiltinClass;
+typedef struct _HDPluginLoaderBuiltinPrivate HDPluginLoaderBuiltinPrivate;
+
+#define HD_TYPE_PLUGIN_LOADER_BUILTIN            (hd_plugin_loader_builtin_get_type ())
+#define HD_PLUGIN_LOADER_BUILTIN(obj)		 (G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_PLUGIN_LOADER_BUILTIN, HDPluginLoaderBuiltin))
+#define HD_IS_PLUGIN_LOADER_BUILTIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_PLUGIN_LOADER_BUILTIN))
+#define HD_PLUGIN_LOADER_BUILTIN_CLASS(klass)	 (G_TYPE_CHECK_CLASS_CAST ((klass), HD_TYPE_PLUGIN_LOADER_BUILTIN_CLASS, HDPluginLoaderBuiltinClass))
+#define HD_IS_PLUGIN_LOADER_BUILTIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HD_TYPE_PLUGIN_LOADER_BUILTIN_CLASS))
+#define HD_PLUGIN_LOADER_BUILTIN_GET_CLASS(obj)	 (G_TYPE_INSTANCE_GET_CLASS ((obj), HD_TYPE_PLUGIN_LOADER_BUILTIN, HDPluginLoaderBuiltinClass))
+
+struct _HDPluginLoaderBuiltin
+{
+  HDPluginLoader parent;
+
+  HDPluginLoaderBuiltinPrivate *priv;
+};
+
+struct _HDPluginLoaderBuiltinClass
+{
+  HDPluginLoaderClass parent_class;
+};
+
+GType  hd_plugin_loader_builtin_get_type  (void);
+
+G_END_DECLS
+
+#endif /* __HD_PLUGIN_LOADER_BUILTIN_H__ */

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c	2007-01-09 13:54:50 UTC (rev 9004)
@@ -31,6 +31,7 @@
 #include "hd-plugin-loader-factory.h"
 #include "hd-plugin-loader.h"
 #include "hd-plugin-loader-default.h"
+#include "hd-plugin-loader-builtin.h"
 #include "hd-plugin-loader-legacy.h"
 #include "hd-config.h"
 
@@ -78,7 +79,7 @@
     if (g_str_has_suffix (name,".so"))
     {
       GModule *module;
-      gchar *libpath = g_build_filename (HD_PLUGIN_LOADER_MODULES_PATH,name, NULL);
+      gchar *libpath = g_build_filename (HD_PLUGIN_LOADER_MODULES_PATH, name, NULL);
 
       module = g_module_open (libpath, G_MODULE_BIND_LAZY);
 
@@ -256,6 +257,10 @@
     {
       loader = g_object_new (HD_TYPE_PLUGIN_LOADER_DEFAULT, NULL);
     }
+    else if (!g_ascii_strcasecmp (type, HD_PLUGIN_LOADER_TYPE_BUILTIN)) 
+    {
+      loader = g_object_new (HD_TYPE_PLUGIN_LOADER_BUILTIN, NULL);
+    }
     else
     {
       GModule *module = g_hash_table_lookup (priv->modules, type);

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.h	2007-01-09 13:14:54 UTC (rev 9003)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.h	2007-01-09 13:54:50 UTC (rev 9004)
@@ -43,13 +43,10 @@
 #define HD_PLUGIN_LOADER_FACTORY_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  HD_TYPE_PLUGIN_LOADER_FACTORY, HDPluginLoaderFactoryClass))
 
 #define HD_PLUGIN_LOADER_TYPE_DEFAULT      "default"
+#define HD_PLUGIN_LOADER_TYPE_BUILTIN      "builtin"
 #define HD_PLUGIN_LOADER_TYPE_OLD_API      "old_api"
 #define HD_PLUGIN_LOADER_TYPE_OLD_API_HOME "HildonHomeApplet"
 
-#ifdef ENABLE_PYTHON
-#define HD_PLUGIN_LOADER_TYPE_PYTHON       "python"
-#endif
-
 struct _HDPluginLoaderFactory 
 {
   GObject gobject;


More information about the maemo-commits mailing list