[maemo-commits] [maemo-commits] r8852 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . background-manager test

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Dec 21 16:05:17 EET 2006
Author: jobi
Date: 2006-12-21 16:05:15 +0200 (Thu, 21 Dec 2006)
New Revision: 8852

Added:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager-dbus.h.in
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml.in
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/hildon-background-manager.service.in
   projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test6.c
Removed:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml
Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/Makefile.am
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/main.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac
Log:

2006-12-21  Johan Bilien  <johan.bilien at nokia.com>

	* background-manager/main.c: Added gnome-vfs initialization
	* background-manager/background-manager.c: various fixes
	* background-manager/*.in: Added configure-based definition
	of service, interface and object path
	* tests/test6.c: Added test using the background manager dbus service



Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-12-21 14:05:15 UTC (rev 8852)
@@ -1,3 +1,17 @@
+2006-12-21  Johan Bilien  <johan.bilien at nokia.com>
+
+	* background-manager/main.c: Added gnome-vfs initialization
+	* background-manager/background-manager.c: various fixes
+	* background-manager/*.in: Added configure-based definition
+	of service, interface and object path
+	* tests/test6.c: Added test using the background manager dbus service
+
+2006-12-19  Johan Bilien  <johan.bilien at nokia.com>
+
+	* background-manager/*:
+	- added
+	- simple and dummy DBus service to composite and set the background
+
 2006-12-19  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	* src/hd-select-plugins-dialog.c: only consider .desktop files when

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/Makefile.am	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/Makefile.am	2006-12-21 14:05:15 UTC (rev 8852)
@@ -1,14 +1,27 @@
 bin_PROGRAMS = hildon-background-manager
 
-BUILT_SOURCES = background-manager-glue.h
-CLEANFILES = $(BUILT_SOURCES)
+BUILT_SOURCES = background-manager-glue.h hildon-background-manager.h
+CLEANFILES = $(BUILT_SOURCES) \
+			 background-manager-glue-tmp.h \
+			 hildon-background-manager-tmp.h
+
 EXTRA_DIST = background-manager.xml
 
-background-manager-glue.h:
+background-manager-glue.h: background-manager.xml background-manager-dbus.h
 	$(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=background_manager \
-		       --mode=glib-server --output=background-manager-glue.h \
+		       --mode=glib-server --output=background-manager-glue-tmp.h \
 			   background-manager.xml
+	cat background-manager-dbus.h background-manager-glue-tmp.h > background-manager-glue.h
 
+hildon-background-manager.h: background-manager.xml background-manager-dbus.h
+	$(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=background_manager \
+		       --mode=glib-client --output=hildon-background-manager-tmp.h \
+			   background-manager.xml
+	cat background-manager-dbus.h hildon-background-manager-tmp.h > hildon-background-manager.h
+
+pkgincludedir = $(includedir)/libhildondesktop/libhildondesktop
+pkginclude_HEADERS = hildon-background-manager.h
+
 hildon_background_manager_CPPFLAGS = @GNOME_VFS_CFLAGS@ \
 									 @GCONF_CFLAGS@ \
 									 @DBUS_GLIB_CFLAGS@ \
@@ -24,3 +37,6 @@
 									background-manager.c \
 									background-manager.h \
 									main.c
+
+hildon_background_manager_servicedir = $(datadir)/dbus-1/services
+hildon_background_manager_service_DATA = hildon-background-manager.service

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager-dbus.h.in
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager-dbus.h.in	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager-dbus.h.in	2006-12-21 14:05:15 UTC (rev 8852)
@@ -0,0 +1,3 @@
+#define HILDON_BACKGROUND_MANAGER_SERVICE "@HILDON_BACKGROUND_MANAGER_SERVICE@"
+#define HILDON_BACKGROUND_MANAGER_OBJECT_PATH "@HILDON_BACKGROUND_MANAGER_OBJECT_PATH@"
+#define HILDON_BACKGROUND_MANAGER_INTERFACE "@HILDON_BACKGROUND_MANAGER_INTERFACE@"

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.c	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.c	2006-12-21 14:05:15 UTC (rev 8852)
@@ -113,8 +113,11 @@
 static void
 background_data_free (BackgroundData *data)
 {
-  g_free (data->color);
-  g_free (data);
+  if (data)
+    {
+      g_free (data->color);
+      g_free (data);
+    }
 }
 
 G_DEFINE_TYPE (BackgroundManager, background_manager, G_TYPE_OBJECT);
@@ -816,7 +819,7 @@
   klass = BACKGROUND_MANAGER_GET_CLASS (manager);
   if (klass->connection)
     dbus_g_connection_register_g_object (klass->connection,
-                                         BACKGROUND_MANAGER_DBUS_OBJECT_PATH,
+                                         HILDON_BACKGROUND_MANAGER_OBJECT_PATH,
                                          G_OBJECT (manager));
 
 }
@@ -844,11 +847,20 @@
   GdkBitmap                *bitmask = NULL;
   GError                   *local_error = NULL;
   gint                      width, height;
+  FILE *file;
+
+  file = fopen ("/tmp/background-manager.log", "a");
+  fprintf (file, "Started applying the background\n");
+  fflush (file);
+
+  g_debug ("set_background on %s", filename);
   
   window = gdk_window_foreign_new (window_xid);
 
   if (!window)
     {
+  fprintf (file, "No window!\n");
+  fflush (file);
       g_set_error (error,
                    background_manager_error_quark (),
                    BACKGROUND_MANAGER_ERROR_WINDOW,
@@ -857,8 +869,13 @@
     }
   
   priv = BACKGROUND_MANAGER_GET_PRIVATE (manager);
+  fprintf (file, "Before new data\n");
+  fflush (file);
 
   background_data_free (priv->current);
+  
+  fprintf (file, "after free\n");
+  fflush (file);
   priv->current = data = background_data_new ();
 
   data->color->red   = red;
@@ -868,8 +885,13 @@
   data->window = window;
 
   data->image_uri = g_strdup (filename);
-  data->top_bar   = g_strdup (top_bar);
-  data->left_bar  = g_strdup (left_bar);
+  if (top_bar)
+    data->top_bar   = g_strdup (top_bar);
+  if (left_bar)
+    data->left_bar  = g_strdup (left_bar);
+  
+  fprintf (file, "Before load_image_from_uri\n");
+  fflush (file);
 
   if (data->image_uri)
     {
@@ -885,6 +907,9 @@
     }
 
   gdk_drawable_get_size (GDK_DRAWABLE (window), &width, &height);
+  
+  fprintf (file, "Before composite_background\n");
+  fflush (file);
 
   background = composite_background (image,
                                      data->color,
@@ -895,6 +920,8 @@
                                      height,
                                      TRUE,
                                      &local_error);
+  fprintf (file, "After composite_background\n");
+  fflush (file);
 
   if (image)
     g_object_unref (image);
@@ -924,6 +951,10 @@
   if (background)
     g_object_unref (background);
 
+  gdk_window_clear (window);
   gdk_flush ();
+  fprintf (file, "Ended applying the background\n");
+  fflush (file);
+  fclose (file);
   return TRUE;
 }

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.h	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.h	2006-12-21 14:05:15 UTC (rev 8852)
@@ -41,7 +41,6 @@
 #define IS_BACKGROUND_MANAGER_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_MANAGER))
 #define BACKGROUND_MANAGER_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_MANAGER, BackgroundManagerClass))
 
-#define BACKGROUND_MANAGER_DBUS_OBJECT_PATH "/org/maemo/hildon/background_manager"
 
 
 G_BEGIN_DECLS

Deleted: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml	2006-12-21 14:05:15 UTC (rev 8852)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<node name="/">
-  <interface name="com.nokia.HildonBackgroundManager">
-    <method name="SetBackground">
-      <arg type="i"/>
-      <arg type="s"/>
-      <arg type="s"/>
-      <arg type="s"/>
-      <arg type="i"/>
-      <arg type="i"/>
-      <arg type="i"/>
-      <arg type="i"/>
-    </method>
-  </interface>
-</node>

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml.in
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml.in	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/background-manager.xml.in	2006-12-21 14:05:15 UTC (rev 8852)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/">
+    <interface name="@HILDON_BACKGROUND_MANAGER_INTERFACE@">
+    <method name="SetBackground">
+      <arg type="i"/>
+      <arg type="s"/>
+      <arg type="s"/>
+      <arg type="s"/>
+      <arg type="i"/>
+      <arg type="i"/>
+      <arg type="i"/>
+      <arg type="i"/>
+    </method>
+  </interface>
+</node>

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/hildon-background-manager.service.in
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/hildon-background-manager.service.in	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/hildon-background-manager.service.in	2006-12-21 14:05:15 UTC (rev 8852)
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=@HILDON_BACKGROUND_MANAGER_SERVICE@
+Exec=@prefix@/bin/hildon-background-manager

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/main.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/main.c	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/background-manager/main.c	2006-12-21 14:05:15 UTC (rev 8852)
@@ -23,12 +23,12 @@
  */
 
 #include "background-manager.h"
