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

From: www-data at stage.maemo.org www-data at stage.maemo.org
Date: Thu Nov 23 14:54:37 EET 2006
Author: jobi
Date: 2006-11-23 14:54:35 +0200 (Thu, 23 Nov 2006)
New Revision: 8280

Added:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.h
Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-select-applets-dialog.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-desktop.c
Log:
2006-11-23  Johan Bilien  <johan.bilien at nokia.com>

	* src/hd-home-window.[ch]:
	- added
	- inherit from HildonHomeWindow and implement everything related
	to libosso there. To come, move everything localized and background
	manager related there.
	* src/hildon-home-window.[ch], src/hildon-home-titlebar.[ch]:
	- removed everything libosso related



Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-11-23 12:54:35 UTC (rev 8280)
@@ -1,3 +1,13 @@
+2006-11-23  Johan Bilien  <johan.bilien at nokia.com>
+
+	* src/hd-home-window.[ch]:
+	- added
+	- inherit from HildonHomeWindow and implement everything related
+	to libosso there. To come, move everything localized and background
+	manager related there.
+	* src/hildon-home-window.[ch], src/hildon-home-titlebar.[ch]:
+	- removed everything libosso related
+
 2006-11-23  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	* libhildondesktop/hildon-desktop-window.c,

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am	2006-11-23 12:54:35 UTC (rev 8280)
@@ -22,6 +22,9 @@
 		     hildon-thumb-menu-item.h \
 		     hildon-home-applet.h \
 		     hildon-home-area.h \
+		     hildon-home-window.h \
+		     hildon-home-select-applets-dialog.h \
+		     hildon-home-l10n.h \
 		     hildon-plugin-list.h \
 		     libhildondesktop.h
 
@@ -54,8 +57,15 @@
 					  hildon-home-applet.h \
 					  hildon-plugin-list.c \
 					  hildon-plugin-list.h \
+					  hildon-home-window.c \
+					  hildon-home-window.h \
 					  home-applet-handler.c \
-					  home-applet-handler.h
+					  home-applet-handler.h \
+					  hildon-home-titlebar.c \
+					  hildon-home-titlebar.h \
+					  hildon-home-select-applets-dialog.h \
+					  hildon-home-select-applets-dialog.c \
+					  hildon-home-l10n.h
 
 BUILT_SOURCES = hildon-desktop-marshalers.c \
 	  		    hildon-desktop-marshalers.h

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-select-applets-dialog.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-select-applets-dialog.c	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-select-applets-dialog.c	2006-11-23 12:54:35 UTC (rev 8280)
@@ -27,7 +27,7 @@
 #include "hildon-plugin-list.h"
 #include "hildon-home-l10n.h"
 
-#include <osso-helplib.h>
+/*#include <osso-helplib.h>*/
 #include <gtk/gtkscrolledwindow.h>
 #include <gtk/gtkdialog.h>
 #include <gtk/gtktreeview.h>
@@ -74,10 +74,12 @@
 
   gtk_widget_set_size_request (dialog, DIALOG_WIDTH, -1);
 
+#if 0
   /* Add help button to the dialog */
   ossohelp_dialog_help_enable (GTK_DIALOG(dialog),
                                HH_HELP_SELECT_APPLETS,
                                osso_home);
+#endif
 
   scrollwindow = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwindow),

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.c	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.c	2006-11-23 12:54:35 UTC (rev 8280)
@@ -23,19 +23,6 @@
  */
 #include "config.h"
 
-#include <stdio.h>
-#include <string.h>
-#include <libosso.h>
-#include <libmb/mbutil.h>
-#include <glob.h>
-#include <osso-log.h>
-#include <osso-helplib.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <unistd.h>
 
 #include <glib-object.h>
 #include <glib/gi18n.h>
