polymorphism: better names for .binaryValue and .booleanValue are .asInteger and...
[supercollider.git] / Help / Linux / EmacsGUI.help.scd
blobb485e3f49263ade13c1410d4f6ac41d51f444cad
1 /// The Emacs interface actually has some nice options for user interfaces as well. Here are some examples:
3 // create a buffer:
4 p = EmacsBuffer.new;
6 // show the buffer:
7 p.front;
9 // create a key action for the buffer:
11 p.defineKey( "hello", { "hey there".postln; } );
13 // type hello on the window and look at the postbuffer
14 p.front;
16 p.defineKey( "hey there", { "hello".postln; } );
18 // type hey there and look at the postbuffer
19 p.front;
21 // put some text in the buffer:
23 p.insert( "this is a really interesting text to read in the buffer" );
24 p.front;
26 // make a newline:
28 p.newline;
30 // make a button:
32 p.button( [ "on", "off", "in between" ], { |v| v.postln; } );
33 p.front;
35 // make a button with a different look:
36 p.button( [ "on", "off", "in between" ], { |v| v.postln; }, "******", "+++++" );
37 p.front;
39 // create a close button:
40 p.closeButton;
41 // clicking it will close the buffer!
43 p = EmacsBuffer.new;
45 p.editableField( "write something here", "like this?", { |v| v.postln; } );
46 p.front;
48 // moving the cursor around in the buffer:
49 p.gotoBob; // beginning
50 p.gotoEob; // end
51 p.goto( 5 ); // go to fifth position
53 // making it a sclang-mode buffer to write code in:
54 Emacs.evalLispExpression( p.use( [ 'sclang-mode' ] ).asLispString );
56 // close it:
57 p.free;
61 p = EmacsBuffer.new; // args: name
62 p.front;
64 // making a number box
65 n = EmacsNumber.new( p, "number box", [0,5].asSpec, { |v| v.postln; } ); // args: buffer, tag/label, spec, action
66 p.front;
68 // making a button:
69 x = EmacsButton( p, [ "on", "off", "in between" ], { |v| v.postln; }, "******", "+++++" );
70 // args: buffer, states, action, prefix, suffix
71 p.front;
73 t = EmacsText( p, "hello", 30 ); // args: buffer, string, size, align
74 p.front;
76 p.newline;
77 t = EmacsText( p, "helloooo", 30, \right ); // args: buffer, string, size, align
79 p.newline;
80 e = EmacsEditableField( p, "edit field", "edit me" ).action_( { |v| v.postln; } );
81 p.front;
83 b = EmacsPushButton( p, "hello" ).action_( { "do it".postln; } );
84 p.front;
86 // you can disable things:
88 b.enabled_( false );
89 p.front;
93 // and last but not least, it provides a class browser:
95 EmacsClassBrowser.new( EmacsBuffer );