TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

class ApplicationWindowBase in Tinman.AddOns.Application

Abstract base class for IApplicationWindow implementations.

abstract class ApplicationWindowBase extends Disposable
  implements IApplicationWindow
  base of ApplicationWindow

Public / Attributes

ClientSize

The current size of the application windows client area.

public virtual property ClientSize { get set }
type Vec2I
value The size of the window client area. Set to Zero to enable full-screen mode. Use any non-zero value to enter windowed mode.
implements IApplicationWindow.ClientSize

Remarks:

If the client size of an application window cannot be set by code (e.g. it is not a top-level window), the client size will remain unchanged and the State property will be Normal.

IsFocused

Does the application window currently have the input focus?

public property IsFocused { get }
type bool
value true if the application has the input focus, false if not.
implements IApplicationWindow.IsFocused

IsMouseInside

Is the mouse cursor currently inside the windows client area?

public property IsMouseInside { get }
type bool
value true if the mouse cursor is inside the client area, false if it is outside.
implements IApplicationWindow.IsMouseInside

LifecycleState

Returns the lifecycle state of this object.

public virtual property LifecycleState { get }
type LifecycleState
value The lifecycle state.
inherited Disposable.LifecycleState

MouseCaptured

Is the mouse currently captured by the application window?

public property MouseCaptured { get set }
type bool
value true if the mouse is currently captured, false if not.
implements IApplicationWindow.MouseCaptured

Remarks:

While the mouse cursor is captured, the application exhibits the following behaviour:

MouseCursor

The mouse cursor to show inside the application window.

public property MouseCursor { get set }
type MouseCursor
value The mouse cursor.
implements IApplicationWindow.MouseCursor

Remarks:

The default value is Default.

NativeHandle

Returns the raw handle value of the native resource that is contained in this object.

public abstract property NativeHandle { get }
type IntPtr
value The raw handle value.
implements INativeHandle.NativeHandle

Remarks:

The documentation of the implementing class will contain information on how to interpret the raw handle value.

OnInput

Returns the source for input event.

public property OnInput { get }
type IEventGeneric<InputEvent>
value [not-null] The input event source.
implements IApplicationWindow.OnInput

State

Returns the current state of the application window.

public virtual property State { get }
type WindowState
value The current state.
implements IApplicationWindow.State

Title

The current window title.

public virtual property Title { get set }
type string
value The window title or null.
implements IApplicationWindow.Title

Remarks:

If the title of an application window cannot be set by code (e.g. it is not a top-level window), the title will remain unchanged.

Public / Methods

AcquireTry

Acquires a strong reference to this disposable object.

[OwnerReturn, ThreadSafe]
public method AcquireTry ()
type IDisposable
returns this if a new strong reference has been acquired, null if this object is already being disposed.
inherited Disposable.AcquireTry

Remarks:

The object will not be actually disposed by calls to Dispose when there is at least one strong reference left. Code that calls the AcquireTry method is responsible for calling the Dispose method accordingly.

This method is not intended to be used in performance-critical code. It should only be used to high-level resource management.

Closing

Dispatches a Closing event to all listeners, which should initiate a graceful shutdown of the application.

public method Closing ()
implements IApplicationWindow.Closing

Dispose

Releases all resources held by this object if there are no more strong references to it, decrements the reference counter by one otherwise.

[Dispose, OwnerThis, ThreadSafe]
public method Dispose ()
inherited Disposable.Dispose

Remarks:

The Dispose method silently returns if the object has already been disposed.

Focus

Tries to acquire input focus.

public abstract method Focus ()
type bool
returns true if the input focus has been acquired, false if not.
implements IApplicationWindow.Focus

IsDown

Is the given keyboard key pressed down?

[Pure]
public method IsDown (KeyboardKey key)
type bool
params key The keyboard key.
returns true if the key is pressed down, false if not.
implements IInputState.IsDown

Is the given mouse button pressed down?

[Pure]
public method IsDown (MouseButton button)
type bool
params button The mouse button.
returns true if the button is pressed down, false if not.
implements IInputState.IsDown

ProcessSystemMessages

Processes all system messages for this window.

public virtual method ProcessSystemMessages ()
type bool
returns true if the window client area is dirty, false if not.
implements IApplicationWindow.ProcessSystemMessages

Protected / Attributes

ClientRect

Returns the bounds of the application windows client area.

protected abstract property ClientRect { get }
type Box2I
value The client area rectangle, in screen coordinates.

dirty

Can be set to true in order to make the next call to ProcessSystemMessages return true once.

protected field dirty
type bool

mousePosition

Relative position of mouse cursor in application window client area.

protected field mousePosition
type Vec2I

Protected / Constructors

ApplicationWindowBase

Creates a new instance of ApplicationWindow.

protected constructor ApplicationWindowBase ()

Protected / Methods

DisposeManaged

Disposes the managed resources held by a concrete subclass. This method will be called at most once per subclass.

protected override method DisposeManaged ()
overrides Disposable.DisposeManaged

Remarks:

This method will only be called when a disposable object is explicitly destroyed by user code calling the Dispose method. It will not be called when the object is collected as garbage by the system.

Overriding methods must call the DisposeManaged method of their base class. The base call should be the last statement.

The DisposeManaged method is called before the DisposeUnmanaged method.

DisposeUnmanaged

Disposes the unmanaged resources held by a concrete subclass. This method will be called exactly once per subclass.

protected virtual method DisposeUnmanaged ()
inherited Disposable.DisposeUnmanaged

Remarks:

Overriding methods must call the DisposeUnmanaged method of their base class. The base call should be the last statement.

The DisposeUnmanaged method is called after the DisposeManaged method.

KeyCodeMap

Maps the given native virtual keycode to the specified KeyboardKey value.

protected method KeyCodeMap (int32 keyCode, KeyboardKey key)
params keyCode The native virtual keycode.
  key The KeyboardKey value.

MouseCursorSet

protected abstract method MouseCursorSet (MouseCursor mouseCursor)
params mouseCursor

OnButton

protected method OnButton (MouseButton button, bool pressed)
params button
  pressed

OnChar

A character value has been typed in.

protected method OnChar (char keyChar)
params keyChar The character value.

OnKey

A keyboard key has been pressed or released.

protected method OnKey (int32 keyCode, bool pressed)
params keyCode The native virtual keycode.
  pressed true if the key has been pressed, false if it has been released.

OnMouseLeave

The mouse cursor has left the application window client area.

protected method OnMouseLeave ()
type bool
returns true if the MouseLeave event has been sent, false if not.

OnMouseMove

The mouse has moved.

protected method OnMouseMove (int32 positionX, int32 positionY, int32 wheel)
params positionX X-coordinate of new position of mouse cursor in application window client area.
  positionY Y-coordinate of new position of mouse cursor in application window client area.
  wheel The mouse wheel movement.

OnWindowBoundsChanged

The bounds of the application window have changed.

protected method OnWindowBoundsChanged ()

OnWindowFocus

The application window has gained or lost focus.

protected method OnWindowFocus (bool focussed)
params focussed true if the window has gained focus, false if it has lost it.

SendInputEvent

Sends an input event to all registered listeners.

protected method SendInputEvent (InputEvent inputEvent)
params inputEvent The input event to send.