- if (selection == SUMMARY_NONE) {
- GtkWidget *submenu;
-
- submenu = gtk_item_factory_get_widget
- (summaryview->popupfactory, "/Mark");
- menu_set_insensitive_all(GTK_MENU_SHELL(submenu));
- menu_set_insensitive_all
- (GTK_MENU_SHELL(summaryview->popupmenu));
- return;
- }
-
- if (FOLDER_TYPE(summaryview->folder_item->folder) != F_NEWS)
- menu_set_sensitive(ifactory, "/Move...", TRUE);
- else
- menu_set_sensitive(ifactory, "/Move...", FALSE);
+ static const struct {
+ gchar *const entry;
+ SensitiveCond cond;
+ } entry[] = {
+ {"/Reply" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Reply to" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Reply to/all" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Reply to/sender" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Reply to/mailing list" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Follow-up and reply to" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST|M_NEWS},
+
+ {"/Forward" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Redirect" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+
+ {"/Re-edit" , M_HAVE_ACCOUNT|M_ALLOW_REEDIT},
+
+ {"/Move..." , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
+ {"/Copy..." , M_TARGET_EXIST|M_EXEC|M_UNLOCKED},
+ {"/Delete" , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NOT_NEWS},
+ {"/Cancel a news message" , M_TARGET_EXIST|M_ALLOW_DELETE|M_UNLOCKED|M_NEWS},
+ {"/Execute" , M_DELAY_EXEC},
+
+ {"/Mark" , M_TARGET_EXIST},
+ {"/Mark/Mark" , M_TARGET_EXIST},
+ {"/Mark/Unmark" , M_TARGET_EXIST},
+ {"/Mark/Mark as unread" , M_TARGET_EXIST},
+ {"/Mark/Mark all read" , M_TARGET_EXIST},
+ {"/Mark/Ignore thread" , M_TARGET_EXIST},
+ {"/Mark/Lock" , M_TARGET_EXIST},
+ {"/Mark/Unlock" , M_TARGET_EXIST},
+ {"/Color label" , M_TARGET_EXIST},
+
+ {"/Add sender to address book" , M_SINGLE_TARGET_EXIST},
+ {"/Create filter rule" , M_SINGLE_TARGET_EXIST|M_UNLOCKED},
+
+ {"/View" , M_SINGLE_TARGET_EXIST},
+ {"/View/Open in new window" , M_SINGLE_TARGET_EXIST},
+ {"/View/Source" , M_SINGLE_TARGET_EXIST},
+ {"/View/All header" , M_SINGLE_TARGET_EXIST},
+
+ {"/Save as..." , M_SINGLE_TARGET_EXIST|M_UNLOCKED},
+ {"/Print..." , M_TARGET_EXIST|M_UNLOCKED},
+
+ {"/Select thread" , M_SINGLE_TARGET_EXIST},
+
+ {NULL, 0}
+ };