Browse Source

autoresize, passthrough

main
TFLCL 4 months ago
parent
commit
3a03e6419f
  1. 38
      tc.preset.js

38
tc.preset.js

@ -37,7 +37,7 @@ mgraphics.relative_coords = 0;
mgraphics.autofill = 0; mgraphics.autofill = 0;
// LOOK // LOOK
var slot_size = 20; var slot_size = 14;
var slot_round = 0; var slot_round = 0;
var slot_round_ratio = 0; var slot_round_ratio = 0;
@ -108,6 +108,12 @@ var drag_slot = -1; // Stores the slot that's being dragged
var has_loaded = false; var has_loaded = false;
// RESIZING
// 64x64 is the default jsui size. We use that to know if the object has just been created,
// in which case we resize it to a more convenient size to start with.
if (ui_width == 64 && ui_height == 64) {
box.setboxattr("patching_rect", box.rect[0], box.rect[1], 130, 58);
}
// Allows for dynamic resizing even in presentation mode (addressing the limitation of onresize()) // Allows for dynamic resizing even in presentation mode (addressing the limitation of onresize())
var pres_rect = new MaxobjListener(this.box,"presentation_rect",get_prect); var pres_rect = new MaxobjListener(this.box,"presentation_rect",get_prect);
function get_prect(prect) { function get_prect(prect) {
@ -118,9 +124,9 @@ if (jsarguments.length>1) { // Depreciated, use "pattrstorage" attribute instead
pattrstorage_name = jsarguments[1]; pattrstorage_name = jsarguments[1];
} }
// FUNCTIONS
function loadbang() { function loadbang() {
has_loaded = true; has_loaded = true;
post("loadbang\n");
outlet(2, "set"); outlet(2, "set");
find_pattrstorage(pattrstorage_name); find_pattrstorage(pattrstorage_name);
calc_rows_columns(); calc_rows_columns();
@ -313,13 +319,12 @@ paint_base.local = 1;
function paint() function paint()
{ {
// post("redraw\n");
// Handling Presentation mode enable/disable // Handling Presentation mode enable/disable
var cur_size = mgraphics.size; var cur_size = mgraphics.size;
if (cur_size[0] != ui_width || cur_size[1] != ui_height) { if (cur_size[0] != ui_width || cur_size[1] != ui_height) {
onresize(cur_size[0], cur_size[1]); onresize(cur_size[0], cur_size[1]);
} else { } else {
// post("redraw\n");
with (mgraphics) { with (mgraphics) {
select_font_face(font_name); select_font_face(font_name);
set_font_size(font_size); set_font_size(font_size);
@ -565,6 +570,17 @@ function anything() {
trigger_writeagain(); trigger_writeagain();
} }
} }
} else {
// Passthrough to pattrstorage
var args = arrayfromargs(arguments);
args.unshift(messagename);
to_pattrstorage.apply(null, args);
// If the called function messes with presets, we resync the jsui
var mess_with_presets = ['insert', 'lockall', 'read', 'readagain', 'remove', 'renumber'];
if (mess_with_presets.indexOf(messagename) > -1 ) {
resync();
}
} }
} }
@ -809,7 +825,11 @@ function read() {
function resync() { function resync() {
set_active_slot(0); set_active_slot(0);
slots_clear();
to_pattrstorage("getslotlist");
to_pattrstorage("getlockedslots");
calc_rows_columns(); calc_rows_columns();
} }
function find_pattrstorage(name) { function find_pattrstorage(name) {
@ -893,11 +913,12 @@ function update_umenu() {
outlet(1, "clear"); outlet(1, "clear");
for (var i=0; i < filled_slots.length; i++) { for (var i=0; i < filled_slots.length; i++) {
var txt = filled_slots[i].toString(); var nb = filled_slots[i];
var txt = null;
if (!menu_number_only) { if (!menu_number_only) {
txt += ' ' + slots[filled_slots[i]][4]; txt = slots[filled_slots[i]][4];
} }
outlet(1, "append", txt); outlet(1, "append", nb, txt);
} }
} }
} }
@ -1086,7 +1107,6 @@ function onresize(w,h)
ui_width = w; ui_width = w;
ui_height = h; ui_height = h;
calc_rows_columns(); calc_rows_columns();
// loadbang();
to_pattrstorage("getslotlist"); to_pattrstorage("getslotlist");
paint_base(); paint_base();
} }
@ -1339,7 +1359,7 @@ function setignoreslotzero(v){
} }
} }
declareattribute("displayinterp", "getdisplayinterp", "setdisplayinterp", 1); declareattribute("display_interp", "getdisplayinterp", "setdisplayinterp", 1);
function getdisplayinterp() { function getdisplayinterp() {
return display_interp; return display_interp;
} }

Loading…
Cancel
Save