1 // XABContactMenu.cpp - XABContactMenu widget header
3 // (c) 2012-2015 Xestia Software Development.
5 // This file is part of Xestia Address Book.
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #ifndef __WIDGETS_XABCONTACTMENU__
20 #define __WIDGETS_XABCONTACTMENU__
25 #include <wx/listctrl.h>
28 enum XABContactMenuID {
29 ID_CONTACTMENU_OPEN = 1,
32 ID_CONTACTMENU_DELETE,
33 ID_CONTACTMENU_REFRESHAB,
34 ID_CONTACTMENU_REVEAL,
35 ID_CONTACTMENU_SEPARATOR
38 enum XABContactMenuType {
43 class XABContactMenuADT : public wxMenu
49 virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();};
51 XABContactMenuADT(){};
52 ~XABContactMenuADT(){};
56 class XABContactMenu : public XABContactMenuADT
59 std::map<std::string, wxMenuItem*> MenuItems = {};
60 int MenuType = XABCONTACTMENU_MAIN;
61 wxListCtrl *ContactListCtrl = NULL;
62 wxWindow *WindowPtr = NULL;
63 bool EnableAccountSettings = FALSE;
64 bool SearchModeOnly = FALSE;
65 void AppendMenuItem(wxString ObjectName,
67 wxString MenuDescription,
68 XABContactMenuID ItemID,
71 void ProcessMenuItemClick(wxCommandEvent& event);
73 XABContactMenu(XABContactMenuType MenuType);
75 void SetupPointersSearch(wxWindow* WindowPtrIn,
76 wxListCtrl* ContactListCtrlIn,
77 bool SearchModeOnlyIn);
78 void SetupPointers(wxWindow* WindowPtrIn,
79 wxListCtrl* ContactListCtrlIn,
80 bool EnableAccountSettingsIn);
81 wxMenu* MenuPointer();