Base class for all user interface components.
abstract class
|
Component
|
extends
|
Disposable
|
||
implements
|
IGraphicsComponent
|
||||
IInputConsumer
|
|||||
IRenderable2D
|
|||||
IScrollable
|
|||||
IUpdateableFrameTime
|
|||||
base of
|
Choice
|
||||
Container
|
|||||
ImageView
|
|||||
InputField
|
|||||
LabelView
|
|||||
PushButton
|
|||||
ScrollBar
|
|||||
Slider
|
The default layout settings are defined by Default and returned by the default implementation of the property LayoutDefault. Subclasses may override it, in order to define custom default layout settings. In this case, the class documentation should list these values.
The input click of the default action of this component.
public
property
|
Action
{
get
set
}
|
||
type
|
InputClick
|
||
value
|
The input click or None. |
Remarks:
Defaults to None.
Returns the bounds of this component in the client area of its parent container.
public
property
|
Bounds
{
get
}
|
||
type
|
Box2I
|
||
value
|
The component bounds. |
Can this component receive the input focus?
public
property
|
Focusable
{
get
set
}
|
||
type
|
bool
|
||
value
|
true
if
the
component
can
receive
the
input
focus,
false
if
not.
|
Height of this component in its parent containers client area.
public
property
|
Height
{
get
}
|
||
type
|
int32
|
||
value
|
The current component height, in pixels. | ||
implements
|
IScrollable.Height
|
Does this component has the input focus?
public
virtual
property
|
IsFocussed
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
component
has
the
input
focus,
false
if
not. |
public
property
|
IsHighlighted
{
get
}
|
||
type
|
bool
|
||
value
|
Does the mouse cursor currently hover above this component?
public
property
|
IsHovered
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
the
mouse
cursor
hovers
above
this
component,
false
if
not.
|
The alignment anchor of this component.
public
property
|
LayoutAlign
{
get
set
}
|
||
type
|
Anchor
|
||
value
|
The anchor. |
Returns the default Layout settings for this component.
public
virtual
property
|
LayoutDefault
{
get
}
|
||
type
|
Layout
|
||
value
|
The default layout settings. |
Remarks:
The default implementation returns Default.
The fill mode of this component.
public
virtual
property
|
LayoutFill
{
get
set
}
|
||
type
|
Axis
|
||
value
|
The fill mode. |
The bounds of this component in its parent containers layout grid.
public
property
|
LayoutGrid
{
get
set
}
|
||
type
|
Box2I
|
||
value
|
The layout grid bounds. |
Defines how the layout grid column resp. row in the components parent container grows.
public
property
|
LayoutGrow
{
get
set
}
|
||
type
|
Axis
|
||
value
|
The axes that will grow. |
The current layout settings of this component.
public
virtual
property
|
LayoutInfo
{
get
set
}
|
||
type
|
Layout
|
||
value
|
The Layout info object. |
The outer margin of this component.
public
property
|
LayoutMargin
{
get
set
}
|
||
type
|
Edging
|
||
value
|
The outer margin. |
Defines how the layout grid column resp. row in the components parent container grows.
public
property
|
LayoutShrink
{
get
set
}
|
||
type
|
Axis
|
||
value
|
The axes that will shrink. |
The requested size of this component, in pixels.
public
property
|
LayoutSize
{
get
set
}
|
||
type
|
Vec2I
|
||
value
|
The requested size. |
Returns the lifecycle state of this object.
public
virtual
property
|
LifecycleState
{
get
}
|
||
type
|
LifecycleState
|
||
value
|
The lifecycle state. | ||
inherited
|
Disposable.LifecycleState
|
The components default action has been triggered.
public
property
|
OnAction
{
get
}
|
||
type
|
IEventGeneric<Component>
|
||
value
|
|
The event object. |
The parent container of this component.
public
property
|
Parent
{
get
}
|
||
type
|
Container
|
||
value
|
The
parent
container
or
null
if
this
component
is
the
root. |
Returns the corners that this component shares with the client area of its parent container.
public
property
|
ParentCorners
{
get
}
|
||
type
|
Corner
|
||
value
|
The shared client area corners. |
Returns the edges that this component shares with the client area of its parent container.
public
property
|
ParentEdges
{
get
}
|
||
type
|
Anchor
|
||
value
|
The shared client area edges. |
Scroll height of this component.
public
property
|
ScrollHeight
{
get
}
|
||
type
|
int32
|
||
value
|
The current scroll height, in pixels. | ||
implements
|
IScrollable.ScrollHeight
|
Returns the size of a single scroll tick.
public
virtual
property
|
ScrollTick
{
get
}
|
||
type
|
int32
|
||
value
|
The scroll tick size, in pixels. | ||
implements
|
IScrollable.ScrollTick
|
Scroll width of this component.
public
property
|
ScrollWidth
{
get
}
|
||
type
|
int32
|
||
value
|
The current scroll width, in pixels. | ||
implements
|
IScrollable.ScrollWidth
|
The horizontal scroll position of this component.
public
property
|
ScrollX
{
get
set
}
|
||
type
|
int32
|
||
value
|
The current scroll position. | ||
implements
|
IScrollable.ScrollX
|
The vertical scroll position of this component.
public
property
|
ScrollY
{
get
set
}
|
||
type
|
int32
|
||
value
|
The current scroll position. | ||
implements
|
IScrollable.ScrollY
|
The component state.
public
virtual
property
|
State
{
get
set
}
|
||
type
|
ComponentState
|
||
value
|
The component state. |
Returns the style class for this component type.
public
abstract
property
|
StyleClassType
{
get
}
|
||
type
|
StyleClass
|
||
value
|
The
style
class
(e.g.
'InputField'
for
InputField). |
Optional style class variant of this component.
public
property
|
StyleClassVariant
{
get
set
}
|
||
type
|
string
|
||
value
|
The
variant
name
or
null . |
The stylesheet object to use for this user interface element.
public
property
|
Stylesheet
{
get
set
}
|
||
type
|
Stylesheet
|
||
value
|
The
stylesheet
object
to
use
or
null . |
The user-defined tag value of this component.
public
property
|
Tag
{
get
set
}
|
||
type
|
int32
|
||
value
|
The
tag
value
or
null . |
Remarks:
Defaults
to
-1
.
Width of this component in its parent containers client area.
public
property
|
Width
{
get
}
|
||
type
|
int32
|
||
value
|
The current component width, in pixels. | ||
implements
|
IScrollable.Width
|
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.
Consumes the given user input event.
public
method
|
ConsumeInput
(InputEvent inputEvent)
|
||
type
|
bool
|
||
params
|
inputEvent
|
The user input event. | |
returns
|
true
if
the
input
event
has
been
consumed,
false
if
not. |
||
implements
|
IInputConsumer.ConsumeInput
|
Remarks:
Input events are provided to an IInputConsumer object only if it has the input focus (see FocusGained and FocusLost). Mouse events are provided when the mouse cursor is inside of the input bounds (MouseEnter and MouseLeave). The Closing event can be provided at any time.
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.
Transfers the input focus to this component.
public
method
|
Focus
()
|
||
returns
|
|
this | |
implements
|
IFocusable.Focus
|
Attaches this component to the given Graphics context.
public
virtual
method
|
GraphicsAttach
(Graphics graphics)
|
||
params
|
graphics
|
[not-null]
|
The graphics context. |
implements
|
IGraphicsComponent.GraphicsAttach
|
Remarks:
All graphics-related resources should be created here.
Detaches this user interface component from its Graphics context.
public
virtual
method
|
GraphicsDetach
()
|
||
implements
|
IGraphicsComponent.GraphicsDetach
|
Remarks:
All graphics-related resources should be disposed here.
The screen size has changed.
public
virtual
method
|
GraphicsResize
(Vec2I screenSize)
|
||
params
|
screenSize
|
The new screen size, in pixels. | |
implements
|
IGraphicsComponent.GraphicsResize
|
Remarks:
The given screen size is equal to the value of ScreenSize of the Graphics object that has been passed to GraphicsAttach earlier.
Performs 2D rendering.
public
method
|
Render2D
(Graphics g)
|
||
params
|
g
|
[not-null]
|
The graphics object to use. |
implements
|
IRenderable2D.Render2D
|
Remarks:
When this method is called, the given Graphics object has already been initialized for 2D rendering:
(0|0)
refers
to
the
top-left
pixel
of
the
target
rectangle
and
ScreenSize
returns
the
target
rectangle
size.
The
target
rectangle
and
the
clipping
rectangle
can
be
different.
This method is called once per application frame.
public
virtual
method
|
UpdateFrameTime
(float32 time)
|
||
type
|
bool
|
||
params
|
time
|
[>0]
|
The amount of time that has elapsed since the last frame, in seconds. |
returns
|
true
if
the
object
needs
to
be
presented
again,
false
if
the
current
presentation
is
still
valid.
|
||
implements
|
IUpdateableFrameTime.UpdateFrameTime
|
Returns the actual margin of this component.
protected
property
|
ActualLayoutMargin
{
get
}
|
||
type
|
Edging
|
||
value
|
The actual margin value. |
Remarks:
The default implementation returns LayoutMargin. Implementing subclasses can perform additional computations here.
Subclasses must call InvalidateLayout with ComputeLayoutGridExtend to notify when ActualLayoutMargin returns a different value.
Returns the actual minimum layout size of this component.
protected
virtual
property
|
ActualLayoutSize
{
get
}
|
||
type
|
Vec2I
|
||
value
|
The actual minimum layout size. |
Remarks:
The default implementation returns LayoutSize. Implementing subclasses can perform additional computations here.
Subclasses must call InvalidateLayout with ComputeLayoutGridExtend to notify when ActualLayoutSize returns a different value.
The current color scheme.
protected
field
|
color
|
||
type
|
ColorScheme
|
The
current
Graphics
object
or
null
if
this
component
is
not
attached.
protected
field
|
graphics
|
||
type
|
Graphics
|
Is this component currently attached to a live component hierarchy?
protected
property
|
IsAttached
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
component
is
attached
to
a
live
hierarchy,
false
if
not.
|
The TextFont value for this component.
[Owner]
|
||||
protected
field
|
textFont
|
|||
type
|
PixelFont
|
The TextFontHint value for this component.
[Owner]
|
||||
protected
field
|
textFontHint
|
|||
type
|
PixelFont
|
Creates a new instance of Component.
protected
constructor
|
Component
()
|
The action click has been performed.
protected
virtual
method
|
ActionClick
()
|
See also:
ActionNotifies all listeners of the OnAction event.
protected
method
|
ActionNotify
(bool flash = true)
|
||
params
|
flash
|
Render
a
visual
flash
to
indicate
the
action?
Defaults
to
true .
|
This method is called each time the Bounds of this component have changed.
[EmptyBody]
|
||||
protected
virtual
method
|
BoundsChanged
()
|
protected
virtual
method
|
ConsumeAction
(InputEvent action)
|
||
type
|
bool
|
||
params
|
action
|
Processes the given input event.
[EmptyBody]
|
||||
protected
virtual
method
|
ConsumeKeyboard
(InputEvent key)
|
|||
type
|
bool
|
|||
params
|
key
|
The mouse event. | ||
returns
|
true
if
the
component
has
consumed
the
input
event,
false
if
not.
|
Processes the given input event.
protected
virtual
method
|
ConsumeMouse
(InputEvent mouse)
|
||
type
|
bool
|
||
params
|
mouse
|
The mouse event. | |
returns
|
true
if
the
component
has
consumed
the
input
event,
false
if
not.
|
protected
method
|
Dirty
()
|
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.
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.
Performs component specific rendering.
[EmptyBody]
|
||||
protected
virtual
method
|
DoRender
(Graphics graphics)
|
|||
params
|
graphics
|
The Graphics object to use. |
Applies the current stylesheet settings to this component.
protected
virtual
method
|
DoStylesheetApply
()
|
Remarks:
Implementing methods should query fetch style property values and store them somewhere for using them later quickly.
All graphics resources that are acquired during DoStylesheetApply must be properly disposed in GraphicsDetach.
Draws the background rectangle of this component.
protected
method
|
DrawBackground
(bool border,
int32 round = 5)
|
||
params
|
border
|
Draw a border? | |
round
|
Size
of
round
corners.
Defaults
to
5 . |
Draws a hint text.
protected
method
|
DrawHint
(string text,
int32 x,
int32 y,
Anchor anchor)
|
||
params
|
text
|
The hint text. | |
x
|
X-coordinate of anchor point. | ||
y
|
Y-coordinate of anchor point. | ||
anchor
|
The text anchor point. |
Draws a text.
protected
method
|
DrawString
(string text,
int32 x,
int32 y,
Anchor anchor)
|
||
params
|
text
|
The text. | |
x
|
X-coordinate of anchor point. | ||
y
|
Y-coordinate of anchor point. | ||
anchor
|
The text anchor point. |
This method is called when this component has lost or gained the input focus.
[EmptyBody]
|
||||
protected
virtual
method
|
FocusChanged
()
|
Invalidates the layout grid of the parent container of this component.
protected
method
|
InvalidateLayout
(LayoutAction layoutAction = LayoutAction.ComputeLayoutGridExtend)
|
||
params
|
layoutAction
|
The layout action that needs to be performed. Defaults to ComputeLayoutGridExtend. |
The logger object of this class.
public
static
readonly
field
|
Logger
|
||
type
|
ILogger
|