[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.orgDate: Thu Nov 23 14:54:37 EET 2006
- Previous message: [maemo-commits] r8279 - in projects/haf/tags/hildon-libs: . 0.14.10-1 0.14.10-1/debian 0.14.10-1/hildon-widgets
- Next message: [maemo-commits] r8281 - projects/haf/tags/hildon-libs/0.14.10-1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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__*/
- Previous message: [maemo-commits] r8279 - in projects/haf/tags/hildon-libs: . 0.14.10-1 0.14.10-1/debian 0.14.10-1/hildon-widgets
- Next message: [maemo-commits] r8281 - projects/haf/tags/hildon-libs/0.14.10-1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]