From f54a1cc56c1cd274410626f439e5396f05767568 Mon Sep 17 00:00:00 2001 From: Aayush <suranaaayush98@gmail.com> Date: Mon, 19 Aug 2019 23:24:52 +0530 Subject: [PATCH] updated input handling in ascii->pd --- pd/nw/pd_canvas.js | 2 +- pd/nw/pdgui.js | 19 +++++++++++++++++++ pd/src/m_glob.c | 8 ++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/pd/nw/pd_canvas.js b/pd/nw/pd_canvas.js index 015280a6a..667037883 100644 --- a/pd/nw/pd_canvas.js +++ b/pd/nw/pd_canvas.js @@ -800,7 +800,7 @@ var canvas_events = (function() { ascii_art: function() { set_edit_menu_modals(false); canvas_events.none(); - document.addEventListener("keyup", events.check_ascii_art_state, false); + document.getElementById("ascii_art_text_area").addEventListener("input", events.check_ascii_art_state); state = "ascii_art"; }, register: function(n) { diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js index 41f9ca713..3039a3b9c 100644 --- a/pd/nw/pdgui.js +++ b/pd/nw/pdgui.js @@ -1167,6 +1167,25 @@ function menu_quit() { exports.menu_quit = menu_quit; +function ascii_entry_callback(textarea_state) +{ + var ascii_art = w.document.getElementById("ascii_art"), + ascii_art_text_area = w.document.getElementById("ascii_art_text_area"); + + if (textarea_state == 1) { + alert("hi"); + ascii_art.style.setProperty("display", "inline"); + ascii_art_text_area.focus(); + ascii_art_text_area.select(); + w.canvas_events.ascii_art(); + } else { + ascii_art_text_area.value = "write your ascii art here"; + ascii_art.style.setProperty("display", "none"); + w.canvas_events[canvas_events.get_previous_state()](); + } + +} + var nw_app_quit; function app_quit() { diff --git a/pd/src/m_glob.c b/pd/src/m_glob.c index b3ed14c9f..6fe7253eb 100644 --- a/pd/src/m_glob.c +++ b/pd/src/m_glob.c @@ -101,6 +101,12 @@ static void glob_gui_properties(t_pd *dummy) sys_autopatch_yoffset); } +//To enter or show ascii_art +extern void glob_ascii_entry(int textarea_state) +{ + gui_vmess("ascii_entry_callback", textarea_state); +} + // ths one lives inside g_editor so that it can access the clipboard extern void glob_clipboard_text(t_pd *dummy, float f); @@ -193,6 +199,8 @@ void glob_init(void) gensym("add-recent-file"), A_SYMBOL, 0); class_addmethod(glob_pdobject, (t_method)glob_clear_recent_files, gensym("clear-recent-files"), 0); + class_addmethod(glob_pdobject, (t_method)glob_ascii_entry, + gensym("toggle-ascii-entry"), 0); #ifdef UNIX class_addmethod(glob_pdobject, (t_method)glob_watchdog, gensym("watchdog"), 0); -- GitLab