added 'sensitive' argument. (fill_popup_menu_cb): disable/enable menu
2003-11-18 Rodrigo Moya <rodrigo@ximian.com> * gui/calendar-component.c (add_popup_menu_item): added 'sensitive' argument. (fill_popup_menu_cb): disable/enable menu items depending on whether there is a selection or not. * gui/tasks-component.c (add_popup_menu_item, fill_popup_menu_cb): ditto. svn path=/trunk/; revision=23416
This commit is contained in:

committed by
Rodrigo Moya

parent
9163c12f19
commit
b47685534d
@ -1,3 +1,13 @@
|
||||
2003-11-18 Rodrigo Moya <rodrigo@ximian.com>
|
||||
|
||||
* gui/calendar-component.c (add_popup_menu_item): added 'sensitive'
|
||||
argument.
|
||||
(fill_popup_menu_cb): disable/enable menu items depending on whether
|
||||
there is a selection or not.
|
||||
|
||||
* gui/tasks-component.c (add_popup_menu_item, fill_popup_menu_cb):
|
||||
ditto.
|
||||
|
||||
2003-11-17 JP Rosevear <jpr@ximian.com>
|
||||
|
||||
* Cleanup some ref/unref calls
|
||||
|
@ -229,7 +229,7 @@ get_default_event (ECal *client, gboolean all_day)
|
||||
/* Callbacks. */
|
||||
static void
|
||||
add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
GCallback callback, gpointer user_data)
|
||||
GCallback callback, gpointer user_data, gboolean sensitive)
|
||||
{
|
||||
GtkWidget *item, *image;
|
||||
|
||||
@ -241,8 +241,10 @@ add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
if (!image)
|
||||
image = gtk_image_new_from_file (pixmap);
|
||||
|
||||
if (image)
|
||||
if (image) {
|
||||
gtk_widget_show (image);
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
|
||||
}
|
||||
} else {
|
||||
item = gtk_menu_item_new_with_label (label);
|
||||
}
|
||||
@ -250,6 +252,9 @@ add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
if (callback)
|
||||
g_signal_connect (G_OBJECT (item), "activate", callback, user_data);
|
||||
|
||||
if (!sensitive)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
||||
gtk_widget_show (item);
|
||||
}
|
||||
@ -328,9 +333,14 @@ rename_calendar_cb (GtkWidget *widget, CalendarComponent *comp)
|
||||
static void
|
||||
fill_popup_menu_cb (ESourceSelector *selector, GtkMenu *menu, CalendarComponent *comp)
|
||||
{
|
||||
add_popup_menu_item (menu, _("New Calendar"), NULL, G_CALLBACK (new_calendar_cb), comp);
|
||||
add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_calendar_cb), comp);
|
||||
add_popup_menu_item (menu, _("Rename"), NULL, G_CALLBACK (rename_calendar_cb), comp);
|
||||
gboolean sensitive;
|
||||
|
||||
sensitive = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (priv->source_selector)) ?
|
||||
TRUE : FALSE;
|
||||
|
||||
add_popup_menu_item (menu, _("New Calendar"), NULL, G_CALLBACK (new_calendar_cb), comp, TRUE);
|
||||
add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_calendar_cb), comp, sensitive);
|
||||
add_popup_menu_item (menu, _("Rename"), NULL, G_CALLBACK (rename_calendar_cb), comp, sensitive);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -200,7 +200,7 @@ get_default_task (ECal *ecal)
|
||||
/* Callbacks. */
|
||||
static void
|
||||
add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
GCallback callback, gpointer user_data)
|
||||
GCallback callback, gpointer user_data, gboolean sensitive)
|
||||
{
|
||||
GtkWidget *item, *image;
|
||||
|
||||
@ -212,8 +212,10 @@ add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
if (!image)
|
||||
image = gtk_image_new_from_file (pixmap);
|
||||
|
||||
if (image)
|
||||
if (image) {
|
||||
gtk_widget_show (image);
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
|
||||
}
|
||||
} else {
|
||||
item = gtk_menu_item_new_with_label (label);
|
||||
}
|
||||
@ -221,6 +223,9 @@ add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
|
||||
if (callback)
|
||||
g_signal_connect (G_OBJECT (item), "activate", callback, user_data);
|
||||
|
||||
if (!sensitive)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
||||
gtk_widget_show (item);
|
||||
}
|
||||
@ -298,9 +303,17 @@ rename_task_list_cb (GtkWidget *widget, TasksComponent *comp)
|
||||
static void
|
||||
fill_popup_menu_cb (ESourceSelector *selector, GtkMenu *menu, TasksComponent *component)
|
||||
{
|
||||
add_popup_menu_item (menu, _("New Task List"), GTK_STOCK_NEW, G_CALLBACK (new_task_list_cb), component);
|
||||
add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_task_list_cb), component);
|
||||
add_popup_menu_item (menu, _("Rename"), NULL, G_CALLBACK (rename_task_list_cb), component);
|
||||
gboolean sensitive;
|
||||
|
||||
sensitive = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (priv->source_selector)) ?
|
||||
TRUE : FALSE;
|
||||
|
||||
add_popup_menu_item (menu, _("New Task List"), GTK_STOCK_NEW, G_CALLBACK (new_task_list_cb),
|
||||
component, TRUE);
|
||||
add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_task_list_cb),
|
||||
component, sensitive);
|
||||
add_popup_menu_item (menu, _("Rename"), NULL, G_CALLBACK (rename_task_list_cb),
|
||||
component, sensitive);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user