supercollider / supercollider

An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
http://supercollider.github.io
GNU General Public License v3.0
5.5k stars 747 forks source link

Deprecate GUI.scheme redirection #2607

Open adcxyz opened 7 years ago

adcxyz commented 7 years ago

I updated GUI.schelp today and found that much of it is obsolete by now.

Question: To what extent will people still use SwingOSC with SC 3.9 and later? CocoaGUI is gone by now, and if SwingOSC also goes, we could simplify the GUI class: remove all redirection and schemes, except the default qt scheme; keep only the skins idea (or updating it with a variant of Palette?); add useful examples for converting the guis in older patches, and maybe keep GUI-Classes as documention for these conversions.

smoge commented 7 years ago

@adcxyz : From @Sciss repo: ``may still be useful where you have to run older SuperCollider versions or want a remote GUI server. I am unsure whether it still runs under SuperCollider v3.6.x or newer.''

Sciss commented 7 years ago

I confess that I have not run it since years, so can't really say what works or not. Swing was never inheriting from other classes AFAIK and the GUI facade had been added later, so probably there is no harm removing it now. If people still want to use it and there are no other API changes introduced in the meantime, they can still use JSCWindow, JSCButton etc.

jamshark70 commented 7 years ago

examples/ files that still refer to GUI redirection:

./other/KeyboardWindow.scd:14:GUI.cocoa;    // use CocoaGUI (Mac OS X native)
./other/KeyboardWindow.scd:15:GUI.swing;    // use SwingGUI (Java based GUI)
./GUI examples/ScopeExample.scd:5:GUI.cocoa;    // use Mac OS X native GUI
./GUI examples/ScopeExample.scd:6:GUI.swing;    // use Java GUI
./GUI examples/ScopeExample.scd:17:     scope  = if( GUI.id === \cocoa, \ScopeOut, \JScopeOut ).asClass;
./GUI examples/analog-drum-tuner.scd:61:        GUI.staticText.new(leftview, 150@20).string_("frequencies");
./GUI examples/analog-drum-tuner.scd:62:        GUI.staticText.new(leftview, 150@20).string_("resonances");
./GUI examples/analog-drum-tuner.scd:63:        GUI.staticText.new(leftview, 150@20).string_("amplitudes");
./GUI examples/analog-drum-tuner.scd:64:        ffreqview = GUI.multiSliderView.new(leftview, 150@200)
./GUI examples/analog-drum-tuner.scd:74:        rqview = GUI.multiSliderView.new(leftview, 150@200)
./GUI examples/analog-drum-tuner.scd:84:        ampview = GUI.multiSliderView.new(leftview, 150@200)
./GUI examples/analog-drum-tuner.scd:155:           GUI.dialog.savePanel({ |path|
./GUI examples/analog-drum-tuner.scd:195:       GUI.staticText.new(rightview, 100@20).string_("Noise function:");
./GUI examples/analog-drum-tuner.scd:203:       funcedit = GUI.textView.new(rightview, 275@200)
./GUI examples/analog-drum-tuner.scd:207:       GUI.staticText.new(rightview, 100@20).string_("Envelope:");
./GUI examples/analog-drum-tuner.scd:215:       envedit = GUI.textView.new(rightview, 275@200)
./GUI examples/analog-drum-tuner.scd:246:       helpview = GUI.textView.new(leftview, 458@161);
./GUI examples/analog-drum-tuner.scd:247:       if(GUI.scheme.name == 'CocoaGUI') {
./GUI examples/analog-drum-tuner.scd:248:           helpview.font = GUI.font.new("Helvetica", 12);
./research_and_tools/trochoid curve.scd:9:GUI.cocoa;    // use CocoaGUI (Mac OS X native)
./research_and_tools/trochoid curve.scd:10:GUI.swing;   // use SwingGUI (Java based GUI)
./research_and_tools/trochoid curve.scd:13:     var pen = GUI.pen;
./research_and_tools/trochoid curve.scd:14:     w = GUI.window.new("Trochoid", Rect(128, 64, 800, 400)).front;
./research_and_tools/html-help-color-fixer.scd:259:         bigFont = Font(GUI.skin.fontSpecs[0], 28);
./research_and_tools/Diamond.scd:191:buttonFont = Font("Helvetica", if( GUI.id === \cocoa, 11, 7 )).boldVariant;

BTW ./GUI examples/ScopeExample.scd is thoroughly broken -- needs update to the shared memory interface.