[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 ]