[maemo-commits] [maemo-commits] r9351 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jan 25 17:57:44 EET 2007
- Previous message: [maemo-commits] r9350 - in projects/haf/trunk/maemo-af-desktop: . hildon-navigator
- Next message: [maemo-commits] r9352 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-01-25 17:57:42 +0200 (Thu, 25 Jan 2007)
New Revision: 9351
Added:
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.h
Modified:
projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am
Log:
* libhildondesktop/hildon-desktop-panel-window-dialog.[ch]:
- Added new panel window with dialog hint
* libhildondesktop/Makefile.am
* ChangeLog updated.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-01-25 14:54:23 UTC (rev 9350)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-01-25 15:57:42 UTC (rev 9351)
@@ -1,5 +1,10 @@
2007-01-24 Moises Martinez <moises.martinez at nokia.com>
+ * libhildondesktop/hildon-desktop-panel-window-dialog.[ch]:
+ - Added new panel window with dialog hint
+
+2007-01-24 Moises Martinez <moises.martinez at nokia.com>
+
* libhildondesktop/hildon-desktop-panel-expandable.c:
- Fixed positioning in extended panel (GtkTable).
- Fixed positioning in extended window.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am 2007-01-25 14:54:23 UTC (rev 9350)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/Makefile.am 2007-01-25 15:57:42 UTC (rev 9351)
@@ -12,6 +12,7 @@
hildon-desktop-item-socket.h \
hildon-desktop-plugin.h \
hildon-desktop-panel-window.h \
+ hildon-desktop-panel-window-dialog.h \
hildon-desktop-panel.h \
hildon-desktop-multiscreen.h \
hildon-desktop-panel-expandable.h \
@@ -79,6 +80,8 @@
hildon-desktop-panel.c \
hildon-desktop-panel-window.h \
hildon-desktop-panel-window.c \
+ hildon-desktop-panel-window-dialog.h \
+ hildon-desktop-panel-window-dialog.c \
hildon-desktop-panel-expandable.h \
hildon-desktop-panel-expandable.c \
hildon-desktop-multiscreen.h \
Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c 2007-01-25 14:54:23 UTC (rev 9350)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c 2007-01-25 15:57:42 UTC (rev 9351)
@@ -0,0 +1,203 @@
+/*
+ * This file is part of maemo-af-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author: Moises Martinez <moises.martinez 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
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * 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 <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <libhildonwm/hd-wm.h>
+
+#include "hildon-desktop-panel-window-dialog.h"
+#include "hildon-desktop-panel-expandable.h"
+
+#define HILDON_DESKTOP_PANEL_WINDOW_DIALOG_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG, HildonDesktopPanelWindowDialogPrivate))
+
+G_DEFINE_TYPE (HildonDesktopPanelWindowDialog, hildon_desktop_panel_window_dialog, HILDON_DESKTOP_TYPE_PANEL_WINDOW);
+
+enum
+{
+ PROP_0,
+ PROP_FULLSCREEN
+};
+
+struct _HildonDesktopPanelWindowDialogPrivate
+{
+ gboolean show_in_fullscreen;
+
+ HDWM *hdwm;
+};
+
+static GObject *hildon_desktop_panel_window_dialog_constructor (GType gtype,
+ guint n_params,
+ GObjectConstructParam *params);
+
+/*static void set_focus_forall_cb (GtkWidget *widget, gpointer data);*/
+static void hildon_desktop_panel_window_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void hildon_desktop_panel_window_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
+
+static void hildon_desktop_window_dialog_fullscreen_cb (HDWM *hdwm, gboolean fullscreen, gpointer _window);
+
+static void
+hildon_desktop_panel_window_dialog_class_init (HildonDesktopPanelWindowDialogClass *dskwindow_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (dskwindow_class);
+
+ g_type_class_add_private (dskwindow_class, sizeof (HildonDesktopPanelWindowDialogPrivate));
+
+ object_class->constructor = hildon_desktop_panel_window_dialog_constructor;
+ object_class->set_property = hildon_desktop_panel_window_dialog_set_property;
+ object_class->get_property = hildon_desktop_panel_window_dialog_get_property;
+
+ g_object_class_install_property (object_class,
+ PROP_FULLSCREEN,
+ g_param_spec_boolean(
+ "show-fullscreen",
+ "show-fullscreen",
+ "Window is showed in fullscreen"
+ "dock panel",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+}
+
+static void
+hildon_desktop_panel_window_dialog_init (HildonDesktopPanelWindowDialog *window)
+{
+ g_return_if_fail (window);
+
+ window->priv = HILDON_DESKTOP_PANEL_WINDOW_DIALOG_GET_PRIVATE (window);
+
+ window->priv->hdwm = hd_wm_get_singleton ();
+
+ /* FIXME: what do we do with focus??? */
+}
+
+static GObject *
+hildon_desktop_panel_window_dialog_constructor (GType gtype,
+ guint n_params,
+ GObjectConstructParam *params)
+{
+ GObject *object;
+ HildonDesktopPanelWindowDialog *window;
+ GtkWidget *widget;
+
+ object = G_OBJECT_CLASS (hildon_desktop_panel_window_dialog_parent_class)->constructor (gtype,
+ n_params,
+ params);
+
+ widget = GTK_WIDGET (object);
+ window = HILDON_DESKTOP_PANEL_WINDOW_DIALOG (object);
+
+ GTK_WINDOW (window)->type = GTK_WINDOW_TOPLEVEL;
+
+ gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
+
+ if (HILDON_DESKTOP_WINDOW (window)->container != NULL)
+ gtk_container_remove (GTK_CONTAINER (window), GTK_WIDGET (HILDON_DESKTOP_WINDOW (window)->container));
+
+ gtk_widget_push_composite_child ();
+
+ HILDON_DESKTOP_WINDOW (window)->container =
+ g_object_new (HILDON_DESKTOP_TYPE_PANEL_EXPANDABLE, "items_row", 7 ,NULL);
+
+ gtk_container_add (GTK_CONTAINER (window),
+ GTK_WIDGET (HILDON_DESKTOP_WINDOW (window)->container));
+
+ gtk_widget_show (GTK_WIDGET (HILDON_DESKTOP_WINDOW (window)->container));
+
+ gdk_window_set_transient_for (GTK_WIDGET (window)->window, gdk_get_default_root_window ());
+
+ gtk_widget_pop_composite_child ();
+
+ g_signal_connect (window->priv->hdwm,
+ "fullscreen",
+ G_CALLBACK (hildon_desktop_window_dialog_fullscreen_cb),
+ (gpointer)window);
+
+ return object;
+}
+
+static void
+hildon_desktop_window_dialog_fullscreen_cb (HDWM *hdwm, gboolean fullscreen, gpointer _window)
+{
+ HildonDesktopPanelWindowDialog *window = HILDON_DESKTOP_PANEL_WINDOW_DIALOG (_window);
+
+ window->priv->show_in_fullscreen = fullscreen;
+ g_object_notify (G_OBJECT (window),"show-fullscreen");
+
+ if (fullscreen)
+ {
+ /*TODO: Unmap the window set the hint to DOCK and map again*/
+ }
+ else
+ {
+ /*TODO: Unmap the window set the hint to DIALOG and map again */
+ }
+}
+static void
+hildon_desktop_panel_window_dialog_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ HildonDesktopPanelWindowDialog *window = HILDON_DESKTOP_PANEL_WINDOW_DIALOG (object);
+
+ switch (prop_id)
+ {
+ case PROP_FULLSCREEN:
+ g_value_set_boolean (value, window->priv->show_in_fullscreen);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+hildon_desktop_panel_window_dialog_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ HildonDesktopPanelWindowDialog *window = HILDON_DESKTOP_PANEL_WINDOW_DIALOG (object);
+
+ switch (prop_id)
+ {
+ case PROP_FULLSCREEN:
+ window->priv->show_in_fullscreen = g_value_get_boolean (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+GtkWidget *
+hildon_desktop_panel_window_dialog_new ()
+{
+ GtkWidget *window;
+ window = g_object_new (HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG, NULL);
+ return window;
+}
Added: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.h 2007-01-25 14:54:23 UTC (rev 9350)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.h 2007-01-25 15:57:42 UTC (rev 9351)
@@ -0,0 +1,64 @@
+/*
+ * This file is part of maemo-af-desktop
+ *
+ * Copyright (C) 2006 Nokia Corporation.
+ *
+ * Author: Moises Martinez <moises.martinez 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
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * 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 __HILDON_DESKTOP_PANEL_WINDOW_DIALOG_H__
+#define __HILDON_DESKTOP_PANEL_WINDOW_DIALOG_H__
+
+#include <gtk/gtkwindow.h>
+
+#include <libhildondesktop/hildon-desktop-panel-window.h>
+
+G_BEGIN_DECLS
+
+typedef struct _HildonDesktopPanelWindowDialog HildonDesktopPanelWindowDialog;
+typedef struct _HildonDesktopPanelWindowDialogClass HildonDesktopPanelWindowDialogClass;
+typedef struct _HildonDesktopPanelWindowDialogPrivate HildonDesktopPanelWindowDialogPrivate;
+
+#define HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG (hildon_desktop_panel_window_dialog_get_type())
+#define HILDON_DESKTOP_PANEL_WINDOW_DIALOG(obj) (GTK_CHECK_CAST (obj, HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG, HildonDesktopPanelWindowDialog))
+#define HILDON_DESKTOP_PANEL_WINDOW_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG, HildonDesktopPanelWindowDialogClass))
+#define HILDON_DESKTOP_IS_PANEL_WINDOW_DIALOG(obj) (GTK_CHECK_TYPE (obj, HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG))
+#define HILDON_DESKTOP_IS_PANEL_WINDOW_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), HILDON_DESKTOP_TYPE_PANEL_WINDOW_DIALOG))
+
+struct _HildonDesktopPanelWindowDialog
+{
+ HildonDesktopPanelWindow parent;
+
+ HildonDesktopPanelWindowDialogPrivate *priv;
+};
+
+struct _HildonDesktopPanelWindowDialogClass
+{
+ HildonDesktopPanelWindowClass parent_class;
+
+};
+
+GType hildon_desktop_panel_window_dialog_get_type (void);
+
+GtkWidget *hildon_desktop_panel_window_dialog_new (void);
+
+G_END_DECLS
+
+#endif /* __HILDON_DESKTOP_PANEL_WINDOW_DIALOG_H__ */
- Previous message: [maemo-commits] r9350 - in projects/haf/trunk/maemo-af-desktop: . hildon-navigator
- Next message: [maemo-commits] r9352 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
