lsnes/include/platform/wxwidgets/platform.hpp

89 lines
2.8 KiB
C++
Raw Normal View History

2012-01-06 17:28:01 +02:00
#ifndef _plat_wxwidgets__platform__hpp__included__
#define _plat_wxwidgets__platform__hpp__included__
#include "core/moviefile.hpp"
#include "core/window.hpp"
#include <cstdlib>
#include <cstdint>
#include <cstddef>
#include <wx/string.h>
class wxwin_mainwindow;
class wxwin_messages;
class wxwin_status;
class wxWindow;
class wxKeyEvent;
//Scaling
extern double horizontal_scale_factor;
extern double vertical_scale_factor;
extern int scaling_flags;
2012-01-06 17:28:01 +02:00
wxString towxstring(const std::string& str) throw(std::bad_alloc);
std::string tostdstring(const wxString& str) throw(std::bad_alloc);
void bring_app_foreground();
std::string pick_archive_member(wxWindow* parent, const std::string& filename) throw(std::bad_alloc);
void boot_emulator(loaded_rom& rom, moviefile& movie);
void handle_wx_keyboard(wxKeyEvent& e, bool polarity);
std::string map_keycode_to_key(int kcode);
2012-01-06 17:28:01 +02:00
void initialize_wx_keyboard();
void signal_program_exit();
2012-03-26 23:50:14 +03:00
void signal_resize_needed();
2012-01-06 17:28:01 +02:00
void _runuifun_async(void (*fn)(void*), void* arg);
2012-08-24 20:24:18 +03:00
void show_projectwindow(wxWindow* modwin);
void signal_core_change();
2012-01-06 17:28:01 +02:00
//Editor dialogs.
void wxeditor_authors_display(wxWindow* parent);
void wxeditor_hotkeys_display(wxWindow* parent);
2012-09-07 21:57:43 +03:00
void wxeditor_memorywatch_display(wxWindow* parent);
2012-09-08 20:29:44 +03:00
void wxeditor_subtitles_display(wxWindow* parent);
std::string wxeditor_keyselect(wxWindow* parent, bool clearable);
void wxsetingsdialog_display(wxWindow* parent, int mode);
2012-09-23 19:16:30 +03:00
void show_wxeditor_voicesub(wxWindow* parent);
2012-04-09 15:46:25 +03:00
void open_rom_select_window();
2012-01-06 17:28:01 +02:00
2012-01-15 16:50:08 +02:00
//Auxillary windows.
void wxwindow_memorysearch_display();
2012-01-06 17:28:01 +02:00
template<typename T>
void functor_call_helper2(void* args)
{
(*reinterpret_cast<T*>(args))();
delete reinterpret_cast<T*>(args);
}
template<typename T>
void runuifun(T fn)
{
2012-10-13 15:04:18 +03:00
_runuifun_async(functor_call_helper2<T>, new T(fn));
2012-01-06 17:28:01 +02:00
}
2012-01-20 16:44:53 +02:00
//Thrown by various dialog functions if canceled.
class canceled_exception : public std::runtime_error
{
public:
canceled_exception();
};
//Prompt for stuff. These all can throw canceled_exception.
std::string pick_file(wxWindow* parent, const std::string& title, const std::string& startdir, bool forsave);
2012-01-20 16:44:53 +02:00
std::string pick_file_member(wxWindow* parent, const std::string& title, const std::string& startdir);
std::string pick_among(wxWindow* parent, const std::string& title, const std::string& prompt,
const std::vector<std::string>& choices);
std::string pick_text(wxWindow* parent, const std::string& title, const std::string& prompt,
const std::string& dflt = "", bool multiline = false);
//Show message box with OK button.
void show_message_ok(wxWindow* parent, const std::string& title, const std::string& text, int icon);
2012-01-06 17:28:01 +02:00
//Some important windows (if open).
extern wxwin_messages* msg_window;
extern wxwin_mainwindow* main_window;
extern std::string our_rom_name;
2012-09-19 12:13:08 +03:00
extern bool wxwidgets_exiting;
2012-01-06 17:28:01 +02:00
#endif