Mercurial > hg > forks > multipaint-js
changeset 145:5af8b5ddf349
Merge and clean up changes from v1.8.2018
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Aug 2018 13:12:43 +0300 |
parents | f91dda5dc8da |
children | bb1602f371d4 |
files | Interface.pde events.pde mpui.js multipaint.pde preview.pde |
diffstat | 5 files changed, 80 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/Interface.pde Tue Aug 14 13:11:33 2018 +0300 +++ b/Interface.pde Tue Aug 14 13:12:43 2018 +0300 @@ -434,6 +434,9 @@ boolean moicon(int xx, int yy, int ww, int hh) { + if (g_pgrab) + return false; + //check mouse/icon boundary without actually drawing the icon if (g_data[int('m')] == 0 && g_data[int('M')] == 0) { @@ -453,6 +456,9 @@ boolean doicon_drag(int xx, int yy, int ww, int hh) { + if (g_pgrab) + return false; + if (g_iconx >= xx && g_iconx < xx + ww && g_icony >= yy && g_icony < yy + hh) { g_iconx = -1; @@ -460,6 +466,7 @@ g_repanel = -2; return true; } + else if (g_piconx >= xx && g_piconx < xx + ww && g_picony >= yy && g_picony < yy + hh) { g_piconx = -1; @@ -473,6 +480,9 @@ boolean doicon(int xx, int yy, int ww, int hh) { + if (g_pgrab) + return false; + if (g_iconx >= xx && g_iconx < xx + ww && g_icony >= yy && g_icony < yy + hh) { g_iconx = -1; @@ -537,7 +547,7 @@ { String teks; - if (g_msgctr > 0) + if (g_msgctr > 0 || g_pgrab) return; clearmsg(); @@ -1287,6 +1297,13 @@ e_rect(0, 0, width - (g_hedge + g_uizoom * 2), height - (g_vedge + g_uizoom * 2), g_rgb[259]); } + if (g_pgrab) + { + // avoid preview window embarassment + e_rect(width - (g_hedge + g_uizoom * 2), 0, g_hedge + g_uizoom * 2 - 1, height - 1, g_rgb[263]); + e_rect(0, height - (g_vedge + g_uizoom * 2), width - 1, g_vedge + g_uizoom * 2 - 1, g_rgb[263]); + } + maxx--; mayy--; zonx = MX - magx();
--- a/events.pde Tue Aug 14 13:11:33 2018 +0300 +++ b/events.pde Tue Aug 14 13:12:43 2018 +0300 @@ -100,6 +100,12 @@ g_iconx = mouseX; g_icony = mouseY; + if (g_pgrab) + { + g_prevx = g_iconx + g_phandlex; + g_prevy = g_icony + g_phandley; + } + else if (insidewindow(g_iconx, g_icony)) { if (g_phase == 0) @@ -117,8 +123,11 @@ } else { - if (mouseButton == CENTER) return; - if (g_tooltrigger == 0) g_tooltrigger = 1; + if (mouseButton == CENTER) + return; + + if (g_tooltrigger == 0) + g_tooltrigger = 1; } g_iconx = -1; @@ -131,12 +140,25 @@ int msx, msy; g_dirty = true; + if (g_pgrab) + return; g_iconx = mouseX; g_icony = mouseY; g_button = mouseButton; g_realbutton = g_button; + if (g_preview == 1 && + g_iconx > g_prevx && g_icony > g_prevy && + g_iconx < g_prevx + X + 16 && g_icony < g_prevy + Y + 16) + { + g_pgrab = true; + g_button = 0; //important + g_realbutton = 0; + g_phandlex = g_prevx - g_iconx; + g_phandley = g_prevy - g_icony; + } + else if (insidewindow(g_iconx, g_icony)) { if (g_phase == 0) @@ -264,6 +286,9 @@ g_rubbermode = 0; refresh(); //needed otherwise the pen color is kept e.g. after right mousebutton } + + update_preview_window(); + g_pgrab = false; } @@ -290,6 +315,18 @@ if (ckey == '-') ckey = 'h'; if (ckey == '+') ckey = 'H'; + if (ckey == BACKSPACE) + { + message("Preview|on/off"); + + if (++g_preview > 1) + g_preview = 0; + + update_preview_window(); + refresh(); + g_boxreconstruct = 2; + } + if (ckey == TAB) { if (g_shift == false) { if (g_britemode == 1) { @@ -860,8 +897,9 @@ if (g_data[int('E')] == 1) { g_data[int('E')] = 0; - message("Export SRC|is disabled"); -/* + +// message("Export SRC|is disabled"); + message("Source|export"); String fname = (g_spare ? sfilename : filename) +"_"+ (g_spare ? "spare" : "main") +".asm"; MPWriteCtx ctx = new MPWriteCtx(); @@ -870,7 +908,6 @@ message("EXPORTED"); else message("COULD NOT|EXPORT"); -*/ } if (g_data[int('A')] == 1)
--- a/mpui.js Tue Aug 14 13:11:33 2018 +0300 +++ b/mpui.js Tue Aug 14 13:12:43 2018 +0300 @@ -16,6 +16,7 @@ var mpSources = [ "buffers.pde", + "preview.pde", "draw_inputs.pde", "draw_outputs.pde", "draw_smart.pde",
--- a/multipaint.pde Tue Aug 14 13:11:33 2018 +0300 +++ b/multipaint.pde Tue Aug 14 13:12:43 2018 +0300 @@ -1,5 +1,5 @@ // -// Multipaint Metal Edition 22.5.2017 +// Multipaint 1.8.2018 // Tero Heikkinen (Dr. TerrorZ) // ProcessingJS port and changes by Matti Hämäläinen (ccr/TNSP) // processing setup draw and file things here @@ -193,7 +193,7 @@ sussborder(); setup_raster(); - message("Multipaint|Metal|v22.5.2017"); + message(" Multipaint| 2018|| v1.8.2018"); message("*"); g_dirty = true; } @@ -469,12 +469,10 @@ g_msy = mouseY; // Actual tool drawing - if (g_tooltrigger == 1) - { - // comes from mousepressed, or mousedragged - if (g_mx <= width - g_hedge && g_my <= height - g_vedge) - do_tool(g_mx, g_my, g_button); - } + if (g_tooltrigger == 1 && + g_mx <= width - g_hedge && + g_my <= height - g_vedge) + do_tool(g_mx, g_my, g_button); switcher(0); @@ -498,6 +496,11 @@ loadPixels(); viewport(); switcher(1); + + if (g_pgrab) + preview_box_drag(); + + preview_window(); update_ui(false); updatePixels();
--- a/preview.pde Tue Aug 14 13:11:33 2018 +0300 +++ b/preview.pde Tue Aug 14 13:12:43 2018 +0300 @@ -6,7 +6,7 @@ int g_prevy = 0; int g_phandlex = 0; int g_phandley = 0; -int g_pgrab = 0; +boolean g_pgrab = false; final int g_pwindow_px = 16, g_pwindow_py = 16; int[] g_pwindow = new int[(320 + g_pwindow_px) * (256 + g_pwindow_py)]; @@ -14,13 +14,13 @@ void preview_window() { + if (g_preview == 0) + return; + int wix = X + 16; int ofx = g_prevx; int ofy = g_prevy; - if (g_preview == 0) - return; - for (int y = 0; y < Y + g_pwindow_py; y++) { int ad = (ofy + y) * width; @@ -47,15 +47,16 @@ void update_preview_window() //done at mousereleased { - int wix = X + 16; - if (g_preview == 0) return; + int wix = X + g_pwindow_px; + for (int y = 0; y < Y + g_pwindow_py; y++) for (int x = 0; x < X + g_pwindow_py; x++) { - if (y == 0 || y == Y + 15 || x == 0 || x == X + 15) + if (y == 0 || y == Y + g_pwindow_py - 1 || + x == 0 || x == X + g_pwindow_py - 1) g_pwindow[y * wix + x] = g_rgb[257]; else if (y < 8 || x < 8 || y >= Y + 8 || x >= X + 8)