X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXABContactMenu.cpp;h=cfef818d0c8e35960cb733c85fd5bf8278cbcc15;hb=d4087a12e1dccd74c089f2583500578fa5e59212;hp=18003d5100327879454a46d3c93fcf548685614e;hpb=e0521275eee34ef6feb06612512c611bb3c3b518;p=xestiaab%2F.git diff --git a/source/widgets/XABContactMenu.cpp b/source/widgets/XABContactMenu.cpp index 18003d5..cfef818 100644 --- a/source/widgets/XABContactMenu.cpp +++ b/source/widgets/XABContactMenu.cpp @@ -1,6 +1,24 @@ +// XABContactMenu.cpp - XABContactMenu widget +// +// (c) 2012-2015 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" +#include "../search/frmSearch.h" enum { ID_CONTACTMENU_OPEN, @@ -13,6 +31,8 @@ enum { XABContactMenu::XABContactMenu(int MenuTypeIn){ + // Setup the XABContactMenu control. + MenuType = MenuTypeIn; // Setup the menu items. @@ -52,6 +72,8 @@ XABContactMenu::XABContactMenu(int MenuTypeIn){ XABContactMenu::~XABContactMenu(){ + // Destory the XABContactMenu object. + // Delete the menu items. for (std::map::iterator MenuItemIter = MenuItems.begin(); @@ -76,6 +98,8 @@ void XABContactMenu::AppendMenuItem(wxString ObjectName, int ItemID, wxItemKind ItemType){ + // Append a menu item to the XABContactMenu control. + wxMenuItem *menuitem = new wxMenuItem( NULL, ItemID, @@ -91,11 +115,15 @@ void XABContactMenu::AppendMenuItem(wxString ObjectName, } -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 +131,8 @@ void XABContactMenu::SetupPointers(wxWindow* WindowPtrIn, wxListCtrl* ContactListCtrlIn, bool EnableAccountSettingsIn){ + // Setup the pointers. + WindowPtr = WindowPtrIn; ContactListCtrl = ContactListCtrlIn; EnableAccountSettings = EnableAccountSettingsIn; @@ -111,6 +141,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 +191,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 +216,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){