+#include "background-manager-dbus.h"
 
 #include <dbus/dbus-glib.h>
 #include <gtk/gtkmain.h>
+#include <libgnomevfs/gnome-vfs.h>
 
-#define BACKGROUND_MANAGER_SERVICE_NAME "org.maemo.hildon"
-
 int
 main (int argc, char **argv)
 {
@@ -37,8 +37,15 @@
   DBusGProxy           *driver_proxy;
   GError               *error = NULL;
   gint                  request_ret;
+  FILE                 *file;
+
+  file = fopen ("/tmp/background-manager.log", "a");
+
+  fprintf (file, "Started background-manager\n");
+  fflush (file);
   
   gtk_init (&argc, &argv);
+  gnome_vfs_init ();
 
   connection = dbus_g_bus_get (DBUS_BUS_STARTER, &error);
   if (error)
@@ -57,7 +64,7 @@
                                             DBUS_INTERFACE_DBUS);
 
   if(!org_freedesktop_DBus_request_name (driver_proxy,
-                                         BACKGROUND_MANAGER_SERVICE_NAME,
+                                         HILDON_BACKGROUND_MANAGER_SERVICE,
                                          0,
                                          &request_ret,
                                          &error))
@@ -68,5 +75,8 @@
     }
 
   gtk_main ();
