[maemo-commits] [maemo-commits] r11580 - in projects/haf/trunk/hildon-desktop: . libhildondesktop libhildonwm src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu May 10 17:02:19 EEST 2007
- Previous message: [maemo-commits] r11579 - projects/haf/tags/hildon-1/1.0.5-1
- Next message: [maemo-commits] r11581 - in projects/haf/trunk/hildon-theme-test: . template
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-05-10 17:02:18 +0300 (Thu, 10 May 2007)
New Revision: 11580
Modified:
projects/haf/trunk/hildon-desktop/ChangeLog
projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
projects/haf/trunk/hildon-desktop/libhildonwm/hd-keys.c
projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c
projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
Log:
* src/hd-switcher-menu-item.c:
- Close notification when activated.
* src/hd-switcher-menu.c:
- Close menu when application topped.
- Don't show the button if there are no application and no
notifications.
- Connected to show-controls signals from the menu.
* libhildondesktop/hildon-desktop-popup-menu.c:
- Added show-controls signals when scroll bottons are shown or not.
* libhildonwm/hd-keys.c:
- Added shortcut for osso-global-search, harcoded, though :(
* ChangeLog updated.
Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog 2007-05-10 13:41:23 UTC (rev 11579)
+++ projects/haf/trunk/hildon-desktop/ChangeLog 2007-05-10 14:02:18 UTC (rev 11580)
@@ -1,6 +1,20 @@
2007-05-10 Moises Martinez <moises.martinez at nokia.com>
+ * src/hd-switcher-menu-item.c:
+ - Close notification when activated.
+ * src/hd-switcher-menu.c:
+ - Close menu when application topped.
+ - Don't show the button if there are no application and no
+ notifications.
+ - Connected to show-controls signals from the menu.
* libhildondesktop/hildon-desktop-popup-menu.c:
+ - Added show-controls signals when scroll bottons are shown or not.
+ * libhildonwm/hd-keys.c:
+ - Added shortcut for osso-global-search, harcoded, though :(
+
+2007-05-10 Moises Martinez <moises.martinez at nokia.com>
+
+ * libhildondesktop/hildon-desktop-popup-menu.c:
- Added "resize-parent" property if you don't want the menu to resize
the parent.
Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c 2007-05-10 13:41:23 UTC (rev 11579)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c 2007-05-10 14:02:18 UTC (rev 11580)
@@ -48,6 +48,7 @@
enum
{
SIGNAL_POPUP_RESIZE,
+ SIGNAL_POPUP_SHOW_CONTROLS,
N_SIGNALS
};
@@ -136,6 +137,15 @@
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+
+ signals[SIGNAL_POPUP_SHOW_CONTROLS] =
+ g_signal_new ("show-controls",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
g_object_class_install_property (object_class,
PROP_POPUP_ITEM_HEIGHT,
@@ -456,6 +466,8 @@
gtk_widget_show (menu->priv->box_buttons);
menu->priv->controls_on = TRUE;
+
+ g_signal_emit_by_name (menu, "show-controls", TRUE);
}
}
@@ -467,6 +479,8 @@
gtk_container_remove (GTK_CONTAINER (menu),
menu->priv->box_buttons);
menu->priv->controls_on = FALSE;
+
+ g_signal_emit_by_name (menu, "show-controls", FALSE);
}
}
Modified: projects/haf/trunk/hildon-desktop/libhildonwm/hd-keys.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildonwm/hd-keys.c 2007-05-10 13:41:23 UTC (rev 11579)
+++ projects/haf/trunk/hildon-desktop/libhildonwm/hd-keys.c 2007-05-10 14:02:18 UTC (rev 11580)
@@ -166,7 +166,7 @@
hd_keys_launch_application (HDKeysConfig *keys,
gpointer *user_data)
{
-
+ hd_wm_activate_service ("osso-global-search.desktop", NULL);
}
static void
Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c 2007-05-10 13:41:23 UTC (rev 11579)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c 2007-05-10 14:02:18 UTC (rev 11580)
@@ -124,6 +124,8 @@
gchar *notification_body;
GdkPixbuf *notification_icon;
+ gboolean was_topped;
+
HildonDesktopNotificationManager *nm;
};
@@ -519,6 +521,19 @@
(HD_SWITCHER_MENU_ITEM (menu_item)->priv->nm,
HD_SWITCHER_MENU_ITEM (menu_item)->priv->notification_id,
"default");
+
+ GError *error = NULL;
+
+ hildon_desktop_notification_manager_close_notification
+ (HD_SWITCHER_MENU_ITEM (menu_item)->priv->nm,
+ HD_SWITCHER_MENU_ITEM (menu_item)->priv->notification_id,
+ &error);
+
+ if (error)
+ {
+ g_warning ("We cannot close the notification!?!?!");
+ g_error_free (error);
+ }
}
}
@@ -542,18 +557,10 @@
gtk_widget_get_pointer(widget, &x, &y);
- HN_DBG ("pointer [%d,%d],\n"
- "close allocation [%d, %d, %d, %d]",
- x, y,
- menuitem->priv->close->allocation.x,
- menuitem->priv->close->allocation.y,
- menuitem->priv->close->allocation.width,
- menuitem->priv->close->allocation.height);
-
/* only test x here; y is always withing the button range */
- if(x > menuitem->priv->close->allocation.x &&
- x <= menuitem->priv->close->allocation.x +
- menuitem->priv->close->allocation.width)
+ if (x > menuitem->priv->close->allocation.x &&
+ x <= menuitem->priv->close->allocation.x +
+ menuitem->priv->close->allocation.width)
{
if (menuitem->priv->info != NULL)
hd_entry_info_close (menuitem->priv->info);
Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c 2007-05-10 13:41:23 UTC (rev 11579)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c 2007-05-10 14:02:18 UTC (rev 11580)
@@ -94,6 +94,7 @@
GtkImage *image_button;
GtkWidget *active_menu_item;
+ GtkWidget *clear_events_menu_item;
gboolean is_open;
gboolean fullscreen;
@@ -119,6 +120,10 @@
static void hd_switcher_menu_scroll_to (HildonDesktopPopupWindow *window,
HDSwitcherMenu *switcher);
+static void hd_switcher_menu_add_clear_notifications_button_cb (HildonDesktopPopupMenu *menu,
+ gboolean show_controls,
+ HDSwitcherMenu *switcher);
+
static void hd_switcher_menu_add_info_cb (HDWM *hdwm, HDEntryInfo *info, HDSwitcherMenu *switcher);
static void hd_switcher_menu_remove_info_cb (HDWM *hdwm, gboolean removed_app, HDEntryInfo *info, HDSwitcherMenu *switcher);
static void hd_switcher_menu_changed_info_cb (HDWM *hdwm, HDEntryInfo *info, HDSwitcherMenu *switcher);
@@ -145,6 +150,10 @@
static void hd_switcher_menu_reset_main_icon (HDSwitcherMenu *switcher);
+static void hd_switcher_menu_check_content (HDSwitcherMenu *switcher);
+
+static void hd_switcher_menu_item_activated (GtkMenuItem *menuitem, HDSwitcherMenu *switcher);
+
static void
hd_switcher_menu_init (HDSwitcherMenu *switcher)
{
@@ -155,7 +164,8 @@
switcher->priv->popup_window = NULL;
- switcher->priv->active_menu_item = NULL;
+ switcher->priv->active_menu_item =
+ switcher->priv->clear_events_menu_item = NULL;
switcher->priv->is_open =
switcher->priv->fullscreen = FALSE;
@@ -395,6 +405,11 @@
"popup-menu-resize",
G_CALLBACK (hd_switcher_menu_resize_menu),
(gpointer)switcher);
+
+ g_signal_connect (switcher->priv->menu_notifications,
+ "show-controls",
+ G_CALLBACK (hd_switcher_menu_add_clear_notifications_button_cb),
+ (gpointer)switcher);
g_signal_connect (button,
"toggled",
@@ -470,6 +485,8 @@
GTK_MENU_ITEM (gtk_separator_menu_item_new ()));
hd_switcher_menu_populate_notifications (switcher);
+
+ hd_switcher_menu_check_content (switcher);
return object;
}
@@ -484,8 +501,16 @@
gtk_widget_destroy (GTK_WIDGET (switcher->priv->popup_window));
G_OBJECT_CLASS (hd_switcher_menu_parent_class)->finalize (object);
-}
+}
+static void
+hd_switcher_menu_add_clear_notifications_button_cb (HildonDesktopPopupMenu *menu,
+ gboolean show_controls,
+ HDSwitcherMenu *switcher)
+{
+ /*TODO: Waiting for Roope to implement this wonderful feature */
+}
+
static void
hd_switcher_menu_replace_blinking_icon (HDSwitcherMenu *switcher, GdkPixbuf *icon)
{
@@ -517,11 +542,48 @@
}
static void
+hd_switcher_menu_item_activated (GtkMenuItem *menuitem, HDSwitcherMenu *switcher)
+{
+ if (switcher->priv->is_open)
+ hildon_desktop_popup_window_popdown
+ (switcher->priv->popup_window);
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (SWITCHER_TOGGLE_BUTTON), FALSE);
+}
+
+static void
hd_switcher_menu_style_set (GtkWidget *widget, GtkStyle *style, gpointer data)
{
gtk_widget_set_name (widget, AS_MENU_BUTTON_NAME);
gtk_widget_set_name (GTK_BIN (widget)->child, AS_MENU_BUTTON_NAME);
+}
+
+static void
+hd_switcher_menu_check_content (HDSwitcherMenu *switcher)
+{
+ GList *children = NULL;
+
+ if ((hd_wm_get_applications (switcher->hdwm) != NULL) ||
+ (children = hildon_desktop_popup_menu_get_children
+ (switcher->priv->menu_notifications)) != NULL)
+ {
+ gtk_widget_show (GTK_BIN (SWITCHER_TOGGLE_BUTTON)->child);
+ }
+ else
+ {
+ gtk_widget_hide (GTK_BIN (SWITCHER_TOGGLE_BUTTON)->child);
+
+ if (switcher->priv->is_open)
+ hildon_desktop_popup_window_popdown
+ (switcher->priv->popup_window);
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (SWITCHER_TOGGLE_BUTTON), FALSE);
+ }
+
+ g_list_free (children);
}
static void
@@ -666,6 +728,9 @@
static void
hd_switcher_menu_toggled_cb (GtkWidget *button, HDSwitcherMenu *switcher)
{
+ if (!GTK_WIDGET_VISIBLE (GTK_BIN (SWITCHER_TOGGLE_BUTTON)->child))
+ return;
+
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (SWITCHER_TOGGLE_BUTTON)))
{
hildon_desktop_popup_window_popdown (switcher->priv->popup_window);
@@ -766,6 +831,11 @@
menu_item = hd_switcher_menu_item_new_from_entry_info (entry, TRUE);
+ g_signal_connect_after (menu_item,
+ "activate",
+ G_CALLBACK (hd_switcher_menu_item_activated),
+ (gpointer)switcher);
+
hildon_desktop_popup_menu_add_item
(switcher->priv->menu_applications, GTK_MENU_ITEM (menu_item));
@@ -782,6 +852,8 @@
hildon_desktop_popup_menu_add_item
(switcher->priv->menu_applications, GTK_MENU_ITEM (separator));
}
+
+ hd_switcher_menu_check_content (switcher);
}
static void
@@ -834,6 +906,8 @@
}
g_list_free (children);
+
+ hd_switcher_menu_check_content (switcher);
}
static GdkPixbuf *
@@ -1109,9 +1183,10 @@
hildon_desktop_popup_menu_add_item
(switcher->priv->menu_notifications,
GTK_MENU_ITEM (gtk_separator_menu_item_new ()));
-
switcher->priv->last_iter_added = NULL;
+
+ hd_switcher_menu_check_content (switcher);
}
static void
@@ -1145,6 +1220,8 @@
}
g_list_free (children);
+
+ hd_switcher_menu_check_content (switcher);
}
static void
- Previous message: [maemo-commits] r11579 - projects/haf/tags/hildon-1/1.0.5-1
- Next message: [maemo-commits] r11581 - in projects/haf/trunk/hildon-theme-test: . template
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
