small improvements, worst code
This commit is contained in:
115
tc.preset.js
115
tc.preset.js
@@ -193,14 +193,9 @@ function draw_slot(id, scale, cont) {
|
|||||||
} else {
|
} else {
|
||||||
cont.set_source_rgba(empty_slot_color);
|
cont.set_source_rgba(empty_slot_color);
|
||||||
}
|
}
|
||||||
cont.rectangle_rounded(bg_txt_pos_x, bg_txt_pos_y, bg_txt_dim_w, bg_txt_dim_h, 4, 4);
|
// cont.rectangle_rounded(bg_txt_pos_x, bg_txt_pos_y, bg_txt_dim_w, bg_txt_dim_h, 4, 4);
|
||||||
cont.fill();
|
|
||||||
|
|
||||||
|
|
||||||
// slot name
|
// slot name
|
||||||
if (1) {
|
|
||||||
|
|
||||||
// if (slots[id][4] != null) {
|
|
||||||
var text = id;
|
var text = id;
|
||||||
// If slot is locked, add brackets around its number
|
// If slot is locked, add brackets around its number
|
||||||
if (slots[id][5] == 1) {
|
if (slots[id][5] == 1) {
|
||||||
@@ -211,23 +206,37 @@ function draw_slot(id, scale, cont) {
|
|||||||
text += ': ' + slots[id][4];
|
text += ': ' + slots[id][4];
|
||||||
}
|
}
|
||||||
|
|
||||||
text = text.toString();
|
draw_text_bubble(bg_txt_pos_x, bg_txt_pos_y, bg_txt_dim_w, bg_txt_dim_h, text, cont);
|
||||||
var text_dim = cont.text_measure(text);
|
// cont.fill();
|
||||||
|
|
||||||
var txt_pos_x = margin + slot_size + 2 * spacing;
|
|
||||||
var txt_pos_y = bg_txt_pos_y + (bg_txt_dim_h - spacing + text_dim[1]) / 2 ;
|
|
||||||
|
|
||||||
cont.set_source_rgba(text_color);
|
// // slot name
|
||||||
cont.move_to(txt_pos_x, txt_pos_y);
|
// var text = id;
|
||||||
cont.show_text(text.toString());
|
// // If slot is locked, add brackets around its number
|
||||||
}
|
// if (slots[id][5] == 1) {
|
||||||
|
// text = '[' + text + ']';
|
||||||
|
// }
|
||||||
|
// // If slot has a name, append it to the preset name
|
||||||
|
// if (slots[id][4] != null) {
|
||||||
|
// text += ': ' + slots[id][4];
|
||||||
|
// }
|
||||||
|
|
||||||
|
// text = text.toString();
|
||||||
|
// var text_dim = cont.text_measure(text);
|
||||||
|
|
||||||
|
// var txt_pos_x = margin + slot_size + 2 * spacing;
|
||||||
|
// var txt_pos_y = bg_txt_pos_y + (bg_txt_dim_h - spacing + text_dim[1]) / 2 ;
|
||||||
|
|
||||||
|
// cont.set_source_rgba(text_color);
|
||||||
|
// cont.move_to(txt_pos_x, txt_pos_y);
|
||||||
|
// cont.show_text(text.toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
draw_slot.local = 1;
|
draw_slot.local = 1;
|
||||||
|
|
||||||
function draw_slot_bubble (x, y, w, h, cont) {
|
function draw_slot_bubble(x, y, w, h, cont) {
|
||||||
cont = typeof cont !== 'undefined' ? cont : mgraphics;
|
cont = typeof cont !== 'undefined' ? cont : mgraphics;
|
||||||
|
|
||||||
// I assume rectange is faster to draw than rectangle_rounded. Btw rectangle_rounded is wacky when showing interpolation. Maybe *interp on the first slot_round could solve this?
|
// I assume rectange is faster to draw than rectangle_rounded. Btw rectangle_rounded is wacky when showing interpolation. Maybe *interp on the first slot_round could solve this?
|
||||||
@@ -239,6 +248,33 @@ function draw_slot_bubble (x, y, w, h, cont) {
|
|||||||
}
|
}
|
||||||
draw_slot_bubble.local = 1;
|
draw_slot_bubble.local = 1;
|
||||||
|
|
||||||
|
function draw_text_bubble(x, y, w, h, text, cont) {
|
||||||
|
cont = typeof cont !== 'undefined' ? cont : mgraphics;
|
||||||
|
// slot text background
|
||||||
|
// var bg_txt_pos_x = margin + slot_size + spacing;
|
||||||
|
// var bg_txt_pos_y = slots[id][1];
|
||||||
|
// var bg_txt_dim_w = ui_width - (2*margin + slot_size + spacing);
|
||||||
|
// var bg_txt_dim_h = slot_size;
|
||||||
|
|
||||||
|
// if (slots[id][4] != null) {
|
||||||
|
// cont.set_source_rgba(stored_slot_color);
|
||||||
|
// } else {
|
||||||
|
// cont.set_source_rgba(empty_slot_color);
|
||||||
|
// }
|
||||||
|
cont.rectangle_rounded(x, y, w, h, 4, 4);
|
||||||
|
cont.fill();
|
||||||
|
|
||||||
|
text = text.toString();
|
||||||
|
var text_dim = cont.text_measure(text);
|
||||||
|
|
||||||
|
var txt_pos_x = margin + slot_size + 2 * spacing;
|
||||||
|
var txt_pos_y = y + (h - spacing + text_dim[1]) / 2 ;
|
||||||
|
|
||||||
|
cont.set_source_rgba(text_color);
|
||||||
|
cont.move_to(txt_pos_x, txt_pos_y);
|
||||||
|
cont.show_text(text.toString());
|
||||||
|
}
|
||||||
|
|
||||||
function paint_base() {
|
function paint_base() {
|
||||||
// We draw all slots (empty and stored ones) so we don't have to for every redraw
|
// We draw all slots (empty and stored ones) so we don't have to for every redraw
|
||||||
|
|
||||||
@@ -256,6 +292,7 @@ function paint_base() {
|
|||||||
|
|
||||||
// All slots
|
// All slots
|
||||||
for (var i = 1; i <= slots_count_display; i++) {
|
for (var i = 1; i <= slots_count_display; i++) {
|
||||||
|
if (i != drag_slot) { //We mask the slot that is currently dragged as it is drawn at the mouse position already
|
||||||
if (slots[i][4] != null) {
|
if (slots[i][4] != null) {
|
||||||
set_source_rgba(stored_slot_color);
|
set_source_rgba(stored_slot_color);
|
||||||
} else {
|
} else {
|
||||||
@@ -264,6 +301,7 @@ function paint_base() {
|
|||||||
draw_slot(i, 1, mg);
|
draw_slot(i, 1, mg);
|
||||||
// fill();
|
// fill();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if (layout == 0) {
|
// if (layout == 0) {
|
||||||
// for (var i = 1; i <= slots_count_display; i++) {
|
// for (var i = 1; i <= slots_count_display; i++) {
|
||||||
@@ -307,7 +345,7 @@ function paint()
|
|||||||
set_line_width(1);
|
set_line_width(1);
|
||||||
|
|
||||||
// Active slot
|
// Active slot
|
||||||
if (active_slot > 0 && active_slot <= slots_count_display) {
|
if (active_slot > 0 && active_slot <= slots_count_display && is_dragging == 0) {
|
||||||
set_source_rgba(active_slot_color);
|
set_source_rgba(active_slot_color);
|
||||||
draw_slot_bubble(slots[active_slot][0], slots[active_slot][1], slot_size, slot_size);
|
draw_slot_bubble(slots[active_slot][0], slots[active_slot][1], slot_size, slot_size);
|
||||||
fill();
|
fill();
|
||||||
@@ -340,11 +378,13 @@ function paint()
|
|||||||
if (shift_hold) {
|
if (shift_hold) {
|
||||||
if (option_hold) {
|
if (option_hold) {
|
||||||
// About to delete
|
// About to delete
|
||||||
|
post("about to delete\n");
|
||||||
set_source_rgba(empty_slot_color[0], empty_slot_color[1], empty_slot_color[2], 0.8);
|
set_source_rgba(empty_slot_color[0], empty_slot_color[1], empty_slot_color[2], 0.8);
|
||||||
draw_slot_bubble(slots[last_hovered][0] + 1, slots[last_hovered][1] + 1, slot_size-2, slot_size-2);
|
draw_slot_bubble(slots[last_hovered][0] + 1, slots[last_hovered][1] + 1, slot_size-2, slot_size-2);
|
||||||
fill();
|
fill();
|
||||||
} else {
|
} else {
|
||||||
// About to store
|
// About to store
|
||||||
|
post("about to stàre\n");
|
||||||
set_source_rgba(active_slot_color[0], active_slot_color[1], active_slot_color[2], 0.7);
|
set_source_rgba(active_slot_color[0], active_slot_color[1], active_slot_color[2], 0.7);
|
||||||
draw_slot_bubble(slots[last_hovered][0] + 1, slots[last_hovered][1] + 1, slot_size-2, slot_size-2);
|
draw_slot_bubble(slots[last_hovered][0] + 1, slots[last_hovered][1] + 1, slot_size-2, slot_size-2);
|
||||||
fill();
|
fill();
|
||||||
@@ -400,6 +440,7 @@ function paint()
|
|||||||
|
|
||||||
// Drag slot
|
// Drag slot
|
||||||
if (is_dragging) {
|
if (is_dragging) {
|
||||||
|
if (layout == 0) {
|
||||||
translate(last_x, last_y );
|
translate(last_x, last_y );
|
||||||
rotate(0.15);
|
rotate(0.15);
|
||||||
scale(1.1, 1.1);
|
scale(1.1, 1.1);
|
||||||
@@ -413,9 +454,35 @@ function paint()
|
|||||||
}
|
}
|
||||||
draw_slot_bubble( 2-slot_size/2, 2-slot_size/2, slot_size, slot_size);
|
draw_slot_bubble( 2-slot_size/2, 2-slot_size/2, slot_size, slot_size);
|
||||||
fill();
|
fill();
|
||||||
set_source_rgba(stored_slot_color);
|
set_source_rgba(active_slot_color);
|
||||||
draw_slot_bubble( -slot_size/2, -slot_size/2, slot_size, slot_size);
|
draw_slot_bubble( -slot_size/2, -slot_size/2, slot_size, slot_size);
|
||||||
fill();
|
fill();
|
||||||
|
} else {
|
||||||
|
translate(last_x, last_y );
|
||||||
|
// rotate(0.15);
|
||||||
|
set_source_rgba(active_slot_color);
|
||||||
|
|
||||||
|
draw_slot_bubble( -slot_size/2, -slot_size/2, slot_size, slot_size);
|
||||||
|
fill();
|
||||||
|
// slot name
|
||||||
|
var text = drag_slot;
|
||||||
|
// If slot is locked, add brackets around its number
|
||||||
|
if (slots[drag_slot][5] == 1) {
|
||||||
|
text = '[' + text + ']';
|
||||||
|
}
|
||||||
|
// If slot has a name, append it to the preset name
|
||||||
|
if (slots[drag_slot][4] != null) {
|
||||||
|
text += ': ' + slots[drag_slot][4];
|
||||||
|
}
|
||||||
|
var bg_txt_pos_x = slot_size/2+ spacing;
|
||||||
|
var bg_txt_pos_y = -slot_size/2;
|
||||||
|
var bg_txt_dim_w = ui_width - (2*margin + slot_size + spacing);
|
||||||
|
var bg_txt_dim_h = slot_size;
|
||||||
|
set_source_rgba(stored_slot_color);
|
||||||
|
draw_text_bubble(bg_txt_pos_x, bg_txt_pos_y, bg_txt_dim_w, bg_txt_dim_h, text);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -792,8 +859,8 @@ function onidle(x,y,but,cmd,shift,capslock,option,ctrl)
|
|||||||
var cur = get_slot_index(x, y - y_offset);
|
var cur = get_slot_index(x, y - y_offset);
|
||||||
if (cur != last_hovered) {
|
if (cur != last_hovered) {
|
||||||
last_hovered = cur;
|
last_hovered = cur;
|
||||||
mgraphics.redraw();
|
|
||||||
}
|
}
|
||||||
|
mgraphics.redraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onidle.local = 1;
|
onidle.local = 1;
|
||||||
@@ -838,6 +905,7 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
|
|||||||
if (dist_from_start > 10) {
|
if (dist_from_start > 10) {
|
||||||
is_dragging = 1;
|
is_dragging = 1;
|
||||||
drag_slot = last_hovered;
|
drag_slot = last_hovered;
|
||||||
|
paint_base();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (is_dragging == 1) {
|
} else if (is_dragging == 1) {
|
||||||
@@ -873,16 +941,19 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
|
|||||||
if (drag_slot_lock) {
|
if (drag_slot_lock) {
|
||||||
lock(last_hovered, 1);
|
lock(last_hovered, 1);
|
||||||
}
|
}
|
||||||
|
is_dragging = 0;
|
||||||
|
drag_slot = -1;
|
||||||
paint_base();
|
paint_base();
|
||||||
outlet(0, "drag", drag_slot, last_hovered, offset);
|
outlet(0, "drag", drag_slot, last_hovered, offset);
|
||||||
set_active_slot(last_hovered);
|
set_active_slot(last_hovered);
|
||||||
is_dragging = 0;
|
|
||||||
trigger_writeagain();
|
trigger_writeagain();
|
||||||
|
|
||||||
} else {
|
} else { // Drag released but not somewhere we can throw a slot in
|
||||||
is_dragging = 0;
|
is_dragging = 0;
|
||||||
mgraphics.redraw();
|
drag_slot = -1;
|
||||||
|
paint_base();
|
||||||
|
// mgraphics.redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@@ -918,13 +918,13 @@
|
|||||||
}
|
}
|
||||||
, {
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
"bubblesize" : 30,
|
"bubblesize" : 20,
|
||||||
"id" : "obj-4",
|
"id" : "obj-4",
|
||||||
"maxclass" : "preset",
|
"maxclass" : "preset",
|
||||||
"numinlets" : 1,
|
"numinlets" : 1,
|
||||||
"numoutlets" : 5,
|
"numoutlets" : 5,
|
||||||
"outlettype" : [ "preset", "int", "preset", "int", "" ],
|
"outlettype" : [ "preset", "int", "preset", "int", "" ],
|
||||||
"patching_rect" : [ 72.0, 941.0, 248.0, 87.0 ],
|
"patching_rect" : [ 72.0, 941.0, 364.0, 126.0 ],
|
||||||
"pattrstorage" : "test"
|
"pattrstorage" : "test"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -944,7 +944,7 @@
|
|||||||
, {
|
, {
|
||||||
"box" : {
|
"box" : {
|
||||||
"border" : 0,
|
"border" : 0,
|
||||||
"embedstate" : [ [ "fontsize", 14 ], [ "displayinterp", 1 ], [ "fontname", "Arial" ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ], [ "scrollable", 1 ], [ "layout", 1 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "bubblesize", 20 ], [ "spacing", 4 ], [ "min_rows", 50 ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "autowriteagain", 0 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "ignoreslotzero", 1 ], [ "margin", 4 ], [ "slot_round", 0 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ] ],
|
"embedstate" : [ [ "fontsize", 14 ], [ "displayinterp", 1 ], [ "fontname", "Arial" ], [ "stored_slot_color", 0.502, 0.502, 0.502, 1 ], [ "scrollable", 1 ], [ "layout", 0 ], [ "interp_slot_color", 1, 1, 1, 0.8 ], [ "bubblesize", 20 ], [ "spacing", 4 ], [ "min_rows", 50 ], [ "text_bg_color", 1, 1, 1, 0.5 ], [ "autowriteagain", 0 ], [ "empty_slot_color", 0.349, 0.349, 0.349, 1 ], [ "bgcolor", 0.2, 0.2, 0.2, 1 ], [ "text_color", 0.129, 0.129, 0.129, 1 ], [ "ignoreslotzero", 1 ], [ "margin", 4 ], [ "slot_round", 0 ], [ "active_slot_color", 0.808, 0.898, 0.91, 1 ] ],
|
||||||
"filename" : "tc.preset.js",
|
"filename" : "tc.preset.js",
|
||||||
"id" : "obj-10",
|
"id" : "obj-10",
|
||||||
"jsarguments" : [ "test" ],
|
"jsarguments" : [ "test" ],
|
||||||
|
Reference in New Issue
Block a user