+  
+  fprintf (file, "Ended background-manager\n");
+  fclose (file);
   return 0;
 }

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/configure.ac	2006-12-21 14:05:15 UTC (rev 8852)
@@ -145,11 +145,21 @@
 hildoncpdesktopentrydir=${datadir}/applications/hildon-control-panel
 AC_SUBST(hildoncpdesktopentrydir)
 
+HILDON_BACKGROUND_MANAGER_SERVICE="org.maemo.hildon.background_manager"
+AC_SUBST(HILDON_BACKGROUND_MANAGER_SERVICE)
+HILDON_BACKGROUND_MANAGER_OBJECT_PATH="/org/maemo/hildon/background_manager"
+AC_SUBST(HILDON_BACKGROUND_MANAGER_OBJECT_PATH)
+HILDON_BACKGROUND_MANAGER_INTERFACE="org.maemo.hildon.background_manager"
+AC_SUBST(HILDON_BACKGROUND_MANAGER_INTERFACE)
+
 AC_OUTPUT(Makefile \
 	libhildonwm/Makefile \
 	libhildonwm/libhildonwm.pc \
 	libhildondesktop/Makefile \
 	libhildondesktop/libhildondesktop.pc \
     background-manager/Makefile \
+    background-manager/hildon-background-manager.service \
+    background-manager/background-manager.xml \
+    background-manager/background-manager-dbus.h \
 	data/Makefile \
 	src/Makefile)

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test6.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test6.c	2006-12-21 14:00:26 UTC (rev 8851)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test6.c	2006-12-21 14:05:15 UTC (rev 8852)
@@ -0,0 +1,84 @@
+#include <gtk/gtkwindow.h>
+#include <gtk/gtkmain.h>
+#include <gdk/gdkwindow.h>
+#include <gdk/gdkx.h>
+
+#include <libhildondesktop/hildon-background-manager.h>
+
+#define FILENAME "file:///usr/share/themes/default/images/qgn_plat_home_background.jpg"
+
+
+static void
+set_background_callback (DBusGProxy *proxy,
+                         GError *error,
+                         gpointer user_data)
+{
+  g_debug ("set_background_callback");
+
+  if (error)
+    g_warning ("Setting the background failed: %s", error->message);
+
+}
+
+static gboolean
+button_release (GtkWidget      *widget,
+                GdkEventButton *event,
+                DBusGProxy     *proxy)
+{
+  GError *error = NULL;
+
+  g_debug ("button_release");
+
+  org_maemo_hildon_background_manager_set_background_async (proxy,
+                                                            GDK_WINDOW_XID (widget->window),
+                                                            FILENAME,
+                                                            NULL,
+                                                            NULL,
+                                                            0,
+                                                            0,
+                                                            0,
+                                                            0,
+                                                            set_background_callback,
+                                                            widget);
+
+  if (error)
+    {
+      g_warning ("Could not set the background: %s", error->message);
+      g_error_free (error);
+    }
+
+  return TRUE;
+}
+
+int
+main (int argc, char **argv)
+{
+  GtkWidget        *window;
+  DBusGProxy       *proxy;
+  DBusGConnection  *connection;
+  GError           *error = NULL;
+
+  gtk_init (&argc, &argv);
+
+  connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+
+  if (error)
+    g_error ("Could not get DBus connection: %s", error->message);
+
+
+  proxy = dbus_g_proxy_new_for_name (connection,
+                                     HILDON_BACKGROUND_MANAGER_SERVICE,
+                                     HILDON_BACKGROUND_MANAGER_OBJECT_PATH,
+                                     HILDON_BACKGROUND_MANAGER_INTERFACE);
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+  gtk_widget_set_app_paintable (window, TRUE);
+  g_signal_connect (window, "key-release-event",
+                    G_CALLBACK (button_release),
+                    proxy);
+
+  gtk_widget_show_all (window);
+  gtk_main ();
+  return 0;
+}


More information about the maemo-commits mailing list