#ifndef _plat_wxwidgets__menu_recent__hpp__included__ #define _plat_wxwidgets__menu_recent__hpp__included__ #include #include #include "library/recentfiles.hpp" #include template class recent_menu : public wxMenu { public: recent_menu(wxWindow* win, int wxid_low, int wxid_high, const std::string& cfg, void (*cb)(const T& name)) __attribute__((noinline)); void on_select(wxCommandEvent& e); void update(); void add(const T& file); private: class rhook : public recent_files_hook { public: rhook(recent_menu& _pmenu) : pmenu(_pmenu) {} ~rhook() {} void operator()() { pmenu.update(); } private: recent_menu& pmenu; } hook; recent_files rfiles; wxWindow* pwin; std::map entries; std::map items; int wxid_range_low; int wxid_range_high; void (*callback)(const T& name); }; #endif