@@ -114,8 +101,6 @@
 {
   HildonHomeTitlebarMode mode;
   
-  osso_context_t *osso_context;
-  
   GtkWidget *label;
 
   gchar *normal_text;
@@ -142,7 +127,6 @@
 {
   PROP_0,
 
-  PROP_OSSO_CONTEXT,
   PROP_MODE
 };
 
@@ -593,9 +577,6 @@
 
   switch (prop_id)
     {
-    case PROP_OSSO_CONTEXT:
-      titlebar->priv->osso_context = g_value_get_pointer (value);
-      break;
     case PROP_MODE:
       hildon_home_titlebar_set_mode (titlebar,
 		                     g_value_get_enum (value));
@@ -616,9 +597,6 @@
 
   switch (prop_id)
     {
-    case PROP_OSSO_CONTEXT:
-      g_value_set_pointer (value, titlebar->priv->osso_context);
-      break;
     case PROP_MODE:
       g_value_set_enum (value, titlebar->priv->mode);
       break;
@@ -662,12 +640,6 @@
   klass->applet_removed = hildon_home_titlebar_applet_removed;
 
   g_object_class_install_property (gobject_class,
-                                   PROP_OSSO_CONTEXT,
-                                   g_param_spec_pointer ("osso-context",
-                                                         "Osso Context",
-                                                         "Osso context to be used",
-                                                         (G_PARAM_READWRITE | G_PARAM_CONSTRUCT)));
-  g_object_class_install_property (gobject_class,
                                    PROP_MODE,
                                    g_param_spec_enum ("mode",
                                                       "Mode",
@@ -772,8 +744,6 @@
   priv->menu_key_pressed = FALSE;
   priv->menu_popup_status = FALSE;
 
-  priv->osso_context = NULL;
-
   gtk_widget_set_size_request (GTK_WIDGET (titlebar),
                                HILDON_HOME_TITLEBAR_WIDTH,
                                HILDON_HOME_TITLEBAR_HEIGHT);
@@ -854,11 +824,10 @@
 }
 
 GtkWidget *
-hildon_home_titlebar_new (osso_context_t *context)
+hildon_home_titlebar_new ()
 {
   return g_object_new (HILDON_TYPE_HOME_TITLEBAR,
-		       "osso-context", context,
-		       NULL);
+                       NULL);
 }
 
 

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.h	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-titlebar.h	2006-11-23 12:54:35 UTC (rev 8280)
@@ -26,7 +26,6 @@
 #define __HILDON_HOME_TITLEBAR_H__
 
 #include <gtk/gtkeventbox.h>
-#include <libosso.h>
 #include "hildon-home-applet.h"
 #include "hildon-home-area.h"
 
@@ -79,7 +78,7 @@
 };
 
 GType      hildon_home_titlebar_get_type        (void) G_GNUC_CONST;
-GtkWidget *hildon_home_titlebar_new             (osso_context_t         *osso_context);
+GtkWidget *hildon_home_titlebar_new             (void);
 
 void       hildon_home_titlebar_set_mode        (HildonHomeTitlebar     *titlebar,
 						 HildonHomeTitlebarMode  mode);

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.c	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.c	2006-11-23 12:54:35 UTC (rev 8280)
@@ -26,13 +26,6 @@
 #include "config.h"
 #endif
 
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
 #include <gdk/gdkx.h>
 #include <gdk/gdkkeysyms.h>
 #include <stdlib.h>
@@ -42,11 +35,6 @@
 #include <math.h>
 #include <stdio.h>
 #include <string.h>
-#include <libosso.h>
-#include <libmb/mbutil.h>
-#include <glob.h>
-#include <osso-log.h>
-#include <osso-helplib.h>
 
 #include <glib.h>
 
@@ -58,7 +46,7 @@
 #include <hildon-widgets/hildon-caption.h>
 #include <hildon-widgets/hildon-color-button.h>
 
-#include "background-manager.h"
+/*#include "background-manager.h"*/
 
 #include "hildon-home-l10n.h"
 #include "hildon-home-area.h"
@@ -103,7 +91,7 @@
 
 struct _HildonHomeWindowPrivate
 {
-  BackgroundManager *bg_manager;
+/*  BackgroundManager *bg_manager;*/
   HildonPluginList  *plugin_list;
   osso_context_t *osso_context;
 
@@ -214,7 +202,7 @@
 titlebar_set_background_activate_cb (HildonHomeTitlebar *titlebar,
                                      HildonHomeWindow   *window)
 {
-  home_bgd_dialog_run (GTK_WINDOW (window));
+  /*home_bgd_dialog_run (GTK_WINDOW (window));*/
 }
 
 static void
@@ -268,7 +256,7 @@
 
 static void
 titlebar_layout_cancel_cb (HildonHomeTitlebar *titlebar,
-			   HildonHomeWindow   *window)
+                           HildonHomeWindow   *window)
 {
   HildonHomeWindowPrivate *priv = window->priv;
   g_debug ("layout discarded");
@@ -316,83 +304,6 @@
 }
 
 static void
-titlebar_applet_activate_cb (HildonHomeTitlebar *titlebar,
-			     const gchar        *applet_path,
-			     HildonHomeWindow   *window)
-{
-  osso_context_t *osso_ctx;
-  osso_return_t res;
-
-  osso_ctx = window->priv->osso_context;
-  if (!osso_ctx)
-    return;
-
-  g_print ("osso_cp_plugin_execute: %s\n", applet_path);
-
-  res = osso_cp_plugin_execute (osso_ctx,
-                                applet_path,
-		                        NULL,
-                                TRUE);
-  switch (res)
-    {
-    case OSSO_OK:
-      break;
-    case OSSO_ERROR:
-      ULOG_ERR ("OSSO_ERROR (No plugin found)\n");
-      break;
-    case OSSO_RPC_ERROR:
-      ULOG_ERR ("OSSO_RPC_ERROR (RPC failed for plugin)\n");
-      break;
-    case OSSO_INVALID:
-      ULOG_ERR ("OSSO_INVALID (Invalid argument)\n");
-      break;
-    default:
-      ULOG_ERR ("Unknown error!\n");
-      break;
-    }
-}
-
-static void
-titlebar_help_activate_cb (HildonHomeTitlebar *titlebar,
-                           HildonHomeWindow   *window)
-{
-  osso_context_t *osso_ctx;
-  osso_return_t res;
-
-  osso_ctx = window->priv->osso_context;
-  if (!osso_ctx)
-    return;
-
-  if (hildon_home_area_get_layout_mode (
-                       HILDON_HOME_AREA (window->priv->applet_area)))
-    res = ossohelp_show (osso_ctx,
-                         HH_HELP_LAYOUT_MODE,
-                         OSSO_HELP_SHOW_DIALOG);
-  else
-    res = ossohelp_show (osso_ctx,
-                         HH_HELP,
-                         0);
-
-  switch (res)
-    {
-    case OSSO_OK:
-      break;
-    case OSSO_ERROR:
-      ULOG_ERR ("OSSO_ERROR (No help for such topic ID)\n");
-      break;
-    case OSSO_RPC_ERROR:
-      ULOG_ERR ("OSSO_RPC_ERROR (Unable to contact HelpApp or Browser)\n");
-      break;
-    case OSSO_INVALID:
-      ULOG_ERR ("OSSO_INVALID (Parameter not formally correct)\n");
-      break;
-    default:
-      ULOG_ERR ("Unknown error!\n");
-      break;
-    }
-}
-
-static void
 area_layout_mode_start (HildonHomeArea *area,
                         HildonHomeWindow   *window)
 {
@@ -493,6 +404,7 @@
     }
 }
 
+#if 0
 static void
 background_manager_load_complete_cb (BackgroundManager *manager,
                                      HildonHomeWindow  *window)
@@ -564,6 +476,7 @@
       gtk_widget_queue_draw (GTK_WIDGET (window));
     }
 }
