Controls

o1.gui.viewimpl.default.immutable.Controls
trait Controls[Model] extends Fast

Attributes

Graph
Supertypes
trait Fast
class Object
trait Matchable
class Any
Known subtypes
trait TraceGeneratingView[Model, TraceData]
class Traced[TraceData]
class Traced[TraceData]
class ViewComponent[Model]
class ViewFrame[Model]

Members list

Value members

Abstract methods

def makePic(state: Model): Pic

Returns a Pic that graphically represents the given state of the view’s model. This method is automatically invoked by the view after GUI events and clock ticks. Left abstract by this class so any concrete view needs to add a custom implementation.

Returns a Pic that graphically represents the given state of the view’s model. This method is automatically invoked by the view after GUI events and clock ticks. Left abstract by this class so any concrete view needs to add a custom implementation.

For best results, all invocations of this method on a single view object should return Pics of equal dimensions.

Parameters

state

a state of the model to be displayed

Attributes

Concrete methods

override def isDone(state: Model): Boolean

Determines if the given state is a “done state” for the view. By default, this is never the case, but that behavior can be overridden.

Determines if the given state is a “done state” for the view. By default, this is never the case, but that behavior can be overridden.

Once done, the view stops reacting to events and updating its graphics and may close its GUi window, depending on the constructor parameters of the view.

Parameters

state

a state of the model (possibly a done state)

Attributes

Definition Classes
override def isPaused: Boolean

Indicates whether the view is paused. By default, always returns false.

Indicates whether the view is paused. By default, always returns false.

Attributes

See also
Definition Classes
def onClick(state: Model, position: Pos): Model

Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

position

the position of the mouse cursor relative to the view’s top left-hand corner

state

the state of the model at the time of the click event

Attributes

def onClick(state: Model, event: MouseClicked): Model

Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the click event

Attributes

def onKeyDown(state: Model, key: Key): Model

Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

key

the key that was pressed down

state

the state of the model at the time of the keyboard event

Attributes

def onKeyDown(state: Model, event: KeyPressed): Model

Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the keyboard event

Attributes

def onKeyUp(state: Model, key: Key): Model

Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

key

the key that was released

state

the state of the model at the time of the keyboard event

Attributes

def onKeyUp(state: Model, event: KeyReleased): Model

Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the keyboard event

Attributes

def onMouseDown(state: Model, position: Pos): Model

Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

position

the position of the mouse cursor relative to the view’s top left-hand corner

state

the state of the model at the time of the mouse event

Attributes

def onMouseDown(state: Model, event: MousePressed): Model

Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the mouse event

Attributes

def onMouseDrag(state: Model, position: Pos): Model

Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

position

the position of the mouse cursor relative to the view’s top left-hand corner

state

the state of the model at the time of the drag event

Attributes

def onMouseDrag(state: Model, event: MouseDragged): Model

Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the drag event

Attributes

def onMouseEnter(state: Model, event: MouseEntered): Model

Determines what state should follow the given one when the mouse cursor enters the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor enters the view. By default, just returns the unchanged state, but this can be overridden.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the mouse event

Attributes

def onMouseExit(state: Model, event: MouseExited): Model

Determines what state should follow the given one when the mouse cursor exits the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor exits the view. By default, just returns the unchanged state, but this can be overridden.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the mouse event

Attributes

def onMouseMove(state: Model, position: Pos): Model

Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

position

the position of the mouse cursor relative to the view’s top left-hand corner

state

the state of the model at the time of the move event

Attributes

def onMouseMove(state: Model, event: MouseMoved): Model

Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the move event

Attributes

def onMouseUp(state: Model, position: Pos): Model

Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

position

the position of the mouse cursor relative to the view’s top left-hand corner

state

the state of the model at the time of the mouse event

Attributes

def onMouseUp(state: Model, event: MouseReleased): Model

Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the mouse event

Attributes

override def onStop(): Unit

Causes an additional effect when the view is stopped (with stop()). By default, this method does nothing.

Causes an additional effect when the view is stopped (with stop()). By default, this method does nothing.

Attributes

Definition Classes
def onTick(previousState: Model): Model

Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.

Parameters

previousState

the state of the model before the clock tick

Attributes

def onTick(previousState: Model, time: Long): Model

Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.

If you don’t need the number of the clock tick, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

previousState

the state of the model before the clock tick

time

the running number of the clock tick (the first tick being number 1, the second 2, etc.)

Attributes

def onType(state: Model, character: Char): Model

Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

character

the key that was typed

state

the state of the model at the time of the keyboard event

Attributes

def onType(state: Model, event: KeyTyped): Model

Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the keyboard event

Attributes

def onWheel(state: Model, rotation: Int): Model

Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.

If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.

Parameters

rotation

the number of steps the wheel rotated (negative means up, positive down)

state

the state of the model at the time of the wheel event

Attributes

def onWheel(state: Model, event: MouseWheelMoved): Model

Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.

Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.

If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.

Parameters

event

the GUI event that caused this handler to be called

state

the state of the model at the time of the wheel event

Attributes

override def sound(state: Model): Option[Sound]

Determines whether the view should play a sound, given a state of its model. By default, no sounds are played.

Determines whether the view should play a sound, given a state of its model. By default, no sounds are played.

Parameters

state

a state of the model

Attributes

Returns

a Sound that the view should play; None if no sound is appropriate for the given state

Definition Classes
final def traced: Traced[Model]

Returns a View that stores a trace of the ticks and GUI events that its event handlers process. This parameterless method stores, at each event, the (immutable) state of the View’s model. This is equivalent to calling tracedWith and passing in identity.

Returns a View that stores a trace of the ticks and GUI events that its event handlers process. This parameterless method stores, at each event, the (immutable) state of the View’s model. This is equivalent to calling tracedWith and passing in identity.

Attributes

final def tracedPics: Traced[Pic]

Returns a View that stores a pictorial trace of the ticks and GUI events that the View’s event handlers process. This is equivalent to calling tracedWith and passing in the View’s makePic method.

Returns a View that stores a pictorial trace of the ticks and GUI events that the View’s event handlers process. This is equivalent to calling tracedWith and passing in the View’s makePic method.

Attributes

Inherited and Abstract methods

Attributes

Inherited from:
Controls (hidden)
def start(): Unit

Attributes

Inherited from:
Controls (hidden)