// OSC controller interface // buZz, Puik. started aug. 2009 // ment to do : // - widgets // - editing of interface? // - send OSC events on widget change // startup with: // # freej -cFj osc_controller_interface.js // eee fullscreen res ;) W = 800; H = 480; include('widget_class.js'); scr = new Screen(); if (!scr.is_initialized()) { // screen hasn't been initialized yet, let's do it now scr.init(W,H); add_screen(scr); } MAX_WIDGETS = 10; // unused atm widgets = new Array(); mousestate = 0; plzredraw = 1; geo = new GeometryLayer(W,H); //geo.set_blit("ADD"); //geo.set_fps(); geo.color(255,255,255,255); geo.activate(true); scr.add_layer(geo); kbd = new KeyboardController(); kbd.activate(true); kbd.pressed_esc = function() { quit(); } register_controller( kbd ); ms = new MouseController(); ms.activate(true); ms.grab(true); ms.button = function(b, s, x, y) { var i; // (button, state, x, y) // echo("mousestate "+mousestate+" b"+b+" s"+s+" x"+x+" y"+y); this.grab(s); switch (mousestate) { // mousestate 0 = nothing // mousestate 1 = click // mousestate 2 = nothing + just clicked earlier (needs a timer) // mousestate 3 = double click // mousestate 4 = drag (not working right) case 0: if ((s == 1) && (b == 1)) { // left mousebutton pressed mousestate = 1; // do widget click change? for (i=0; i