+#endif
 
 static void
 hildon_home_window_lowmem (HildonHomeWindow   *window,
@@ -635,7 +548,22 @@
                          (gpointer)is_inactive);
 }
 
+#if 0
+static void
+hildon_home_window_set_osso_context (HildonHomeWindow *window,
+                                     osso_context_t   *osso_context)
+{
+  g_return_if_fail (HILDON_IS_HOME_WINDOW (window));
 
+  if (window->priv->osso_context != osso_context)
+    {
+      window->priv->osso_context = osso_context;
+
+      g_object_notify (G_OBJECT (window), "osso-context");
+    }
+}
+#endif
+
 static const gchar *
 get_sidebar_image_from_theme (GtkWidget *widget)
 {
@@ -688,7 +616,7 @@
 hildon_home_window_style_set (GtkWidget *widget,
 			      GtkStyle  *old_style)
 {
-  HildonHomeWindowPrivate *priv = HILDON_HOME_WINDOW (widget)->priv;
+/*  HildonHomeWindowPrivate *priv = HILDON_HOME_WINDOW (widget)->priv;*/
   static gchar *current_titlebar_image;
   static gchar *current_sidebar_image;
   const gchar *new_titlebar_image, *new_sidebar_image;
@@ -712,8 +640,8 @@
 
   /* avoid resetting the background if the theme hasn't changed */
   if (g_str_equal (current_titlebar_image, new_titlebar_image) &&
-      g_str_equal (current_sidebar_image, new_sidebar_image) &&
-      background_manager_refresh_from_cache (priv->bg_manager))
+      g_str_equal (current_sidebar_image, new_sidebar_image)/* &&
+      background_manager_refresh_from_cache (priv->bg_manager)*/)
     {
       return;
     }
@@ -724,10 +652,12 @@
   g_free(current_sidebar_image);
   current_sidebar_image = g_strdup (new_sidebar_image);
 
+#if 0
   background_manager_set_components (priv->bg_manager,
                                      new_titlebar_image,
                                      new_sidebar_image,
                                      TRUE);
+#endif
 }
 
 static gboolean
