#ifndef __WIDGETS_XABCONTACTMENU__ #define __WIDGETS_XABCONTACTMENU__ #include #include #include #include #include enum { 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; void AppendMenuItem(wxString ObjectName, wxString MenuName, wxString MenuDescription, int ItemID, wxItemKind ItemType); protected: void ProcessMenuItemClick(wxCommandEvent& event); public: XABContactMenu(int MenuType); ~XABContactMenu(); void SetupPointers(wxWindow* WindowPtrIn, wxListCtrl* ContactListCtrlIn); void SetupPointers(wxWindow* WindowPtrIn, wxListCtrl* ContactListCtrlIn, bool EnableAccountSettingsIn); wxMenu* MenuPointer(); }; #endif