// XABContactMenu.cpp - XABContactMenu widget header // // (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 #ifndef __WIDGETS_XABCONTACTMENU__ #define __WIDGETS_XABCONTACTMENU__ #include #include #include #include #include enum XABContactMenuID { ID_CONTACTMENU_OPEN = 1, ID_CONTACTMENU_NEW, ID_CONTACTMENU_EDIT, ID_CONTACTMENU_DELETE, ID_CONTACTMENU_REFRESHAB, ID_CONTACTMENU_REVEAL, ID_CONTACTMENU_SEPARATOR }; enum XABContactMenuType { XABCONTACTMENU_MAIN, XABCONTACTMENU_SEARCH }; class XABContactMenuADT : public wxMenu { private: protected: virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();}; public: XABContactMenuADT(){}; ~XABContactMenuADT(){}; }; class XABContactMenu : public XABContactMenuADT { private: std::map MenuItems = {}; int MenuType = XABCONTACTMENU_MAIN; wxListCtrl *ContactListCtrl = NULL; wxWindow *WindowPtr = NULL; bool EnableAccountSettings = FALSE; bool SearchModeOnly = FALSE; void AppendMenuItem(wxString ObjectName, wxString MenuName, wxString MenuDescription, XABContactMenuID ItemID, wxItemKind ItemType); protected: void ProcessMenuItemClick(wxCommandEvent& event); public: XABContactMenu(XABContactMenuType MenuType); ~XABContactMenu(); void SetupPointersSearch(wxWindow* WindowPtrIn, wxListCtrl* ContactListCtrlIn, bool SearchModeOnlyIn); void SetupPointers(wxWindow* WindowPtrIn, wxListCtrl* ContactListCtrlIn, bool EnableAccountSettingsIn); wxMenu* MenuPointer(); }; #endif