@@ -764,11 +694,13 @@
 static void
 hildon_home_window_finalize (GObject *gobject)
 {
+#if 0
   HildonHomeWindowPrivate *priv = HILDON_HOME_WINDOW (gobject)->priv;
 
   g_signal_handlers_disconnect_by_func (priv->bg_manager,
 		                        background_manager_changed_cb,
 					HILDON_HOME_WINDOW (gobject));
+#endif
   
   G_OBJECT_CLASS (hildon_home_window_parent_class)->finalize (gobject);
 }
@@ -878,7 +810,7 @@
   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
   gtk_widget_show (hbox);
 
-  priv->titlebar = hildon_home_titlebar_new (priv->osso_context);
+  priv->titlebar = hildon_home_titlebar_new ();
   gtk_widget_set_composite_name (priv->titlebar, "hildon-home-titlebar");
   g_signal_connect (priv->titlebar, "select-applets-activate",
 		    G_CALLBACK (titlebar_select_applets_activate_cb),
@@ -895,12 +827,6 @@
   g_signal_connect (priv->titlebar, "layout-cancel",
 		    G_CALLBACK (titlebar_layout_cancel_cb),
 		    window);
-  g_signal_connect (priv->titlebar, "applet-activate",
-		    G_CALLBACK (titlebar_applet_activate_cb),
-		    window);
-  g_signal_connect (priv->titlebar, "help-activate",
-		    G_CALLBACK (titlebar_help_activate_cb),
-		    window);
   gtk_box_pack_start (GTK_BOX (hbox), priv->titlebar, TRUE, TRUE, 0);
   gtk_widget_show (priv->titlebar);
 
@@ -911,7 +837,7 @@
 
   priv->applet_area = hildon_home_area_new ();
   gtk_container_add (GTK_CONTAINER(priv->main_area), priv->applet_area);
-  HILDON_DESKTOP_WINDOW (window)->container = priv->applet_area;
+  HILDON_DESKTOP_WINDOW (window)->container = GTK_CONTAINER (priv->applet_area);
   g_signal_connect (priv->applet_area, "layout-mode-start",
                     G_CALLBACK (area_layout_mode_start),
                     window);
@@ -940,6 +866,7 @@
   gtk_widget_realize (widget);
   gdk_window_set_type_hint (widget->window, GDK_WINDOW_TYPE_HINT_DESKTOP);
   
+#if 0
   priv->bg_manager = background_manager_get_default ();
   
   g_signal_connect (priv->bg_manager, "changed",
@@ -963,6 +890,7 @@
 				     get_sidebar_image_from_theme (widget),
                                      FALSE);
   background_manager_set_desktop (priv->bg_manager, widget->window);
+#endif
   
   gtk_widget_pop_composite_child ();
   
@@ -1065,11 +993,10 @@
 }
 
 GtkWidget *
-hildon_home_window_new (osso_context_t *osso_context)
+hildon_home_window_new ()
 {
   return g_object_new (HILDON_TYPE_HOME_WINDOW,
-		       "osso-context", osso_context,
-		       NULL);
+                       NULL);
 }
 
 GtkWidget *
@@ -1105,20 +1032,6 @@
 }
 
 void
