X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXABContactMenu.cpp;h=6a30afcb95ad7cb8b4cd1479f822f871579366b6;hb=refs%2Fheads%2Fmaster;hp=18003d5100327879454a46d3c93fcf548685614e;hpb=e0521275eee34ef6feb06612512c611bb3c3b518;p=xestiaab%2F.git
diff --git a/source/widgets/XABContactMenu.cpp b/source/widgets/XABContactMenu.cpp
index 18003d5..6a30afc 100644
--- a/source/widgets/XABContactMenu.cpp
+++ b/source/widgets/XABContactMenu.cpp
@@ -1,40 +1,51 @@
+// XABContactMenu.cpp - XABContactMenu widget
+//
+// (c) 2012-2016 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see
+
#include "XABContactMenu.h"
#include "../frmMain.h"
-#include "../frmSearch.h"
-
-enum {
- ID_CONTACTMENU_OPEN,
- ID_CONTACTMENU_NEW,
- ID_CONTACTMENU_EDIT,
- ID_CONTACTMENU_DELETE,
- ID_CONTACTMENU_REFRESHAB,
- ID_CONTACTMENU_REVEAL
-};
+#include "../search/frmSearch.h"
-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);
}
@@ -42,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);
}
@@ -52,6 +63,8 @@ XABContactMenu::XABContactMenu(int MenuTypeIn){
XABContactMenu::~XABContactMenu(){
+ // Destory the XABContactMenu object.
+
// Delete the menu items.
for (std::map::iterator MenuItemIter = MenuItems.begin();
@@ -73,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;
}
@@ -103,6 +118,8 @@ void XABContactMenu::SetupPointers(wxWindow* WindowPtrIn,
wxListCtrl* ContactListCtrlIn,
bool EnableAccountSettingsIn){
+ // Setup the pointers.
+
WindowPtr = WindowPtrIn;
ContactListCtrl = ContactListCtrlIn;
EnableAccountSettings = EnableAccountSettingsIn;
@@ -111,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.
@@ -159,10 +178,22 @@ wxMenu* XABContactMenu::MenuPointer(){
std::map::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);
+
+ }
}
@@ -172,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){