Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Replaced _("") with wxT("") to stop error messages in gettext
[xestiaab/.git] / source / widgets / XABContactMenu.cpp
index fc3f59a..c29149b 100644 (file)
 #include "../frmMain.h"
 #include "../search/frmSearch.h"
 
-enum {
-       ID_CONTACTMENU_OPEN,
-       ID_CONTACTMENU_NEW,
-       ID_CONTACTMENU_EDIT,
-       ID_CONTACTMENU_DELETE,
-       ID_CONTACTMENU_REFRESHAB,
-       ID_CONTACTMENU_REVEAL
-};
-
-XABContactMenu::XABContactMenu(int MenuTypeIn){
+XABContactMenu::XABContactMenu(XABContactMenuType MenuTypeIn){
 
+       // Setup the XABContactMenu control.
+       
        MenuType = MenuTypeIn;
 
        // Setup the menu items.
        
-       AppendMenuItem(wxT("opencontact"), _("Open Contact..."), _(""), ID_CONTACTMENU_OPEN, wxITEM_NORMAL);
-       AppendMenuItem(wxT("sep1"), _(""), _(""), wxID_ANY, wxITEM_SEPARATOR);
+       AppendMenuItem(wxT("opencontact"), _("Open Contact..."), wxT(""), ID_CONTACTMENU_OPEN, wxITEM_NORMAL);
+       AppendMenuItem(wxT("sep1"), wxT(""), wxT(""), ID_CONTACTMENU_SEPARATOR, wxITEM_SEPARATOR);
        
        if (MenuType == XABCONTACTMENU_MAIN){
        
                // Setup up the add contact option if in the main window.
 
-               AppendMenuItem(wxT("newcontact"), _("New Contact..."), _(""), ID_CONTACTMENU_NEW, wxITEM_NORMAL);
+               AppendMenuItem(wxT("newcontact"), _("New Contact..."), wxT(""), ID_CONTACTMENU_NEW, wxITEM_NORMAL);
        
        }
        
-       AppendMenuItem(wxT("editcontact"), _("Edit Contact..."), _(""), ID_CONTACTMENU_EDIT, wxITEM_NORMAL);
+       AppendMenuItem(wxT("editcontact"), _("Edit Contact..."), wxT(""), ID_CONTACTMENU_EDIT, wxITEM_NORMAL);
 
        if (MenuType == XABCONTACTMENU_SEARCH){
        
                // Setup up the reveal contact option if in the search window.
        
-               AppendMenuItem(wxT("revealcontact"), _("Reveal Contact..."), _(""), ID_CONTACTMENU_REVEAL, wxITEM_NORMAL);
+               AppendMenuItem(wxT("revealcontact"), _("Reveal Contact..."), wxT(""), ID_CONTACTMENU_REVEAL, wxITEM_NORMAL);
        
        }
        
@@ -60,9 +53,9 @@ XABContactMenu::XABContactMenu(int MenuTypeIn){
        
                // Setup the delete and refresh contact options if in the main window.
        
-               AppendMenuItem(wxT("deletecontact"), _("Delete Contact..."), _(""), ID_CONTACTMENU_DELETE, wxITEM_NORMAL);
-               AppendMenuItem(wxT("sep2"), _(""), _(""), wxID_ANY, wxITEM_SEPARATOR);
-               AppendMenuItem(wxT("refreshab"), _("Refresh Address Book"), _(""), ID_CONTACTMENU_REFRESHAB, wxITEM_NORMAL);
+               AppendMenuItem(wxT("deletecontact"), _("Delete Contact..."), wxT(""), ID_CONTACTMENU_DELETE, wxITEM_NORMAL);
+               AppendMenuItem(wxT("sep2"), wxT(""), wxT(""), ID_CONTACTMENU_SEPARATOR, wxITEM_SEPARATOR);
+               AppendMenuItem(wxT("refreshab"), _("Refresh Address Book"), wxT(""), ID_CONTACTMENU_REFRESHAB, wxITEM_NORMAL);
        
        }
 
@@ -70,6 +63,8 @@ XABContactMenu::XABContactMenu(int MenuTypeIn){
 
 XABContactMenu::~XABContactMenu(){
 
+       // Destory the XABContactMenu object.
+       
        // Delete the menu items.
        
        for (std::map<std::string, wxMenuItem*>::iterator MenuItemIter = MenuItems.begin(); 
@@ -91,29 +86,31 @@ XABContactMenu::~XABContactMenu(){
 void XABContactMenu::AppendMenuItem(wxString ObjectName, 
        wxString MenuName, 
        wxString MenuDescription,
-       int ItemID,
+       XABContactMenuID ItemID,
        wxItemKind ItemType){
        
-       wxMenuItem *menuitem = new wxMenuItem(
-               NULL,
-               ItemID,
-               MenuName,
-               MenuDescription,
-               ItemType,
-               NULL
-       );
+       if (ItemType == wxITEM_SEPARATOR){
+               this->AppendSeparator();
+               return;
+       }
        
+       // Append a menu item to the XABContactMenu control.
+
+       wxMenuItem *menuitem = this->Append(ItemID, MenuName, MenuDescription);
        this->Connect(menuitem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(XABContactMenu::ProcessMenuItemClick));
-       this->Append(menuitem);
        MenuItems.insert(std::make_pair(ObjectName.ToStdString(), menuitem));
 
 }
 
-void XABContactMenu::SetupPointers(wxWindow* WindowPtrIn,
-       wxListCtrl* ContactListCtrlIn){
+void XABContactMenu::SetupPointersSearch(wxWindow* WindowPtrIn,
+       wxListCtrl* ContactListCtrlIn,
+       bool SearchModeOnlyIn){
 
+       // Setup the pointers when being used in the search window.
+               
        WindowPtr = WindowPtrIn;
        ContactListCtrl = ContactListCtrlIn;
+       SearchModeOnly = SearchModeOnlyIn;
 
 }
 
@@ -121,6 +118,8 @@ void XABContactMenu::SetupPointers(wxWindow* WindowPtrIn,
        wxListCtrl* ContactListCtrlIn, 
        bool EnableAccountSettingsIn){
 
+       // Setup the pointers.
+               
        WindowPtr = WindowPtrIn;
        ContactListCtrl = ContactListCtrlIn;
        EnableAccountSettings = EnableAccountSettingsIn;
@@ -129,6 +128,8 @@ void XABContactMenu::SetupPointers(wxWindow* WindowPtrIn,
 
 wxMenu* XABContactMenu::MenuPointer(){
 
+       // Process the menu pointer.
+       
        // Check for the following before passing the pointer:
        // If an account has been selected.
        // - Disable Refresh Address Book if not.
@@ -177,10 +178,22 @@ wxMenu* XABContactMenu::MenuPointer(){
        
                std::map<std::string, wxMenuItem*>::iterator MenuItemIter = MenuItems.find("opencontact");
                MenuItemIter->second->Enable(ContactSelected);
-               MenuItemIter = MenuItems.find("editcontact");
-               MenuItemIter->second->Enable(ContactSelected);
-               MenuItemIter = MenuItems.find("revealcontact");
-               MenuItemIter->second->Enable(ContactSelected);
+               
+               if (SearchModeOnly == TRUE){
+
+                       MenuItemIter = MenuItems.find("editcontact");
+                       MenuItemIter->second->Enable(FALSE);
+                       MenuItemIter = MenuItems.find("revealcontact");
+                       MenuItemIter->second->Enable(FALSE);
+               
+               } else {
+               
+                       MenuItemIter = MenuItems.find("editcontact");
+                       MenuItemIter->second->Enable(ContactSelected);
+                       MenuItemIter = MenuItems.find("revealcontact");
+                       MenuItemIter->second->Enable(ContactSelected);
+       
+               }
        
        }
 
@@ -190,6 +203,9 @@ wxMenu* XABContactMenu::MenuPointer(){
 
 void XABContactMenu::ProcessMenuItemClick( wxCommandEvent& event){
 
+       // Process an action when a menu item in the XABContactMenu
+       // control is selected.
+       
        int ItemID = event.GetId();
        
        if (MenuType == XABCONTACTMENU_MAIN){
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy