///////// bug in cocoa - addArc adds an extra line (sciss)
GUI.cocoa; GUI.swing; ( w = GUI.window.new.front; w.drawHook = { GUI.pen.moveTo( 10 @ 10 ); GUI.pen.addArc( 130 @ 130, 30, pi/3, 2*pi/3 ); GUI.pen.stroke }; w.refresh; )
///////// bug in cocoa - addArc adds an extra line (wouter)
GUI.cocoa; GUI.swing; ( w = GUI.window.new().front; w.drawHook = { GUI.pen.moveTo( 10@10 ); GUI.pen.addArc( 200@200, 100, pi, pi ); GUI.pen.lineTo( 390@390 ); GUI.pen.stroke; }; )
///////// bug in cocoa - line automatically strokes (redfrik)
GUI.cocoa; GUI.swing; ( w= GUI.window.new.front; w.drawHook= { GUI.pen.line(10@10, 290@290); //GUI.pen.stroke; //cocoa draws this automatically somehow GUI.pen.strokeOval(Rect(10, 20, 30, 40)); }; w.refresh; )
///////// difference - smoothing off and setting width looks a bit different (redfrik)
update090621: seems ok now with sc3.3.1 and swingosc0.62
/* GUI.cocoa; GUI.swing; ( w= GUI.window.new.front; w.drawHook= { GUI.pen.setSmoothing(false); GUI.pen.width_(1); //swingosc resets smoothing here? GUI.pen.strokeRect(Rect(10, 10, 290, 290)); //swingosc still anti-aliased }; w.refresh; ) GUI.cocoa; GUI.swing; ( w= GUI.window.new.front; w.drawHook= { GUI.pen.width_(1); //swapping order and it looks ok GUI.pen.setSmoothing(false); GUI.pen.strokeRect(Rect(10, 10, 290, 290)); }; w.refresh; ) */
///////// gotcha - order of views: must be first userview, then slider2d (redfrik)
update090621: works now with sc3.3.1 and swingosc0.62
GUI.swing; GUI.cocoa; ( var w= GUI.window.new("", Rect(100, 100, 600, 500)); var v= GUI.compositeView.new(w, Rect(10, 240, 450, 200)); GUI.userView.new(v, v.bounds) .drawFunc_{ var xx= v.bounds.left+10; var yy= v.bounds.top+10; var ww= v.bounds.width-20; var hh= v.bounds.height-50; var stepx= ww/(30-1); var stepy= hh/(20-1); GUI.pen.setSmoothing(false); //(also not working for swingosc) 30.do{|x| GUI.pen.line(x*stepx+xx@yy, x*stepx+xx@(yy+hh)); 20.do{|y| GUI.pen.line(xx@(y*stepy+yy), xx+ww@(y*stepy+yy)); }; }; GUI.pen.stroke; }; GUI.slider2D.new(v, Rect(10, 10, v.bounds.width-20, v.bounds.height-50)) .action_{|sld| [sld.x, sld.y].postln}; w.front; ) //if order of slider and userview flipped - then not working and looks strange ( var w= GUI.window.new("", Rect(100, 100, 600, 500)); var v= GUI.compositeView.new(w, Rect(10, 240, 450, 200)); GUI.slider2D.new(v, Rect(10, 10, v.bounds.width-20, v.bounds.height-50)) .action_{|sld| [sld.x, sld.y].postln}; GUI.userView.new(v, v.bounds) .drawFunc_{ var xx= v.bounds.left+10; var yy= v.bounds.top+10; var ww= v.bounds.width-20; var hh= v.bounds.height-50; var stepx= ww/(30-1); var stepy= hh/(20-1); GUI.pen.setSmoothing(false); //(also not working for swingosc) 30.do{|x| GUI.pen.line(x*stepx+xx@yy, x*stepx+xx@(yy+hh)); 20.do{|y| GUI.pen.line(xx@(y*stepy+yy), xx+ww@(y*stepy+yy)); }; }; GUI.pen.stroke; }; w.front; )
///////// buttons and windows (andrea valle)
GUI.swing ; ( w = GUI.window.new.front; w.view.background_(Color.white); w.drawHook = { GUI.pen.translate(100, 100); 10.do{ // set the Color GUI.pen.color = Color.red(rrand(0.0, 1), rrand(0.0, 0.5)); GUI.pen.addArc((100.rand)@(100.rand), rrand(10, 100), 2pi.rand, pi); GUI.pen.perform([\stroke, \fill].choose); } }; w.refresh; GUI.button.new(w, w.view.bounds) ) // clickin on the button // nothing happens (ok) // then with: GUI.cocoa // clicking differs (interestingly...) // what am I missing?