From 866a960fd9dba9c3c7162c61b1e12feca6d12668 Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Tue, 14 Aug 2001 15:26:00 +0000 Subject: Fix bug #215... desensitize menu items based on the number of selected 2001-08-09 Peter Williams Fix bug #215... desensitize menu items based on the number of selected messages (and whether there's a message in the pane) * folder-browser-ui.c (folder_browser_ui_add_message): Sensitize the menu items appropriately based on the old state. (fbui_sensitize_items): New function. Set the sensitivity of a list of commands. (folder_browser_ui_set_selection_state): New function. Move the FB to a new state of selected-ness, and sensitize menu items appropriately. (folder_browser_ui_message_loaded): New function. When notified that a message has been loaded, sensitize some menu items. * folder-browser-ui.h: Prototype new functions. * folder-browser.h: New enumeration, FolderBrowserSelectionState, that records the previous state of the selection (_NONE, _SINGLE, _MULTIPLE). * folder-browser.c (got_folder): If the component is set, set our selection state to _NONE, because that's the default state of the ETree. (on_selection_changed): When the number of selected messages is updated, notify the FBUI code of our new state. (folder_browser_gui_init): Hook up to the selection_changed signal and default to the _NONE selection state. (done_message_selected): Notify when a message is loaded. 2001-08-08 Peter Williams * mail-folder-cache.c: Display how many messages are selected, too. (make_folder_status): If multiple messages are selected, add that to the string (the 0 and 1 cases are boring) (selection_changed): New function, update the selected count. (mail_folder_cache_note_fb): Connect to the selection_changed signal. svn path=/trunk/; revision=12012 --- mail/folder-browser.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'mail/folder-browser.h') diff --git a/mail/folder-browser.h b/mail/folder-browser.h index 332da56000..ea69c7579a 100644 --- a/mail/folder-browser.h +++ b/mail/folder-browser.h @@ -24,6 +24,13 @@ #define IS_FOLDER_BROWSER(o) (GTK_CHECK_TYPE ((o), FOLDER_BROWSER_TYPE)) #define IS_FOLDER_BROWSER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), FOLDER_BROWSER_TYPE)) +typedef enum _FolderBrowserSelectionState { + FB_SELSTATE_NONE, + FB_SELSTATE_SINGLE, + FB_SELSTATE_MULTIPLE, + FB_SELSTATE_UNDEFINED +} FolderBrowserSelectionState; + struct _FolderBrowser { GtkTable parent; @@ -63,6 +70,8 @@ struct _FolderBrowser { gboolean threaded; gboolean pref_master; + FolderBrowserSelectionState selection_state; + /* View collection and the menu handler object */ GalViewCollection *view_collection; GalViewMenus *view_menus; -- cgit v1.2.3