diff options
author | 2019-07-19 07:47:24 -0400 | |
---|---|---|
committer | 2019-07-19 09:29:23 -0400 | |
commit | 3aa9ee49927cd39b1dd7c06eaa1f4851ebf69b08 (patch) | |
tree | 7c509da5184cc10023248ad6db25fed6af704c7b | |
parent | a0ca0e8e7d2ba3f9c86436bb025a2db7f35cc5e6 (diff) |
Moving paste() from mame_ui_manager class to natural_keyboard class,
exposing to LUA
-rw-r--r-- | src/emu/natkeyboard.cpp | 21 | ||||
-rw-r--r-- | src/emu/natkeyboard.h | 1 | ||||
-rw-r--r-- | src/frontend/mame/luaengine.cpp | 1 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.cpp | 23 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.h | 1 |
5 files changed, 24 insertions, 23 deletions
diff --git a/src/emu/natkeyboard.cpp b/src/emu/natkeyboard.cpp index 9a50109eb6f..3851d98719e 100644 --- a/src/emu/natkeyboard.cpp +++ b/src/emu/natkeyboard.cpp @@ -565,6 +565,27 @@ void natural_keyboard::post_coded(const char *text, size_t length, const attotim //------------------------------------------------- +// paste - does a paste from the keyboard +//------------------------------------------------- + +void natural_keyboard::paste() +{ + // retrieve the clipboard text + char *text = osd_get_clipboard_text(); + + // was a result returned? + if (text != nullptr) + { + // post the text + post_utf8(text); + + // free the string + free(text); + } +} + + +//------------------------------------------------- // build_codes - given an input port table, create // an input code table useful for mapping unicode // chars diff --git a/src/emu/natkeyboard.h b/src/emu/natkeyboard.h index aa29bf4503c..b90eeb9d88e 100644 --- a/src/emu/natkeyboard.h +++ b/src/emu/natkeyboard.h @@ -54,6 +54,7 @@ public: void post(const char32_t *text, size_t length = 0, const attotime &rate = attotime::zero); void post_utf8(const char *text, size_t length = 0, const attotime &rate = attotime::zero); void post_coded(const char *text, size_t length = 0, const attotime &rate = attotime::zero); + void paste(); // debugging void dump(std::ostream &str) const; diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index fb42192da11..1ded924ccfa 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -766,6 +766,7 @@ void lua_engine::initialize() emu["romname"] = [this](){ return machine().basename(); }; emu["softname"] = [this]() { return machine().options().software_name(); }; emu["keypost"] = [this](const char *keys){ machine().ioport().natkeyboard().post_utf8(keys); }; + emu["paste"] = [this](){ machine().ioport().natkeyboard().paste(); }; emu["time"] = [this](){ return machine().time().as_double(); }; emu["start"] = [this](const char *driver) { int i = driver_list::find(driver); diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp index 62b84281b02..867a7b8bbf8 100644 --- a/src/frontend/mame/ui/ui.cpp +++ b/src/frontend/mame/ui/ui.cpp @@ -905,27 +905,6 @@ bool mame_ui_manager::can_paste() //------------------------------------------------- -// paste - does a paste from the keyboard -//------------------------------------------------- - -void mame_ui_manager::paste() -{ - // retrieve the clipboard text - char *text = osd_get_clipboard_text(); - - // was a result returned? - if (text != nullptr) - { - // post the text - machine().ioport().natkeyboard().post_utf8(text); - - // free the string - free(text); - } -} - - -//------------------------------------------------- // draw_fps_counter //------------------------------------------------- @@ -1105,7 +1084,7 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container) { // paste command if (machine().ui_input().pressed(IPT_UI_PASTE)) - paste(); + machine().ioport().natkeyboard().paste(); } image_handler_ingame(); diff --git a/src/frontend/mame/ui/ui.h b/src/frontend/mame/ui/ui.h index 64189344dcb..e54adc80f06 100644 --- a/src/frontend/mame/ui/ui.h +++ b/src/frontend/mame/ui/ui.h @@ -223,7 +223,6 @@ public: void show_mouse(bool status); virtual bool is_menu_active() override; bool can_paste(); - void paste(); void image_handler_ingame(); void increase_frameskip(); void decrease_frameskip(); |