NCAAConnectorMorph subclass: #SuperColliderConnectorMorph instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderConnectorMorph class instanceVariableNames: ''! !SuperColliderConnectorMorph class methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 23:27'! supplementaryPartsDescriptions | descriptions | descriptions _ OrderedCollection new. descriptions addAll: { DescriptionForPartsBin formalName: 'connector' categoryList: #('SuperCollider' ) documentation: 'A connector to connect codelets' globalReceiverSymbol: #SuperColliderConnectorMorph nativitySelector: #newWithArrow. }. ^descriptions ! ! RectangleMorph subclass: #SuperColliderContainerMorph instanceVariableNames: 'content slots' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 14:22'! addCustomMenuItems: aMenu hand: aHandMorph super addCustomMenuItems: aMenu hand: aHandMorph. aMenu add: 'vertical orientation' action: #makeVertical; add: 'horizontal orientation' action: #makeHorizontal. (slots == 3) ifTrue: [ aMenu add: 'single slot' action: #makeSingleSlot] ifFalse: [ aMenu add: '3 slots' action: #make3Slot. ].! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:39'! addTrigger ((self submorphs at: 1) isKindOf: SuperColliderTriggerButtonMorph) ifFalse: [ self addMorph: SuperColliderTriggerButtonMorph new. ] ! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/23/2007 23:05'! getAllNestedCode | nestedsc | "get code in submorphs" nestedsc _ ''. self submorphs do: [ :each | nestedsc _ nestedsc, each getAllNestedCode]. "get code inside connected morphs" self successors do: [ :each | nestedsc _ nestedsc, each getAllNestedCode]. ^ nestedsc. ! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:42'! initialize super initialize. self color: Color lightGray lighter lighter; position: 100@100; borderWidth: 1; layoutPolicy: TableLayout new; listDirection: #leftToRight; hResizing: #shrinkWrap; vResizing: #shrinkWrap; layoutInset: 4; cellInset: 4. "cornerStyle: #rounded." content _ SuperColliderPlaceholderMorph new. "self addMorph: (SuperColliderTextMorph new contents: ')')." self addMorph: content. "self addMorph: (SuperColliderTextMorph new contents: '(')." self addTrigger. slots _ 1. self make3Slot. ! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 21:13'! justDroppedInto: aMorph event: anEvent super justDroppedInto: aMorph event: anEvent. aMorph == self world ifFalse: [ self removeTrigger] ifTrue: [self addTrigger ].! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 23:27'! make3Slot self addMorph: (SuperColliderTextMorph new contents: '(') after: (self submorphs at: 1). self addMorph: (SuperColliderTextMorph new contents: ')') after: (self submorphs at: 3). slots _ 3. ! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 14:12'! makeHorizontal self listDirection: #leftToRight. content listDirection: #leftToRight.! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 14:20'! makeSingleSlot (self submorphs at: 2) delete. (self submorphs at: 3) delete. slots _ 1.! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/19/2007 21:19'! makeVertical self listDirection: #topToBottom. content listDirection: #topToBottom.! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:39'! removeTrigger ((self submorphs at: 1) isKindOf: SuperColliderTriggerButtonMorph) ifTrue: [ (self submorphs at: 1) delete. ]. ! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 01:41'! sendCode: aString (self successors) do: [ :each | each ifNotNil: [each triggerWithCode: aString]].! ! !SuperColliderContainerMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/20/2007 16:52'! triggerWithCode: someCode self sendCode: someCode, self getAllNestedCode.! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderContainerMorph class instanceVariableNames: ''! !SuperColliderContainerMorph class methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 20:20'! descriptionForPartsBin ^ self partName: 'container' categories: #('SuperCollider') documentation: 'A container.'! ! EllipseMorph subclass: #SuperColliderKnobMorph instanceVariableNames: 'thumb beforeText afterText movedThumbValue mouseDownYdelta' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:17'! drawOn: aCanvas | min max angle | super drawOn: aCanvas. min _ 45. max _ 315. angle _ movedThumbValue * (max-min) negated - min. aCanvas line: self center to: (self center + (((angle degreesToRadians sin)@(angle degreesToRadians cos)) * (self extent x / 2 - 5))) width: 2 color: Color red. beforeText ifNotNil:[ beforeText position: self position - (0@(beforeText extent y + 2))]. afterText ifNotNil:[ afterText position: self position + (0@(self extent y + 2))].! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:52'! getAllNestedCode ^ movedThumbValue asString. ! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:08'! handlesMouseDown: evt ^ true.! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:09'! handlesMouseOver: evt ^ true.! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:18'! initialize super initialize. self position: 100@100; extent: 45@45; color: Color lightGray lighter lighter. self beSticky. beforeText _ SuperColliderTextRectangleMorph new. afterText _ SuperColliderTextRectangleMorph new. "self addMorph: beforeText. self addMorph: afterText." movedThumbValue _ 0.! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:21'! justDroppedInto: aMorph event: anEvent super justDroppedInto: aMorph event: anEvent. aMorph == self world ifFalse: [ self removeMorph: beforeText. self removeMorph: afterText. ] ifTrue: [ self addMorph: beforeText. self addMorph: afterText. ].! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:49'! mouseDown: evt super mouseDown: evt. mouseDownYdelta _ evt cursorPoint y. ! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:48'! mouseMove: evt super mouseMove: evt. movedThumbValue _ movedThumbValue + ((mouseDownYdelta - evt cursorPoint y) / 100.0). mouseDownYdelta _ evt cursorPoint y. movedThumbValue _ (movedThumbValue max: 0.0) min: 1.0. (self owner = self world) ifTrue: [self sendValue]. self changed.! ! !SuperColliderKnobMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:33'! sendValue | aString | aString _ beforeText contents asString, movedThumbValue asString, afterText contents asString. self owner submorphs do: [ :each | (each isKindOf: SuperColliderSclangProcessMorph) ifTrue: [ each executeCode: aString .]. ]. (self successors) do: [ :each | each ifNotNil: [each triggerWithCode: aString]].! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderKnobMorph class instanceVariableNames: ''! !SuperColliderKnobMorph class methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 23:55'! descriptionForPartsBin ^ self partName: 'knob' categories: #('SuperCollider') documentation: 'A knob which send its code and value.'! ! RectangleMorph subclass: #SuperColliderPlaceholderMorph instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/19/2007 20:53'! getAllNestedCode | nestedsc | nestedsc _ ''. self submorphs do: [ :each | nestedsc _ nestedsc, each getAllNestedCode]. ^ nestedsc.! ! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 21:04'! handlesMouseOverDragging: evt ^ true.! ! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/23/2007 20:38'! initialize super initialize. self color: Color lightGray lighter lighter lighter; extent: 20@20 ; borderWidth: 0; enableDragNDrop: true; cornerStyle: #rounded; layoutPolicy: TableLayout new; listDirection: #leftToRight; hResizing: #shrinkWrap; vResizing: #shrinkWrap; layoutInset: 3; cellInset: 3.! ! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 22:19'! mouseEnterDragging: evt super mouseEnterDragging: evt. "self layoutInset: 10; cellInset: 10." ! ! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 22:19'! mouseLeaveDragging: evt super mouseLeaveDragging: evt. "self layoutInset: 3; cellInset: 3." ! ! !SuperColliderPlaceholderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/23/2007 20:22'! wantsHaloFromClick "if it is opened in world, which doesn't have sense, we enable its halos so you can grab it. otherwise we don't want it to be grabbed" ^ self owner == self world.! ! RectangleMorph subclass: #SuperColliderSclangProcessMorph instanceVariableNames: 'led sclang output running' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 04:08'! delete "kills the sclang process when the morph is removed" self stop. super delete.! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 04:11'! executeCode: someCode sclang ifNotNil: [ sclang nextPutAll: someCode; nextPut: 16r0C asCharacter. ].! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 04:33'! initialize super initialize. "sOSCServer _ SuperColliderMorphsOSCServer new listenOnPort: 57110." "layout" self color: Color lightGray lighter lighter; position: 100@100; borderWidth: 1; layoutPolicy: TableLayout new; listDirection: #leftToRight; hResizing: #shrinkWrap; vResizing: #shrinkWrap; layoutInset: 8; cellInset: 5; cornerStyle: #rounded. self addMorph: (StringMorph new contents: 'sclang process'). "led" led _ CircleMorph new extent:16@16; color: Color red. self addMorph: led. "stop" self addMorph: (SimpleButtonMorph new color: Color lightRed; target: self; actionSelector: #stop; label: 'stop'). "start" self addMorph: (SimpleButtonMorph new color: Color lightGreen; target: self; actionSelector: #start; label: 'start'). "balloon help" self setBalloonText: 'This is the sclang process representation. Click on start to launch the process.'! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 04:20'! listenToOutput | latest | [ [running] whileTrue: [ sclang ifNotNil: [ latest _ sclang upToEnd. (latest='') ifFalse: [ "output _ (output,latest)." Transcript show: latest withSqueakLineEndings. ]. ]. ]. ] forkAt: 10.! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 04:12'! start "start the sclang process" sclang ifNil: [ sclang _ PipeableOSProcess command: 'sclang']. sclang ifNotNil: [ running _ true. self listenToOutput. led color: Color green. ]. "self executeCode: 'Object.dumpClassSubtree'."! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 03:02'! stop "kills the sclang process" sclang ifNotNil: [sclang finalize. sclang _ nil]. led color: Color red. running _ false.! ! !SuperColliderSclangProcessMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/1/2007 18:23'! triggerWithCode: someCode. "tells the sclang process to send the chunk of code to sclang sclang process STDIN" sclang ifNotNil: [ sclang sendText: someCode].! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderSclangProcessMorph class instanceVariableNames: ''! !SuperColliderSclangProcessMorph class methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 14:03'! descriptionForPartsBin ^ self partName: 'sclang process' categories: #('SuperCollider') documentation: 'The morph which represent a sclang process.'! ! RectangleMorph subclass: #SuperColliderSliderMorph instanceVariableNames: 'thumb beforeText afterText movedThumbValue mouseDownYdelta' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:31'! drawOn: aCanvas super drawOn: aCanvas. thumb extent: (self extent x)@(self extent y*0.15). thumb position: (self position x)@( (1-movedThumbValue) * (self extent y *0.85) + self position y). beforeText position: self position - (0@(beforeText extent y + 2)). afterText position: self position + (0@(self extent y + 2)).! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:52'! getAllNestedCode ^ movedThumbValue asString. ! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:30'! initialize super initialize. self position: 50@50; extent: 25@100; color: (Color r:0 g:0 b:0 alpha:0.2). thumb _ RectangleMorph new color: Color lightBlue; extent: 25@(self extent y*0.2); position: self position + (0@(self extent y*0.8)); on: #mouseMove send: #thumbMoved:from: to: self; on: #mouseDown send: #thumbDown: to: self. self addMorph:thumb. beforeText _ SuperColliderTextRectangleMorph new. afterText _ SuperColliderTextRectangleMorph new. "self addMorph: beforeText. self addMorph: afterText." movedThumbValue _ 0.! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:23'! justDroppedInto: aMorph event: anEvent super justDroppedInto: aMorph event: anEvent. aMorph == self world ifFalse: [ self removeMorph: beforeText. self removeMorph: afterText. ] ifTrue: [ self addMorph: beforeText. self addMorph: afterText. ].! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/26/2007 21:58'! resizeMorph: evt super resizeMorph: evt. ! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:33'! sendValue | aString | aString _ beforeText contents asString, self thumbValue asString, afterText contents asString. self owner submorphs do: [ :each | (each isKindOf: SuperColliderSclangProcessMorph) ifTrue: [ each executeCode: aString .]. ]. (self successors) do: [ :each | each ifNotNil: [each triggerWithCode: aString]].! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/26/2007 22:05'! thumbDown: evt mouseDownYdelta _ evt cursorPoint y - thumb position y.! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:47'! thumbMoved: evt from: who | newP maxP minP | newP _ evt cursorPoint y - mouseDownYdelta. maxP _ self extent y + self position y - thumb extent y. minP _ self position y. newP _ (newP max: minP) min: maxP. thumb position: (thumb position x)@(newP). self changed. movedThumbValue _ self thumbValue. (self owner = self world) ifTrue: [self sendValue].! ! !SuperColliderSliderMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/26/2007 01:24'! thumbValue | maxP minP rangeP | maxP _ self extent y + self position y - thumb extent y. minP _ self position y. rangeP _ maxP - minP. ^ (maxP - thumb position y) / rangeP asFloat.! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderSliderMorph class instanceVariableNames: ''! !SuperColliderSliderMorph class methodsFor: 'as yet unclassified' stamp: 'cm 5/24/2007 14:04'! descriptionForPartsBin ^ self partName: 'slider' categories: #('SuperCollider') documentation: 'A slider which send its code and value.'! ! NCDisplayTextMorph subclass: #SuperColliderTextMorph instanceVariableNames: '' classVariableNames: 'ClassesIndex' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 01:59'! classes "Classes names are hardcoded atm. You may add your own classes in the array below." "Don't worry about the order. They get indexed as soon as you create the morph". ^ #( Object, Interpl, PowerOfTwoAllocator, LRLPF, Model, SwingOSC, Server, EZSlider, Env, Penv, BLowPass4, SCWindow, InterplChord, Collapse, QuarkView, SimpleController, Play, Date, Exception, Error, MethodError, OutOfContextReturnError, SubclassResponsibilityError, MustBeBooleanError, NotYetImplementedError, ImmutableError, ShouldNotImplementError, PrimitiveFailedError, DoesNotUnderstandError, BinaryOpFailureError, DeprecatedError, FormantTable, KeyCodeResponder, PatternConductor, PointSource, GetFileDialog, FreqScope, JClassBrowser, EmacsInterface, SoundFileViewProgressWindow, SoundFileFormats, Vocoder, TChoose, Insets, BHiPass4, HighShelf, RBJHighShelf, Instr, InterfaceDef, Notch, RBJNotch, OSCResponderQueue, AbstractNodeWatcher, BasicNodeWatcher, NodeWatcher, DebugNodeWatcher, AnnotatedDebugNodeWatcher, PitchCollection, PColl, ControlName, UnicodeResponder, FlowVar, MIDIResponder, CCResponder, NoteOnResponder, NoteOffResponder, TouchResponder, BendResponder, JKeyState, Score, ZLPF, SerialPort, MIDIEndPoint, GeneralHIDSlot, SwingDialog, LRUNumberAllocator, AbstractPlayControl, StreamControl, PatternControl, CXPlayerControl, CXSynthPlayerControl, SynthControl, SynthDefControl, StackNumberAllocator, DOMNode, DOMDocument, DOMDocumentFragment, DOMAttr, DOMProcessingInstruction, DOMCharacterData, DOMText, DOMCDATASection, DOMComment, DOMElement, Toolbox, NodeMapSetting, ProxyNodeMapSetting, BhobLoShelf, Scale, Harmonics, PathName, BroadcastServer, FreqShift, FreeVerb1, Gradient, SelectXFocus, GuidoArt, WiiMoteGUI, JSoundFileViewProgressWindow, Case, Condition, Rect, UGenInstr, Color, JSlotInspector, UniqueID, Player, HDR, GLID, GuidoScore, HIDInfo, History, EmacsBuffer, Message, Quarks, JPen, EnvirDispatch, Public, HistoryDispatch, MIDIIn, LowShelf, RBJLowShelf, HIDDevice, DOMImplementation, DebugFrame, SkipJack, Watcher, Speech, EZNumber, Cocoa, RingNumberAllocator, PMOsc, Sequencer, BF, Tendency, SCNSObjectAbstract, CocoaAction, SCNSObject, NSBundle, ClassBrowser, ResponderArray, AudioIn, Quark, SimpleKDRUnit, KDRMaskTester, MultiTap, BusSynthDefs, BtoUHJ, Spkr, JMouseBase, JMouseX, JMouseButton, JMouseY, Def, HistoryGui, ContiguousBlock, ModalFreqUGen, InBus, SystemSynthDefs, OSCresponder, OSCMultiResponder, OSCpathDispatcher, OSCpathResponder, TaskProxyEditor, PdefEditor, TdefEditor, LinkedListNode, FlowLayout, GuidoVoice, OSCBundle, MixedBundle, Inspector, FrameInspector, ObjectInspector, MethodInspector, FunctionDefInspector, StringInspector, ClassInspector, PatchIn, AudioPatchIn, ControlPatchIn, ScalarPatchIn, CtkProtoNotes, PitchClass, PC, LIDSlot, LIDRelSlot, LIDAbsSlot, LIDLedSlot, LIDKeySlot, PingPong, BeatSched, OSCSched, JSpeech, BFEncode, LIDAbsInfo, ProcSink, WarpOverlap, Mono, NetAddr, BundleNetAddr, PowerOfTwoBlock, JSCView, JSCContainerView, JSCCompositeView, JSCTopView, JSCTabbedPane, JSCLayoutView, JSCVLayoutView, JSCHLayoutView, JSCScrollPane, JSCPlugContainerView, JSCSoundFileView, JSCControlView, JSCListView, JSCScrollBar, JSCPopUpMenu, JSCButton, JSCSliderBase, JSCRangeSlider, JSC2DSlider, JSC2DTabletSlider, JSCSlider, JSCKnob, JSCCheckBox, JSCMovieView, JSCScope, JSCFreqScope, JSCStaticTextBase, JSCTextEditBase, JSCNumberBox, JSCTextField, JSCStaticText, JSCDragView, JSCDragSink, JSCDragBoth, JSCDragSource, JSCAbstractMultiSliderView, JSCEnvelopeView, JSCMultiSliderView, JStartRow, JSCPlugView, JSCUserView, JSCTextView, WarpIn, GeneralHID, Spec, AudioSpec, MultiTrackAudioSpec, EffectSpec, ObjectSpec, ScalarSpec, EnvSpec, BufferProxySpec, SampleSpec, HasItemSpec, PlayerSpec, StreamSpec, ArraySpec, ControlSpec, TrigSpec, NoLagControlSpec, StaticSpec, StaticIntegerSpec, TempoSpec, GuidoTimeSig, HIDDeviceService, EnvGate, KeyCodeResponderStack, Emacs, JEZNumber, CmdPeriod, Splay, SynthDef, ProxySynthDef, InstrSynthDef, JStethoscope, PriorityQueue, ZPolar, PageLayout, EmacsDocument, BFMonitor, GuidoTime, Position, ClientFunc, ResponderClientFunc, HiliteGradient, Feedback, DelayWr, Help, Crucial, Vocode, ControlPrototypes, Pen, Enveloper2, NumChannels, Client, LocalClient, JEZSlider, XFader, GuidoMark, GuidoTempo, GuidoDynamic, GuidoArticulation, CtkNoteObject, CtkSynthDef, MLIDbrowser, CocoaDialog, OSCresponderNode, Warp0, Tempo, MIDIEvent, SlotInspector, CocoaCompat, BFMixer, QuarkDependency, WiiRemoteGUI, RPlay, CtkObj, CtkControl, CtkNode, CtkNote, CtkGroup, CtkBuffer, CtkEvent, CtkAudio, LIDInfo, UHJtoB, Post, WiiMote, SpeechChannel, Stethoscope, Mix, RelativeToParent, Peep, BFDecode, Module, EmacsWidget, EmacsText, EmacsNumber, EmacsEditableField, EmacsButton, EmacsPushButton, EmacsClassTree, JFreqScope, SplayZ, GuidoEvent, GuidoRest, GuidoMeter, GuidoChord, GuidoNote, GuidoSpanner, GuidoMelody, QuarkSVNRepository, Warp, DbFaderWarp, ExponentialWarp, LinearWarp, SineWarp, CosineWarp, FaderWarp, CurveWarp, NodeMap, ProxyNodeMap, Buffer, LID, MIDIClient, ProcMod, ProcModR, JSCWindow, LocalQuarks, ZPoint, IODesc, Speakers, Monitor, JFont, SCViewHolder, FlowView, ObjectGui, TempoGui, SampleGui, ServerGui, MethodGui, AbstractPlayerGui, HasSubjectGui, StreamKrDurGui, PlayerEffectGui, PlayerAmpGui, BeatClockPlayerGui, KrPlayerGui, ModalFreqGui, Midi2FreqGui, SimpleTriggerGui, PatchGui, InstrSpawnerGui, PlayerPoolGui, PlayerUnopGui, AbstractSFPGui, SFPGui, PlayerMixerGui, PlayerBinopGui, InterfaceGui, EnvEditorGui, KeyCodeResponderGui, KeyCodeResponderStackGui, SimpleKDRUnitGui, ServerErrorGui, EditorGui, PopUpEditorGui, NumberEditorGui, KrNumberEditorGui, BooleanEditorGui, ModelImplementsGuiBody, CXObjectInspector, ClassGui, SCViewAdapter, SCButtonAdapter, ActionButton, ClassNameLabel, InspectorLink, MethodLabel, Tile, SelectorLabel, PlayPathButton, PlayButton, XPlayPathButton, ToggleButton, CXMenu, CXAbstractLabel, ArgNameLabel, CXLabel, VariableNameLabel, StartRow, InterPoint, Midi2FreqUGen, XIn, NotificationCenter, NodeControl, Unix, EnvironmentRedirect, LazyEnvir, ProxySpace, BufEnvir, XFader4, IndexL, ModalDialog, TempoBus, FileReader, CSVFileReader, SemiColonFileReader, TabFileReader, BufferProxy, ArrayBuffer, AbstractSample, Sample, EmacsClassBrowser, SynthDesc, SynthDescLib, SoundFile, Phrase, Updater, PrettyState, PrettyEcho, PrettyEat, PatchOut, ControlPatchOut, AudioPatchOut, ScalarPatchOut, UpdatingScalarPatchOut, XInFeedback, BhobHiShelf, XFaderN, BhobTone, InspManager, HIDDeviceElement, Sheet, Node, Group, RootNode, Synth, NodeIDAllocator, ProcEvents, Reflections, SelectButtonSet, BLPF, StartUp, Document, ScelDocument, EnvirDocument, GetStringDialog, WiiNunchukGUI, PitchInterval, PI, NotificationRegistration, ContiguousBlockAllocator, GUI, Clock, TempoClock, TempoBusClock, SystemClock, AppClock, Bus, SharedBus, BHPF, JKnob, Scheduler, AbstractConsole, SaveConsole, SynthConsole, Editor, NumberEditor, BooleanEditor, KrNumberEditor, PopUpEditor, IntegerEditor, IrNumberEditor, EnvEditor, PeakingEQ, RBJPeakingEQ, MultiPageLayout, AbstractConstraint, SeenBefore, CountLimit, Not, IsEven, Every, Any, Constraint, IsOdd, Xor, IsNil, IsIn, IsNotIn, NotNil, JavaObject, UI, Impulsar, TaskProxyAllGui, PdefAllGui, TdefAllGui, TapN, JInspector, JFrameInspector, JObjectInspector, JStringInspector, JClassInspector, JMethodInspector, JFunctionDefInspector, OSCService, Do, MultiChanRecorder, SwingOptions, CheapVerb, ZHPF, Semaphore, Insp, Switch1, OverlapTexture, InterplEnv, InterplPairs, InterplXYC, MethodQuote, SCView, SCTabletView, SCUserView, SCContainerView, SCLayoutView, SCVLayoutView, SCHLayoutView, SCCompositeView, SCTopView, SCScrollTopView, SCScrollView, SCMultiSliderView, SCEnvelopeView, SCEnvelopeEdit, SCMovieView, SCStaticTextBase, SCDragView, SCDragSink, SCDragBoth, SCDragSource, SCStaticText, SCNumberBox, SCTextField, SCScope, SCFreqScope, SCSoundFileView, SCTextView, SCControlView, SCButton, SCPopUpMenu, SCSliderBase, SC2DSlider, SC2DTabletSlider, SCRangeSlider, SCSlider, SCKnob, SCListView, SCQuartzComposerView, InstrAt, SwingGUI, GeneralHIDDevice, RMEQ, RegaliaMitraEQ, WiiMoteIRObject, Phaser, Point, PointArray, ServerOptions, GraphBuilder, WiiCalibrationInfo, Platform, UnixPlatform, LinuxPlatform, LRHPF, Font, MIDIOut, Switch, TestDependant, SelectX, Shift90, SFPlay, CtkScore, RawPointer, Magnitude, Association, Number, Polar, Complex, SimpleNumber, Float, Integer, Char, Boolean, False, True, Nil, Symbol, Finalizer, AbstractFunction, Pattern, PbindProxy, Pkey, Pseries, Pbrown, Pgbrown, Phprand, FilterPattern, Prorate, Psync, Pwrap, Pseed, Psetpre, Paddpre, Pmulpre, PfadeIn, PfadeOut, Pset, Padd, Psetp, Paddp, Pmulp, Pmul, Pgroup, Pplayer, Pflatten, Pavaroh, FuncFilterPattern, Pwhile, Pfset, Preject, Pcollect, Pselect, Pstretch, Pstretchp, Pfin, Pfinval, Pstutter, PdurStutter, Pdrop, Pn, Pfindur, Plag, Psym, Pnsym, Ptsym, Ptrace, Prewrite, Pbus, Pfx, Pflow, Pconst, Pprotect, Pbindf, Pclump, Pdiff, Pcauchy, Ppatmod, Platoo, Pgbman, Ptime, PlinCong, Prout, Proutine, Pindex, Pbind, Pfunc, Ppoisson, Pgeom, Pquad, Phid, PatternProxy, Pdefn, TaskProxy, Tdef, EventPatternProxy, Pdef, Pbindef, Pdict, Pstep, Pseg, ListPattern, Pslide, Pxrand, Pwrand, Pshuf, Pseq, Pser, Place, Ppatlace, Ptuple, Pwalk, Ppar, Pgpar, Pgtpar, Ptpar, Pdfsm, Pfsm, Prand, Plorenz, Peventmod, Phenon, Pswitch, Pswitch1, Pevent, Pbinop, Pchain, Pstep3add, Pfhn, Pstep2add, Pmono, Pif, Pwhite, Pexprand, PstepNfunc, PstepNadd, Pbeta, Pgauss, Pmeanrand, Plazy, PlazyEnvir, PlazyEnvirN, Pstandard, Plprand, Pfuncn, Punop, Penvir, Pnaryop, PdegreeToKey, Pprob, Gen, Giter, Ginf, Gzip, Grng, Gwhite, Gbrown, Gfib, Gseries, Gcat, Ggeom, Gfunc, Gbind, GenFilter, Gcollect, GbinaryOp, Gselect, Gstutter, GkeepWhile, GkeepUntil, Gclump, GbindF, GbinaryOpI, GunaryOp, Grepeat, GbinaryOpX, Greset, Gkeep, Gcyc, Glace, BinaryOpFunction, BinaryOpFunctionProxy, AbstractPlayer, PlayerUnop, HasPatchIns, Patch, InstrSpawner, InstrGateSpawner, ScurryableInstrGateSpawner, MultiplePlayers, PlayerMixer, MultiTrackPlayer, AbstractPlayerProxy, ModalFreq, Interface, PlayerSocket, PlayerPool, PlayerEffectSocket, KrPlayer, TempoPlayer, BeatClockPlayer, Midi2Freq, AudioInPlayer, AbstractSFP, SFP, VSFP, PlayerBinop, SynthlessPlayer, Silence, ObjectNotFound, PlayerInputProxy, SimpleTrigger, MIDIPlayer, CCPlayer, MIDIHoldsNotes, MIDIFreqPlayer, MIDIGatePlayer, BusDriver, StreamKrDur, Stream2Trig, HasSubject, AbstractPlayerEffect, AbstractSinglePlayerEffect, PlayerAmp, EnvelopedPlayer, MonoAudioIn, AbstractOpPlug, BinaryOpPlug, UnaryOpPlug, BusPlug, NodeProxy, RecNodeProxy, Ndef, Ref, RefCopy, FuncProxy, Maybe, Fdef, UnaryOpFunction, UnaryOpFunctionProxy, UGen, PV_Whiten, Line, PV_MagMap, IEnvGen, ListTrig, AbstractOut, LocalOut, XOut, SharedOut, Out, OffsetOut, ReplaceOut, Logistic, Donug, LinRand, KeyState, LFSaw, LFTri, LFCub, LFPar, FreeVerb, PitchShift, Dswitch1, Dswitch, ExpRand, PV_XFade, SinGrain, FFTTriggered, RandID, Compander, VOsc3, PSinGrain, Pause, FreeSelf, BBandStop, StkShakers, MoogVCF, AtsNoiSynth, BHiPass, ScopeOut, Dseries, SinOsc, FFTComplexDev, ToggleFF, SinOscFB, AtsNoise, AtsSynth, Balance, GaussTrig, Pulse, FFTPhaseDev, XFade, XFade2, LinXFade2, Gendy2, PulseCount, SetResetFF, Peak, RunningMin, RunningMax, Sweep, InfoUGenBase, RadiansPerSample, NumRunningSynths, SampleDur, NumBuffers, ControlRate, NumInputBuses, NumControlBuses, SubsampleOffset, NumAudioBuses, SampleRate, NumOutputBuses, SendTrig, LastValue, PV_CommonMag, PV_CommonMul, CoinGate, FFTFluxPos, PV_Freeze, Dbrown2, Warp1, CompanderD, MulAdd, FFTInterleave, MoogLadder, CheckBadValues, Hasher, StkBlowHole, BufInfoUGenBase, BufChannels, BufFrames, BufDur, BufSamples, BufSampleRate, BufRateScale, Latoocarfian2DN, Latoocarfian2DC, Latoocarfian2DL, TExpRand, Free, MCLDChaosGen, ChuaL, RosslerResL, ZeroCrossing, LFPulse, BLowShelf, DbufTag, Dtag, PosRatio, StkMandolin, StandardTrig, TBetaRand, VarSaw, DynKlank, HenonTrig, MouseButton, Pluck, AtsAmp, LinExp, PV_MagGate, Latch, Gate, Dust2, MantissaMask, Dust, LorenzTrig, Dbrown, Dibrown, Tap, K2A, NRand, JScopeOut, PeakFollower, LP_Synth, InGrain, PVSynth, DegreeToKey, LPCSynth, PV_Morph, InRect, AmpComp, AmpCompA, LPCAnal, PV_MagLog, EnvGen, PV_NoiseSynthP, PV_PartialSynthF, PV_PartialSynthP, PV_NoiseSynthF, TBrownRand, Select, Index, Shaper, DetectIndex, WrapIndex, IndexInBetween, AmplitudeMod, Maxamp, Streson, Logger, RunningSum, PV_PlayBuf, OscN, IIRFilter, PV_OddBin, PV_EvenBin, FMGrainB, StkBeeThree, PV_Compander, BPeakEQ, BufWr, Rand, PauseSelf, LPCSynth2, FMGrainI, BasicOpUGen, BinaryOpUGen, UnaryOpUGen, StkBowed, Linen, PV_MagScale, COsc, StkClarinet, PV_MagExp, PV_MagBuffer, PV_FreqBuffer, Duty, TDuty, WhiteNoise, PinkNoise, BrownNoise, ClipNoise, GrayNoise, Squiz, SVF, TBall, FFTMKL, MostChange, LeastChange, FFTPower, ListDUGen, Dxrand, Drand, Dseq, Dser, LFNoise0, LFClipNoise, LFDNoise3, LFDNoise0, LFNoise2, LFDNoise1, LFNoise1, LFDClipNoise, InGrainI, LatoocarfianTrig, LPC_Synth, Dgeom, Gendy3, NestedAllpassN, NestedAllpassC, NestedAllpassL, Getenv, FhnTrig, BufDelayN, BufDelayC, BufDelayL, Crackle, Spring, StkModalBar, IFFT, Henon2DN, Henon2DC, Henon2DL, Ball, Osc, Delay1, Delay2, Filter, BPF, BRF, LPF, HPF, InsideOut, LPZ2, HPZ2, BPZ2, BRZ2, LagUD, Lag2UD, Lag3UD, Decay2, Decay, OnePole, OneZero, Resonz, Friction, MoogFF, Median, Integrator, DetectSilence, Lag, Ramp, Lag3, Lag2, LPZ1, HPZ1, Ringz, WaveLoss, FOS, RLPF, RHPF, MeanTriggered, MedianTriggered, MidEQ, Slew, LeakDC, TwoPole, TwoZero, APF, Slope, Formlet, SOS, PV_DiffMags, FFTDiffMags, HilbertFIR, SinGrainB, Standard2DN, Standard2DC, Standard2DL, BFDecode1, FFTFlatness, XLine, Vibrato, AY, Formant, PV_MagMinus, PV_MaxMagN, PV_MinMagN, OnsetsDS, StkFlute, TIRand, DemandEnvGen, AtsFreq, A2K, T2K, LinLin, TRand, GbmanTrig, BMoog, PulseDivider, FreeSelfWhenDone, FMGrain, Klang, RecordBuf, IRand, DoubleNestedAllpassN, DoubleNestedAllpassL, DoubleNestedAllpassC, Lorenz2DN, Lorenz2DL, Lorenz2DC, Fhn2DN, Fhn2DC, Fhn2DL, Normalizer, Limiter, Dgauss, AudioMSG, Blip, BAllPass, PauseSelfWhenDone, InGrainB, Gendy1, PV_RecordBuf, OutputProxy, SinGrainI, StkPluck, Done, Saw, Phasor, DynKlang, CombN, CombL, CombC, AllpassC, AllpassN, AllpassL, PV_ChainUGen, PV_JensenAndersen, PV_MagFreeze, FFT, Convolution2, PV_RectComb2, PV_BrickWall, PV_PhaseShift, PV_MagAbove, PV_MagClip, PV_MagBelow, PV_LocalMax, Unpack1FFT, PV_HainsworthFoote, PV_BinScramble, PV_MagMul, PV_Max, PV_Copy, PV_CopyPhase, PV_Mul, PV_Add, PV_Min, PV_MagDiv, PV_MagSquared, PV_PhaseShift270, PV_MagNoise, PV_PhaseShift90, PV_Diffuser, PV_MagSmear, PV_BinWipe, PackFFT, PV_RectComb, PV_RandComb, Convolution2L, PV_ConformalMap, Convolution3, PV_RandWipe, PV_BinShift, PV_MagShift, Convolution, Klank, VOsc, PV_Invert, BufCombN, BufAllpassC, BufCombL, BufCombC, BufAllpassN, BufAllpassL, BHiShelf, Dwhite, Diwhite, Stepper, StkVoicForm, SinTone, DiskOut, BufGrain, InRange, Clip, Fold, Schmidt, Wrap, NLFiltN, NLFiltL, NLFiltC, Trig1, Trig, TDelay, StkBandedWG, FSinOsc, MonoGrain, Amplitude, Timer, CombLP, Warp2, DelayN, DelayL, DelayC, BBandPass, Impulse, FFTPercentile, BufGrainI, Gbman2DN, Gbman2DL, Gbman2DC, MouseX, MouseY, BufGrainB, TWChoose, Poll, SyncSaw, RLPFD, MultiOutUGen, Panner, A2B, BFEncode1, Rotate2, DecodeB2, Rotate, Pan4, PanAz, Tilt, Balance2, Tumble, MonoGrainBF, BFEncodeSter, B2A, UHJ2B, BFManipulate, FMHEncode2, B2UHJ, PanB2, PanB, FMHEncode1, Pan2, LinPan2, B2Ster, BiPanB2, BFEncode2, RosslerL, FMGrainIBF, AbstractIn, LocalIn, SharedIn, LagIn, InFeedback, InTrig, In, BufGrainBF, Demand, LPCVals, LP_Ana, Pitch, FincoSprottL, PlayBuf, TGrains3, SinGrainBBF, BufGrainIBF, AtsParInfo, UnpackFFT, LPCVals2, FreeVerb2, RMAFoodChainL, Control, LagControl. TrigControl, TGrains2, Warp1MC, TGrains, Warp2MC, FFTSubbandFlux, Hilbert, PVInfo, FincoSprottS, FMGrainBBF, FincoSprottM, SinGrainIBF, DC, BFGrainPanner, InGrainBBF, InGrainBF, InGrainIBF, DiskIn, LPC_Ana, SinGrainBF, FMGrainBF, BufRd, GVerb, XY, LoopBuf, FFTSubbandPower, Silent, FFTFlatnessSplitPercentile, ImageWarp, BufGrainBBF, LFBrownNoise0, LFBrownNoise1, LFBrownNoise2, ChaosGen, FBSineN, FBSineC, FBSineL, LatoocarfianN, LatoocarfianC, LatoocarfianL, QuadN, QuadL, QuadC, HenonN, HenonL, HenonC, LinCongN, LinCongL, LinCongC, LorenzL, StandardN, StandardL, GbmanN, GbmanL, CuspN, CuspL, RandSeed, PV_SoftWipe, PV_Cutoff, TGaussRand, Gendy4, Gendy5, StkSaxofony, TWindex, Dfsm, Dbufrd, PV_BinDelay, StkMoog, FFTFlux, BLowPass, Thunk, FunctionList, NAryOpFunction, NAryOpFunctionProxy, NAryValueProxy, Function, Stream, EmbedOnce, GenStream, UnaryOpStream, PauseStream, Task, EventStreamPlayer, ScoreStreamPlayer, StreamClutch, FuncStream, IOStream, UnixFILE, File, ZArchive, PVFile, LPCFile, AtsFile, Pipe, CollStream, PrettyPrintStream, LimitedWriteStream, Pretty, OneShotStream, BinaryOpStream, CleanupStream, BinaryOpXStream, NAryOpStream, Thread, Routine, FuncStreamAsRoutine, Interpreter, Process, Main, Frame, FunctionDef, Method, Collection, Interval, TwoWayIdentityDictionary, ObjectTable, Array2D, Range, MultiLevelIdentityDictionary, LibraryBase, Archive, Library, Set, Dictionary, TwoWayDictionary, IdentityDictionary, Environment, Event, IdentitySet, Bag, IdentityBag, Pair, SequenceableCollection, LinkedList, Order, SparseArray, RingBuffer, List, SortedList, ArrayedCollection, RawArray, DoubleArray, FloatArray, Wavetable, Signal, String, SymbolArray, Int32Array, Int16Array, Int8Array, Array ). ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 10/31/2007 02:02'! getAllNestedCode ^ self contents.! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:20'! handleKeystroke: anEvent super handleKeystroke: anEvent. self highlightSyntax. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:20'! highlightBlues: aText | blue ttext blues | ttext _ aText asText. blues _ #(ar, kr, classVar, if, while, for, forBy, do, switch, case). blue _ (TextColor color: Color blue darker darker). blues do: [:x | ttext _ ttext copyReplaceTokens: x with: (x asText addAttribute: blue ). ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:43'! highlightClasses: aText | ttext tokens green | ttext _ aText asText. green _ (TextColor color: Color green darker darker darker). tokens _ ttext asString findTokens: (' ','.',',',';',':','-','(',')','}','{','[',']','*','/','+','\','=', Character cr asString). tokens do: [:x | ((Character alphabet) includes: (x asLowercase asCharacter)) ifTrue:[ ((ClassesIndex at: (x asLowercase asCharacter)) includes: x) ifTrue: [ ttext _ ttext asText copyReplaceTokens: x with: (x asText addAttribute: green). ]. ]. ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:21'! highlightComment: aText from: start | c1 c2 ttext red | red _ (TextColor color: Color red darker darker). ttext _ aText asText. c1 _ ttext findString: '//' startingAt: start. (c1>start) ifTrue: [ c2 _ ttext findString: Character cr startingAt: c1. (c2>c1) ifTrue: [ ttext _ ttext addAttribute: red from:c1 to: c2. ^ self highlightComment: ttext from: c2. ]. ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:21'! highlightOranges: aText | ttext tokens orange | ttext _ aText asText. orange _ (TextColor color: (Color r:1 g:0.5 b:0)). tokens _ ttext asString findTokens: (' ','.',',',';','-','(',')','}','{', Character cr asString). tokens do: [:x | (x asString endsWith: ':') ifTrue: [ ((x asString at:1) asCharacter isLetter) ifTrue: [ ttext _ ttext asText copyReplaceTokens: x with: (x asText addAttribute: orange). ]. ]. ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:21'! highlightPurples: aText | ttext purples purple | ttext _ aText asText. purples _ #( var, arg, this, super, thisProcess, thisFunction, thisMethod, thisFunctionDef, thisThread). purple _ (TextColor color: (Color r:0.5 g:0 b:1)). purples do: [:x | ttext _ ttext copyReplaceTokens: x with: (x asText addAttribute: purple ). ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:21'! highlightSymbols: aText | ttext tokens cyan pink | ttext _ aText asText. cyan _ (TextColor color: (Color r:0.5 g:0.5 b:1)). pink _ (TextColor color: (Color r:1 g:0.5 b:0.5)). tokens _ ttext asString findTokens: (' ','.',',',';',':','-','(',')','}','{', Character cr asString). tokens do: [:x | (x asString startsWith: '\') ifTrue: [ ttext _ ttext asText copyReplaceTokens: x with: (x asText addAttribute: cyan). ]. (x asString startsWith: '''') ifTrue: [ (x asString endsWith: '''') ifTrue: [ ttext _ ttext asText copyReplaceTokens: x with: (x asText addAttribute: cyan). ]. ]. (x asString startsWith: '"') ifTrue: [ (x asString endsWith: '"') ifTrue: [ ttext _ ttext asText copyReplaceTokens: x with: (x asText addAttribute: pink). ]. ]. ]. ^ ttext. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:47'! highlightSyntax | t1 newSel | t1 _ self contents asString. "to drop all attributes" t1 _ self highlightClasses: t1. t1 _ self highlightBlues: t1. t1 _ self highlightPurples: t1. t1 _ self highlightOranges: t1. t1 _ self highlightSymbols: t1. t1 _ self highlightComment: t1 from: 0. newSel := self editor selectionInterval. "restore editor state" self newContents: t1. self refreshParagraph. self editor selectFrom: newSel first to: newSel last. ! ! !SuperColliderTextMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 18:53'! initialize super initialize. "index classes" ClassesIndex ifNil: [ ClassesIndex _ Dictionary new. (Character alphabet) do: [:x | ClassesIndex at: x asCharacter put: (Bag new)]. self classes do: [ :class | ((Character alphabet) includes: (class asLowercase asCharacter)) ifTrue:[ (ClassesIndex at: (class asLowercase asCharacter)) add: class. ]. ]. ].! ! SuperColliderTextMorph subclass: #SuperColliderTextRectangleMorph instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderTextRectangleMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 01:39'! initialize super initialize. "index classes" classesIndex _ Dictionary new. (Character alphabet) do: [:x | classesIndex at: x asCharacter put: (Bag new)]. self classes do: [ :class | ((Character alphabet) includes: (class asLowercase asCharacter)) ifTrue:[ (classesIndex at: (class asLowercase asCharacter)) add: class. ]. ]. "wrapFlag _ false. self margins: 6@0. self autoFit: true." self borderWidth: 1; backgroundColor: Color white; contents:''.! ! !SuperColliderTextRectangleMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/2/2007 22:19'! justDroppedInto: aMorph event: anEvent super justDroppedInto: aMorph event: anEvent. "aMorph == self world ifFalse: [ aMorph layoutInset: 3; cellInset: 3. ]." ! ! !SuperColliderTextRectangleMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/20/2007 16:53'! sendCode: aString (self successors) do: [ :each | each ifNotNil: [each triggerWithCode: aString]].! ! !SuperColliderTextRectangleMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/20/2007 16:51'! triggerWithCode: someCode self sendCode: someCode, self getAllNestedCode.! ! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! SuperColliderTextRectangleMorph class instanceVariableNames: ''! !SuperColliderTextRectangleMorph class methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 20:21'! descriptionForPartsBin ^ self partName: 'code text' categories: #('SuperCollider') documentation: 'A rectangle in which you can type sclang code.'! ! CircleMorph subclass: #SuperColliderTriggerButtonMorph instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'SuperCollider-Morphs'! !SuperColliderTriggerButtonMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/22/2007 01:40'! aMouseDown: pt event: evt from: aMorph self color: Color blue. self sendTrigger.! ! !SuperColliderTriggerButtonMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/22/2007 01:40'! aMouseUp: pt event: evt from: aMorph self color: Color green.! ! !SuperColliderTriggerButtonMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/23/2007 18:44'! getAllNestedCode ^ ''.! ! !SuperColliderTriggerButtonMorph methodsFor: 'as yet unclassified' stamp: 'cm 5/22/2007 01:39'! initialize super initialize. self extent: 16@16; on: #mouseDown send: #aMouseDown:event:from: to: self; on: #mouseUp send: #aMouseUp:event:from: to: self. "self label: 'Trigger'; target: self; actionSelector: #sendTrigger."! ! !SuperColliderTriggerButtonMorph methodsFor: 'as yet unclassified' stamp: 'cm 11/3/2007 17:33'! sendTrigger | allCode | allCode _ self owner getAllNestedCode. self owner owner submorphs do: [ :each | (each isKindOf: SuperColliderSclangProcessMorph) ifTrue: [ each executeCode: allCode .]. ].! !