lsnes/include/platform/wxwidgets/menu_tracelog.hpp
2014-02-12 15:57:33 +02:00

30 lines
748 B
C++

#ifndef _plat_wxwidgets__menu_tracelog__hpp__included__
#define _plat_wxwidgets__menu_tracelog__hpp__included__
#include "core/dispatch.hpp"
#include <wx/string.h>
#include <wx/wx.h>
#include <map>
#include <set>
#include <vector>
class tracelog_menu : public wxMenu
{
public:
tracelog_menu(wxWindow* win, int wxid_low, int wxid_high);
~tracelog_menu();
void on_select(wxCommandEvent& e);
void update();
bool any_enabled();
void set_disabler(std::function<void(bool enabled)> fn) { disabler_fn = fn; }
private:
struct dispatch::target<> corechange;
wxWindow* pwin;
int wxid_range_low;
int wxid_range_high;
std::vector<wxMenuItem*> items;
std::map<int, std::string> cpunames;
std::function<void(bool enabled)> disabler_fn;
};
#endif