-hildon_home_window_set_osso_context (HildonHomeWindow *window,
-				     osso_context_t   *osso_context)
-{
-  g_return_if_fail (HILDON_IS_HOME_WINDOW (window));
-
-  if (window->priv->osso_context != osso_context)
-    {
-      window->priv->osso_context = osso_context;
-
-      g_object_notify (G_OBJECT (window), "osso-context");
-    }
-}
-
-void
 hildon_home_window_set_desktop_dimmed (HildonHomeWindow *window,
                                        gboolean dimmed)
 {

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.h	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-home-window.h	2006-11-23 12:54:35 UTC (rev 8280)
@@ -26,7 +26,6 @@
 #define __HILDON_HOME_WINDOW_H__
 
 #include <libhildondesktop/hildon-desktop-window.h>
-#include <libosso.h>
 
 G_BEGIN_DECLS
 
@@ -43,14 +42,14 @@
 
 struct _HildonHomeWindow
 {
-  HildoDesktopnWindow parent_instance;
+  HildonDesktopWindow parent_instance;
 
   HildonHomeWindowPrivate *priv;
 };
 
 struct _HildonHomeWindowClass
 {
-  HildonDesktopClass parent_class;
+  HildonDesktopWindowClass parent_class;
 
   void    (* background)    (HildonHomeWindow *window, gboolean is_background);
   void    (* lowmem)        (HildonHomeWindow *window, gboolean is_lowmem);
@@ -60,11 +59,8 @@
 
 GType hildon_home_window_get_type                  (void) G_GNUC_CONST;
 
-GtkWidget *hildon_home_window_new                  (osso_context_t   *osso_context);
+GtkWidget *hildon_home_window_new                  (void);
 
-void       hildon_home_window_set_osso_context     (HildonHomeWindow *window,
-						    osso_context_t   *osso_context);
-
 GtkWidget *hildon_home_window_get_titlebar         (HildonHomeWindow *window);
 GtkWidget *hildon_home_window_get_main_area        (HildonHomeWindow *window);
 

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/Makefile.am	2006-11-23 12:54:35 UTC (rev 8280)
@@ -23,13 +23,17 @@
 
 hildon_desktop_CPPFLAGS = \
 		$(HILDON_CFLAGS)             \
+		$(OSSO_CFLAGS)               \
+		$(OSSO_HELP_CFLAGS)          \
 		-DLOCALEDIR=\"$(localedir)\" \
 		-I$(top_srcdir) \
 		-DHD_DESKTOP_CONFIG_PATH=\"$(hildondesktopconfdir)\" \
 		-DHD_PLUGIN_LOADER_LEGACY_HOME_MODULE_PATH=\"$(hildonhomelibdir)\" \
 		-DHD_PLUGIN_LOADER_LEGACY_NAVIGATOR_MODULE_PATH=\"$(hildonnavigatorlibdir)\"
 
-hildon_desktop_LDFLAGS  = $(HILDON_LIBS)
+hildon_desktop_LDFLAGS  = $(HILDON_LIBS) \
+						  $(OSSO_LIBS)   \
+						  $(OSSO_HELP_LIBS)
 
 hildon_desktop_LDADD    = $(top_srcdir)/libhildondesktop/libhildondesktop.la
 
@@ -44,5 +48,9 @@
 				  hd-plugin-loader-legacy.c   \
 				  hd-plugin-loader-legacy.h
 
+HOME_SOURCES = hd-home-window.c \
+			   hd-home-window.h
+
 hildon_desktop_SOURCES  = main.c \
-			  $(PLUGIN_MANAGER_SOURCES)
+			  $(PLUGIN_MANAGER_SOURCES) \
+			  $(HOME_SOURCES)

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-desktop.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-desktop.c	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-desktop.c	2006-11-23 12:54:35 UTC (rev 8280)
@@ -36,6 +36,7 @@
 
 #include "hd-desktop.h"
 #include "hd-plugin-manager.h"
+#include "hd-home-window.h"
 
 #define HD_DESKTOP_GET_PRIVATE(object) \
         (G_TYPE_INSTANCE_GET_PRIVATE ((object), HD_TYPE_DESKTOP, HDDesktopPrivate))
@@ -212,7 +213,10 @@
 
     if (!g_ascii_strcasecmp (type, HD_CONTAINER_TYPE_HOME))
     {
-      /* Add Home creation code here. */
+      container = g_object_new (HD_TYPE_HOME_WINDOW,
+                                /* Add libosso context when we have it */
+                                /*"osso-context", osso_context,*/
+                                NULL);
     }
     else if (!g_ascii_strcasecmp (type, HD_CONTAINER_TYPE_PANEL_BOX))
     {

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.c	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.c	2006-11-23 12:54:35 UTC (rev 8280)
@@ -0,0 +1,248 @@
+/*
+ * This file is part of hildon-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author:  Johan Bilien <johan.bilien 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
+ *
+ */
+
+#include "hd-home-window.h"
+
+#include <libosso.h>
+#include <osso-helplib.h>
+
+#include <libhildondesktop/hildon-home-area.h>
+#include <libhildondesktop/hildon-home-titlebar.h>
+
+#include <libhildondesktop/hildon-home-l10n.h>
+
+G_DEFINE_TYPE (HDHomeWindow, hd_home_window, HILDON_TYPE_HOME_WINDOW);
+
+typedef struct _HDHomeWindowPrivate
+{
+  osso_context_t    *osso_context;
+} HDHomeWindowPrivate;
+
+#define HD_HOME_WINDOW_GET_PRIVATE(obj) \
+(G_TYPE_INSTANCE_GET_PRIVATE ((obj), HD_TYPE_HOME_WINDOW, HDHomeWindowPrivate))
+
+/* Properties */
+enum {
+  PROP_OSSO_CONTEXT = 1
+};
+
+static void
+hd_home_window_get_property (GObject    *gobject,
+                             guint       prop_id,
+                             GValue     *value,
+                             GParamSpec *pspec);
+
+static void
+hd_home_window_set_property (GObject      *gobject,
+                             guint         prop_id,
+                             const GValue *value,
+                             GParamSpec   *pspec);
+
+static void
+hd_home_window_set_osso_context (HDHomeWindow *window, osso_context_t *osso);
+
+
+static void
+hd_home_window_class_init (HDHomeWindowClass *window_class)
+{
+  GParamSpec               *pspec;
+  GObjectClass             *object_class;
+
+  object_class = G_OBJECT_CLASS (window_class);
+
+  object_class->set_property = hd_home_window_set_property;
+  object_class->get_property = hd_home_window_get_property;
+
+  pspec = g_param_spec_pointer ("osso-context",
+                                "Osso Context",
+                                "Osso context to be used by the window",
+                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+  g_object_class_install_property (object_class,
+                                   PROP_OSSO_CONTEXT,
+                                   pspec);
+
+  g_type_class_add_private (window_class, sizeof (HDHomeWindowPrivate));
+
+}
+
+static void
+hd_home_window_init (HDHomeWindow *window)
+{
+}
+
+static void
+hd_home_window_set_property (GObject      *gobject,
+                             guint         prop_id,
+                             const GValue *value,
+                             GParamSpec   *pspec)
+{
+  HDHomeWindow *window = HD_HOME_WINDOW (gobject);
+
+  switch (prop_id)
+    {
+      case PROP_OSSO_CONTEXT:
+          hd_home_window_set_osso_context (window,
+                                           (osso_context_t *)
+                                           g_value_get_pointer (value));
+
+          break;
+      default:
+          G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+          break;
+    }
+}
+
+static void
+hd_home_window_get_property (GObject    *gobject,
+                             guint       prop_id,
+                             GValue     *value,
+                             GParamSpec *pspec)
+{
+  HDHomeWindowPrivate *priv = HD_HOME_WINDOW_GET_PRIVATE (gobject);
+
+  switch (prop_id)
+    {
+      case PROP_OSSO_CONTEXT:
+          g_value_set_pointer (value, priv->osso_context);
+          break;
+      default:
+          G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+          break;
+    }
+}
+
+static void
+hd_home_window_applet_activate (HDHomeWindow *window,
+                                const gchar *applet_path)
+{
+  HDHomeWindowPrivate  *priv ;
+  osso_return_t         res;
+
+  priv = HD_HOME_WINDOW_GET_PRIVATE (window);
+
+  if (!priv->osso_context)
+    return;
+
+  res = osso_cp_plugin_execute (priv->osso_context,
+                                applet_path,
+                                NULL,
+                                TRUE);
+  switch (res)
+    {
+      case OSSO_OK:
+          break;
+      case OSSO_ERROR:
+          g_warning ("OSSO_ERROR (No plugin found)\n");
+          break;
+      case OSSO_RPC_ERROR:
+          g_warning ("OSSO_RPC_ERROR (RPC failed for plugin)\n");
+          break;
+      case OSSO_INVALID:
+          g_warning ("OSSO_INVALID (Invalid argument)\n");
+          break;
+      default:
+          g_warning ("Unknown error!\n");
+          break;
+    }
+
+}
+
+static void
+hd_home_window_help_activate (HDHomeWindow *window)
+{
+  HildonDesktopWindow  *dwindow = HILDON_DESKTOP_WINDOW (window);
+  HDHomeWindowPrivate  *priv;
+  HildonHomeArea       *area;
+  osso_return_t         res;
+
+  g_return_if_fail (HILDON_IS_HOME_AREA (dwindow->container));
+  area = HILDON_HOME_AREA (dwindow->container);
+
+  priv = HD_HOME_WINDOW_GET_PRIVATE (window);
+
+  if (!priv->osso_context)
+    return;
+
+  if (hildon_home_area_get_layout_mode (area))
+    res = ossohelp_show (priv->osso_context,
+                         HH_HELP_LAYOUT_MODE,
+                         OSSO_HELP_SHOW_DIALOG);
+  else
+    res = ossohelp_show (priv->osso_context,
+                         HH_HELP,
+                         0);
+
+  switch (res)
+    {
+    case OSSO_OK:
+      break;
+    case OSSO_ERROR:
+      g_warning ("OSSO_ERROR (No help for such topic ID)\n");
+      break;
+    case OSSO_RPC_ERROR:
+      g_warning ("OSSO_RPC_ERROR (Unable to contact HelpApp or Browser)\n");
+      break;
+    case OSSO_INVALID:
+      g_warning ("OSSO_INVALID (Parameter not formally correct)\n");
+      break;
+    default:
+      g_warning ("Unknown error!\n");
+      break;
+    }
+}
+
+static void
+hd_home_window_set_osso_context (HDHomeWindow *window,
+                                 osso_context_t *osso_context)
+{
+  HDHomeWindowPrivate *priv;
+
+  g_return_if_fail (HD_IS_HOME_WINDOW (window));
+
+  priv = HD_HOME_WINDOW_GET_PRIVATE (window);
+
+  if (priv->osso_context != osso_context)
+    {
+      GtkWidget *titlebar;
+
+      priv->osso_context = osso_context;
+      g_object_notify (G_OBJECT (window), "osso-context");
+
+      titlebar = hildon_home_window_get_titlebar (HILDON_HOME_WINDOW (window));
+
+      if (HILDON_IS_HOME_TITLEBAR (titlebar))
+        {
+          g_signal_connect_swapped (titlebar, "help-activate",
+                                    G_CALLBACK (hd_home_window_help_activate),
+                                    window);
+          
+          g_signal_connect_swapped (titlebar, "applet-activate",
+                                    G_CALLBACK (hd_home_window_applet_activate),
+                                    window);
+        }
+    }
+}
+
+

Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.h	2006-11-23 12:47:15 UTC (rev 8279)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-home-window.h	2006-11-23 12:54:35 UTC (rev 8280)
@@ -0,0 +1,59 @@
+/*
+ * This file is part of hildon-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author:  Johan Bilien <johan.bilien 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_HOME_WINDOW_H__
+#define __HD_HOME_WINDOW_H__
+
+#include <glib-object.h>
+#include <libhildondesktop/hildon-home-window.h>
+
+G_BEGIN_DECLS
+
+typedef struct _HDHomeWindow HDHomeWindow;
+typedef struct _HDHomeWindowClass HDHomeWindowClass;
+
+#define HD_TYPE_HOME_WINDOW            (hd_home_window_get_type ())
+#define HD_HOME_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_HOME_WINDOW, HDHomeWindow))
+#define HD_HOME_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  HD_TYPE_HOME_WINDOW, HDHomeWindowClass))
+#define HD_IS_HOME_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_HOME_WINDOW))
+#define HD_IS_HOME_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  HD_TYPE_HOME_WINDOW))
+#define HD_HOME_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  HD_TYPE_HOME_WINDOW, HDHomeWindowClass))
+
+struct _HDHomeWindow 
+{
+  HildonHomeWindow parent;
+
+};
+
+struct _HDHomeWindowClass
+{
+  HildonHomeWindowClass parent_class;
+
+};
+
+GType               hd_home_window_get_type (void);
+
+G_END_DECLS
+
+#endif /*__HD_HOME_WINDOW_H__*/


More information about the maemo-commits mailing list