SuperCollider OVERVIEWS
GUI

# List of GUI classes

The most used GUI classes and their kit-specific equivalents

## Kit-independent GUI classes

The following table contains classes that are independent of GUI implementation, but may use other GUI classes or be used with any of them.

Class | Description
EZSlider |
EZNumber |
EZRanger |
EZListView |
EZPopUpMenu |
EZScroller |
EZKnob |
EZText |
Gradient | Linear gradient between two colors.
HiliteGradient | Radial gradient between two colors
FlowLayout | A decorator that positions views in horizontal series, wrapping to a new line when meeting a border
Color | Representation of colors
FreqScopeView | A view based on ScopeView that displays frequency spectrum
FreqScope | A window containing a FreqScopeView and tools to control its display

## Window and views

The following table contains generic classes and their corresponding classes in each GUI kit, for window and most views.

Generic | CocoaGUI | SwingGUI | Qt GUI | Description
Window | SCWindow | JSCWindow | QWindow | a frame that can contain gadgets
N/A | SCModalWindow |  | N/A | a modal window
N/A | SCModalSheet |  | N/A | a modal sheet to attach to windows
View | SCView | JSCView | QView | The base class for most view classes. Important help file.
CompositeView | SCCompositeView | JSCCompositeView | QView | container view for nesting layouts
HLayoutView | SCHLayoutView | JSCHLayoutView | QHLayoutView | container view with horizontal distribution of children
VLayoutView | SCVLayoutView | JSCVLayoutView | QVLayoutView | container view with vertical distribution of children
Button | SCButton | JSCButton | QButton | a multiple state push button
PopUpMenu | SCPopUpMenu | JSCPopUpMenu | QPopUpMenu | a collapsed multiple choice button
Slider | SCSlider | JSCSlider | QSlider | a horizontal or vertical slider
RangeSlider | SCRangeSlider | JSCRangeSlider | QRangeSlider | horizontal or vertical interval slider
Slider2D | SC2DSlider | JSC2DSlider | QSlider2D | a horizontally and vertically moveable slider
TextField | SCTextField | JSCTextField | QTextField | an editable one line text field
ListView | SCListView | JSCListView | QListView | a list of text items
StaticText | SCStaticText | JSCStaticText | QStaticText | a text label
NumberBox | SCNumberBox | JSCNumberBox | QNumberBox | editable number field
DragSource | SCDragSource | JSCDragSource | QDragSource | object container acting as a source for drag-n-drop
DragSink | SCDragSink | JSCDragSink | QDragSink | object container acting as a target for drag-n-drop
DragBoth | SCDragBoth | JSCDragBoth | QDragBoth | combination of DragSource and DragSink
Stethoscope | SCStethoscope | JStethoscope | QStethoscope | oscilloscope tool
ScopeView | SCScope | JSCScope | QScope | oscilloscope view
TabletView | SCTabletView | JSCTabletView | N/A | view for receiving graphic tablet data
TabletSlider2D | SC2DTabletSlider | N/A | N/A | 2D slider with support for graphic tablet data
FreqScope | FreqScope | FreqScope | FreqScope | spectrum tool
FreqScopeView | FreqScopeView | FreqScopeView | FreqScopeView | spectrum view
MultiSliderView | SCMultiSliderView | JSCMultiSliderView | QMultiSliderView | array of sliders
EnvelopeView | SCEnvelopeView | JSCEnvelopeView | QEnvelopeView | breakpoint envelope editor
UserView | SCUserView | JSCUserView | QUserView | view for user-defined drawing operations
SoundFileView | SCSoundFileView | JSCSoundFileView | QSoundFileView | waveform view / editor for sound files
MovieView | SCMovieView | JSCMovieView | N/A | canvas for movie (QuickTime) and image display
TextView | SCTextView | JSCTextView | QTextView | multiline text editor
N/A | SCQuartzComposerView | N/A | N/A | view for displaying QuartzComposer documents
N/A | SCImage | N/A | N/A | an image component for the Mac OS X
N/A | SCImageFilter | N/A | N/A | a filter class to use with SCImage
N/A | SCImageKernel | N/A | N/A | a kernel class to use with SCImage.
Knob | SCKnob | JKnob | QKnob | a knob view

## Layout management

The following table contains classes used in layout management.

NOTE: This classes are only implemented in Qt GUI!

Class | Description
QLayout | The abstract base class of all layouts.
QLineLayout | The abstract base class of layouts that arrange items in a line.
HLayout | A layout that arranges items in horizontal line.
VLayout | A layout that arranges items in vertical line.
GridLayout | A layout that arranges items in a 2 dimensional grid.
StackLayout | A layout that stacks items on top of each other.

## Other GUI classes

Generic | CocoaGUI | SwingGUI | Qt GUI | Description
Dialog | CocoaDialog | SwingDialog | QDialog | file selection dialog management
Font | SCFont | JFont | QFont | a font typeface description.
Pen | SCPen | JPen | QPen | custom drawing operations class
MouseX | MouseX | JMouseX | MouseX | UGen. JMouseX for backward compatiblility only.
MouseY | MouseY | JMouseY | MouseY | UGen. JMouseY for backward compatiblility only.
MouseButton | MouseButton | JMouseButton | MouseButton | UGen. JMouseButton for backward compatiblility only.
KeyState | KeyState | JKeyState | KeyState | UGen. JKeyState for backward compatiblility only.
use GUI.speech | Speech | JSpeech | N/A | text-to-speech synthesis management

helpfile source: /Applications/SuperCollider.app/Contents/Resources/HelpSource/Overviews/GUI-Classes.schelp
link::Overviews/GUI-Classes::
sc version: 3.8.0