Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
95092a74118a49b733643893db0e5d16f9bf11a5
[xestiaab/.git] / source / widgets / XABContactMenu.h
1 // XABContactMenu.cpp - XABContactMenu widget header
2 //
3 // (c) 2012-2015 Xestia Software Development.
4 //
5 // This file is part of Xestia Address Book.
6 //
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.
10 //
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.
15 //
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__
22 #include <map>
23 #include <string>
24 #include <wx/wx.h>
25 #include <wx/listctrl.h>
26 #include <wx/app.h>
28 enum XABContactMenuID {
29     ID_CONTACTMENU_OPEN = 1,
30     ID_CONTACTMENU_NEW,
31     ID_CONTACTMENU_EDIT,
32     ID_CONTACTMENU_DELETE,
33     ID_CONTACTMENU_REFRESHAB,
34     ID_CONTACTMENU_REVEAL,
35     ID_CONTACTMENU_SEPARATOR
36 };
38 enum XABContactMenuType {
39         XABCONTACTMENU_MAIN,
40         XABCONTACTMENU_SEARCH
41 };
43 class XABContactMenuADT : public wxMenu
44 {
46         private:
47                 
48         protected:
49                 virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();};
50         public:
51                 XABContactMenuADT(){};
52                 ~XABContactMenuADT(){};
54 };
56 class XABContactMenu : public XABContactMenuADT
57 {
58         private:
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,
66                         wxString MenuName, 
67                         wxString MenuDescription,
68                         XABContactMenuID ItemID,
69                         wxItemKind ItemType);
70         protected:
71                 void ProcessMenuItemClick(wxCommandEvent& event);
72         public:
73                 XABContactMenu(XABContactMenuType MenuType);
74                 ~XABContactMenu();
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();
82                 
83 };
85 #endif
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