From aed90478582e9b90119b43ef67273f8d527a44b5 Mon Sep 17 00:00:00 2001 From: Aayush <suranaaayush98@gmail.com> Date: Wed, 21 Aug 2019 22:36:40 +0530 Subject: [PATCH] fixed bugs in ascii_art->pd --- pd/nw/pd_ascii_art.js | 11 +++++++---- pd/nw/pd_canvas.js | 2 ++ pd/nw/pdgui.js | 31 ++++++++++++++++--------------- pd/src/g_editor.c | 9 +++++++++ pd/src/m_glob.c | 8 -------- 5 files changed, 34 insertions(+), 27 deletions(-) diff --git a/pd/nw/pd_ascii_art.js b/pd/nw/pd_ascii_art.js index 439694753..1eb4b5eea 100644 --- a/pd/nw/pd_ascii_art.js +++ b/pd/nw/pd_ascii_art.js @@ -10,11 +10,14 @@ function INDEX(x, y){ function tracking_connection(curr_row, curr_col, next_row, next_col , string_array ,visited_array) { var next_character,curr_character,end_index; - curr_character = string_array[curr_row][curr_col]; - next_character = string_array[next_row][next_col]; - - if (visited_array[next_row][next_col] == 0) { + if(next_row >= string_array.length || next_col > string_array[next_row].length ) { + end_index=new INDEX(next_row,next_col); + } + else if (visited_array[next_row][next_col] == 0) { + curr_character = string_array[curr_row][curr_col]; + next_character = string_array[next_row][next_col]; + visited_array[next_row][next_col] = 1; switch(next_character) { diff --git a/pd/nw/pd_canvas.js b/pd/nw/pd_canvas.js index 667037883..4fe1c8288 100644 --- a/pd/nw/pd_canvas.js +++ b/pd/nw/pd_canvas.js @@ -1615,10 +1615,12 @@ function nw_create_patch_window_menus(gui, w, name) { ascii_art_text_area.focus(); ascii_art_text_area.select(); canvas_events.ascii_art(); + //pdgui.pdsend(name,"ascii-entry",1); } else { ascii_art_text_area.value = "write your ascii art here"; ascii_art.style.setProperty("display", "none"); canvas_events[canvas_events.get_previous_state()](); + //pdgui.pdsend(name,"ascii-entry",0); } } }); diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js index 3039a3b9c..05773165a 100644 --- a/pd/nw/pdgui.js +++ b/pd/nw/pdgui.js @@ -1167,25 +1167,26 @@ function menu_quit() { exports.menu_quit = menu_quit; -function ascii_entry_callback(textarea_state) +function ascii_entry(cid,textarea_state) { - var ascii_art = w.document.getElementById("ascii_art"), + gui(cid).get_elem("ascii_art", function(w) { + 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()](); - } - + if (textarea_state == 1) { + 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[w.canvas_events.get_previous_state()](); + } + }); } +exports.ascii_entry = ascii_entry; + var nw_app_quit; function app_quit() { diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index 92f03ded8..91e61c70f 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -44,6 +44,7 @@ static int clipboard_istext = 0; static t_glist *glist_finddirty(t_glist *x); static void canvas_reselect(t_canvas *x); static void canvas_cut(t_canvas *x); +static void canvas_ascii_entry(t_canvas *x,t_float textarea_state); static int paste_xyoffset = 0; /* a counter of pastes to make x,y offsets */ //static void canvas_mouseup_gop(t_canvas *x, t_gobj *g); void canvas_done_popup(t_canvas *x, t_float which, t_float xpos, @@ -170,6 +171,12 @@ static void canvas_nlet_conf (t_canvas *x, int type) { 1); } +static void canvas_ascii_entry(t_canvas *x, t_float textarea_state) +{ + gui_vmess("ascii_entry","xi", + x, + textarea_state); +} void canvas_getscroll (t_canvas *x) { //sys_vgui("pdtk_canvas_getscroll .x%lx.c\n",(long)x); gui_vmess("gui_canvas_get_scroll", "x", x); @@ -7716,6 +7723,8 @@ void g_editor_setup(void) gensym("copyfromexternalbuffer"), A_GIMME, A_NULL); class_addmethod(canvas_class, (t_method)canvas_reset_copyfromexternalbuffer, gensym("reset_copyfromexternalbuffer"), A_NULL); + class_addmethod(canvas_class, (t_method)canvas_ascii_entry, + gensym("ascii-entry"), A_FLOAT, A_NULL); /* -------------- connect method used in reading files ------------------ */ class_addmethod(canvas_class, (t_method)canvas_connect, gensym("connect"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_NULL); diff --git a/pd/src/m_glob.c b/pd/src/m_glob.c index 6fe7253eb..b3ed14c9f 100644 --- a/pd/src/m_glob.c +++ b/pd/src/m_glob.c @@ -101,12 +101,6 @@ 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); @@ -199,8 +193,6 @@ 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