WebRadioApp  0.1
Unit Application (EW Studio)
Class Overview
─Application::DeviceClass
Core::View
─┴──▶ Core::RectView
────┴──▶ Core::Group
───────┼──▶ Application::ClockScreen
───────┼──▶ Application::Digit
───────┼──▶ Application::FFTViews
───────┼──▶ Application::RadioInterface
───────┼──▶ Application::Stations
───────┼──▶ Application::VUMeter
───────┼──▶ Application::WelcomeDialog
───────┼──▶ Core::Root
───────┼──┴──▶ Application::Application
───────┴──▶ Templates::PickerControl
──────────┼──▶ Application::DatePicker
──────────┴──▶ Application::TimePicker
Resources
Application::Background
Application::BackgroundTUM
Application::FontL
Application::FontXXL
Application::StationButton
Application::TUMLogo
Auto Objects
Application::Device
Application::Gauge_Config
Application::Station_Button

The unit of the application class

resource Resources::Bitmap Background
{
attr bitmapfile FileName = .\Res\Custom Assets EW\TUM_Background.png;
attr framesize FrameSize;
attr framedelay FrameDelay;
attr bitmapformat Format = Native;
attr bitmapdithering Dithering = Auto;
attr bitmapmode Mode = Default;
}
This is a bitmap resource used in the application.
resource Resources::Bitmap BackgroundTUM
{
attr bitmapfile FileName = .\Res\Custom Assets EW\TUM_Background.png;
attr framesize FrameSize;
attr framedelay FrameDelay;
attr bitmapformat Format = Native;
attr bitmapdithering Dithering = Auto;
attr bitmapmode Mode = Default;
}
This is a bitmap resource used in the application.
resource Resources::Font FontL
{
attr fontname FontName = IBM Plex Sans Condensed Medium;
attr fontheight Height = 36;
attr fontquality Quality = High;
attr fontranges Ranges = 0x20-0x7F;
attr fontaspectratio AspectRatio = 1.0;
attr fontbold Bold = true;
attr fontitalic Italic = false;
attr fontkerning Kerning = true;
attr fontheightmode HeightMode = Compatible;
attr fontrowdistance RowDistance;
}
Font resource used per default by 'Text' and 'Attributed Text' views to ensure that new views don't remain empty on the screen.
resource Resources::Font FontXXL
{
attr fontname FontName = IBM Plex Sans Condensed Medium;
attr fontheight Height = 36;
attr fontquality Quality = High;
attr fontranges Ranges = 0x20-0x7F;
attr fontaspectratio AspectRatio = 1.0;
attr fontbold Bold = true;
attr fontitalic Italic = false;
attr fontkerning Kerning = true;
attr fontheightmode HeightMode = Compatible;
attr fontrowdistance RowDistance;
}
Font resource used per default by 'Text' and 'Attributed Text' views to ensure that new views don't remain empty on the screen.
resource Resources::Bitmap StationButton
{
attr bitmapfile FileName = .\Res\Custom Assets EW\StationButtons.png;
attr framesize FrameSize = <56,39>;
attr framedelay FrameDelay;
attr bitmapformat Format = Native;
attr bitmapdithering Dithering = Auto;
attr bitmapmode Mode = Default;
}
This is a bitmap resource used in the application.
autoobject Application::DeviceClass Device;
This object represents an instance of the device interface implemented in the class Application::DeviceClass.
autoobject WidgetSet::GaugeConfig Gauge_Config;
Custom gauge configuration for the VUMeter
autoobject WidgetSet::ToggleButtonConfig Station_Button
{
preset LabelOnColorActive = #6C6E70FF;
preset LabelOnColorFocused = #6C6E70FF;
preset LabelOnColorDisabled = #A8ABABFF;
preset LabelOnColorDefault = #6C6E70FF;
preset LabelOffColorActive = #6C6E70FF;
preset LabelOffColorFocused = #6C6E70FF;
preset LabelOffColorDisabled = #A8ABABFF;
preset LabelOffColorDefault = #6C6E70FF;
preset IconOnTintActive = #6C6E70FF;
preset IconOnTintFocused = #6C6E70FF;
preset IconOnTintDisabled = #A8ABABAA;
preset IconOnTintDefault = #6C6E70FF;
preset IconOffTintActive = #6C6E70FF;
preset IconOffTintFocused = #6C6E70FF;
preset IconOffTintDisabled = #A8ABABAA;
preset IconOffTintDefault = #6C6E70FF;
preset IconMarginLeft = 0;
preset LabelOnFont = Resources::FontMedium;
preset LabelOffFont = Resources::FontMedium;
preset FaceOnFrameActive = 3;
preset FaceOnFrameFocused = 2;
preset FaceOnFrameDisabled = 0;
preset FaceOnFrameDefault = 3;
preset FaceOnActive = Application::StationButton;
preset FaceOnFocused = Application::StationButton;
preset FaceOnDisabled = Application::StationButton;
preset FaceOnDefault = Application::StationButton;
preset FaceOffFrameActive = 3;
preset FaceOffFrameFocused = 2;
preset FaceOffFrameDisabled = 0;
preset FaceOffFrameDefault = 1;
preset FaceOffActive = Application::StationButton;
preset FaceOffFocused = Application::StationButton;
preset FaceOffDisabled = Application::StationButton;
preset FaceOffDefault = Application::StationButton;
preset WidgetMinSize = <56,39>;
}
Custom Station Buttons

Class Application::Application

Application::Application
Core::Root
CursorDragLimit
CursorSequelDelay
Language
Styles
VirtualKeyboard
BeginAnimation()
BeginModal()
BeginUpdate()
CaptureCursor()
DeflectCursor()
DoesNeedUpdate()
DriveCursorHitting()
DriveCursorMovement()
DriveKeyboardHitting()
DriveMultiTouchHitting()
DriveMultiTouchMovement()
EndAnimation()
EndModal()
EndUpdate()
GetFPS()
GetModalGroup()
GetUpdateRegion()
Initialize()
RetargetCursor()
RetargetCursorWithReason()
SetUserInputTimestamp()
Update()
UpdateCanvas()
UpdateGE20()
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

This is the root component of the entire GUI application.

Class Application::DeviceClass

Application::DeviceClass
BufferValue
ConnectionInfo
HardButtonCounter
HardButtonEvent
LValueStatus
LedStatus
MetaInfo
RadioInfo
Station
StationInfo
VUMeterStatus
CommandPrint()
InitRadioStations()
StationPlay()
TriggerHardButtonEvent()
UpdateBufferValue()
UpdateConnectionInfo()
UpdateFFTDraw()
UpdateHardButtonCounter()
UpdateMetaInfo()
UpdateRadioInfo()
UpdateStationInfo()
UpdateVUMeterDraw()
UpdateVolume()

This class implements the interface between the GUI application and the device.

property int32 BufferValue = 0;
This property represents the buffer value
method void CommandPrint
(
arg string aMessage
);
This method implements a device command that calls the underlying device driver to print the given string (e.g. via serial interface).
property string ConnectionInfo = " ";
This property represents the connection information
property int32 HardButtonCounter = 0;
This property represents a counter that is incremented by the device driver, while the hardware button of the board is pressed (This is the reference of increment the volume).
object Core::SystemEvent HardButtonEvent;
This object represents an individual system event.
method void InitRadioStations();
This method is intended to be called by the device driver to notify the GUI application of an intitialization of the station grid.
property string LValueStatus = " ";
This property represents the status of the FFT drawing event.
property bool LedStatus = false;
This property represents the state of the LED mounted on the board.
property string MetaInfo = " ";
This property represents the metainformation of the current programm in the current radio station.
property string RadioInfo = " ";
This property represents the Radio information (Messages, Framedecode, etc..)
property string Station = " ";
This property represents the state of the station interface.
property string StationInfo = " ";
This property represents the full name of a radio station
method void StationPlay
(
arg string aMessage
);
This method implements a device command that calls the underlying device driver to print info about the seleted station to be played.
method void TriggerHardButtonEvent();
This method is intended to be called by the device to notify the GUI application about a particular system event.
method void UpdateBufferValue
(
arg int32 aNewValue
);
This method is intended to be called by the device driver to notify the GUI application about an update in the buffer value.
method void UpdateConnectionInfo();
This method is intended to be called by the device driver to notify the GUI application about the Network information of the device.
method void UpdateFFTDraw();
This method is intended to be called by the device driver to notify the GUI application about the values of the FFT diagrams.
method void UpdateHardButtonCounter
(
arg int32 aNewValue
);
This method is intended to be called by the device driver to notify the GUI application when the wakeup button on the STM32H747I-DISCO was pushed.
method void UpdateMetaInfo();
This method is intended to be called by the device driver to notify the GUI application about an update of the metainformation of the radio station.
method void UpdateRadioInfo();
This method is intended to be called by the device driver to notify the GUI application about an update of the radio station information.
method void UpdateStationInfo();
This method is intended to be called by the device driver to notify the GUI application about an update in the name of the station
method void UpdateVUMeterDraw();
This method is intended to be called by the device driver to notify the GUI application about the values of the VUMeter.
method void UpdateVolume
(
arg int32 aNewValue
);
This method is intended to be called by the GUI application to update the Sound Volume in the STM32H747I-DISCO.
property string VUMeterStatus = " ";
This property represents the status of the VUMeter

Class Application::ClockScreen

Application::ClockScreen
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

It is a component that displays a clock

Class Application::Digit

Application::Digit
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

Custom digit widget

Class Application::FFTViews

Application::FFTViews
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

It is a component that shows the FFT transformation graphics

Class Application::RadioInterface

Application::RadioInterface
BufferInfoText
BufferInfoValue
ClockScreen
ConnectionInfoText
Device
FFTViews
MetaInfoText
OverlayLRMarker
PointEffect
RadioInfoText
SeparateLRMarker
StationInfoText
Stations
StationsMarker
VUMeter
VUMeterMarker
VolumeSlider
VolumeText
onBufferValueEvent
onConnectionInfoEvent
onFFTDrawEvent
onMetaInfoEvent
onRadioInfoEvent
onScreensEvent
onStationInfoEvent
onUpdateVolume
onVUMeterDrawEvent
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

This is the RadioInterface component where the user can iteract with the whole application.

object Views::Text BufferInfoText
{
preset Bounds = <400,427,800,453>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "Buffer Info:";
preset Font = Application::FontXS;
}
Buffer values display
object WidgetSet::HorizontalValueBar BufferInfoValue
{
preset Bounds = <400,453,799,478>;
preset MaxValue = 10000;
preset Appearance = WidgetSet::HorizontalValueBar_Small;
}
Buffer values display
object Application::ClockScreen ClockScreen
{
preset Bounds = <0,139,217,374>;
preset Embedded = true;
}
Clock screen
object Views::Text ConnectionInfoText
{
preset Bounds = <0,427,400,478>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "Connection Info:";
preset Font = Application::FontXS;
}
Connection info
var Application::DeviceClass Device = Application::Device;
Variable to reference the device class the entire lifetime of the application. This avoids that the device class will be deleted by the Garbage Collector.
object Application::FFTViews FFTViews
{
preset Bounds = <800,139,1521,374>;
preset Buffered = true;
preset Embedded = true;
}
FFT views
object Views::Text MetaInfoText
{
preset Bounds = <0,113,721,139>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "-> ";
preset Font = Application::FontXS;
preset Color = #FFDB00FF;
}
Metainformation display
object WidgetSet::PushButton OverlayLRMarker
{
preset Bounds = <260,374,362,427>;
preset Opacity = 200;
preset OnPress = onScreensEvent;
preset Label = "Overlay L&R";
preset Appearance = WidgetSet::PushButton_Small;
}
Selection buttons
object Effects::PointEffect PointEffect
{
preset Timing = Effects::Timing.FastIn_EaseOut;
preset CycleDuration = 200;
}
This is a move point effect used by the outline box to get a smooth scrolling between the screens.
object Views::Text RadioInfoText
{
preset Bounds = <200,0,800,87>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "Radio Info:";
preset Font = Application::FontXS;
}
Radio info display
object WidgetSet::PushButton SeparateLRMarker
{
preset Bounds = <375,374,487,427>;
preset Opacity = 200;
preset OnPress = onScreensEvent;
preset Label = "Separate L&R";
preset Appearance = WidgetSet::PushButton_Small;
}
Selection buttons
object Views::Text StationInfoText
{
preset Bounds = <0,87,721,113>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "Station:";
preset Font = Application::FontXS;
}
Station info display
object Application::Stations Stations
{
preset Bounds = <217,139,721,374>;
preset Embedded = true;
}
Station interface
object WidgetSet::PushButton StationsMarker
{
preset Bounds = <146,374,239,427>;
preset OnPress = onScreensEvent;
preset Label = "Stations";
preset Appearance = WidgetSet::PushButton_Small;
}
Selection buttons
object Application::VUMeter VUMeter
{
preset Bounds = <1521,139,2242,374>;
preset Embedded = true;
}
VU-Meter
object WidgetSet::PushButton VUMeterMarker
{
preset Bounds = <500,374,603,427>;
preset Opacity = 200;
preset OnPress = onScreensEvent;
preset Label = "VU-Meter";
preset Appearance = WidgetSet::PushButton_Small;
}
Selection buttons
object WidgetSet::VerticalSlider VolumeSlider
{
preset Bounds = <721,139,799,427>;
preset OnUpdate = onUpdateVolume;
preset CurrentValue = 50;
preset Appearance = WidgetSet::VerticalSlider_Medium;
}
Volume
object Views::Text VolumeText
{
preset Bounds = <721,87,799,139>;
preset Alignment = Views::TextAlignment[AlignHorzJustified, AlignVertTop];
preset String = "Volume:";
preset Font = Application::FontXS;
}
Volume
slot onBufferValueEvent;
This method updates the buffer value in the Radio interface
slot onConnectionInfoEvent;
This method updates the connection information in the Radio interface
slot onFFTDrawEvent;
This method performs the FFT drawings.
slot onMetaInfoEvent;
This method updates the metainformation in the Radio interface
slot onRadioInfoEvent;
This method updates the radio information in the Radio interface
slot onScreensEvent;
This method is called by the Push buttons (Stations, Overly L&R, Sperate L&R, VU-Meter) when they are pressed and it performs the selection of the respective screen.
slot onStationInfoEvent;
This method updates the station information in the Radio interface
slot onUpdateVolume;
This method updates the volume value in the Radio interface
slot onVUMeterDrawEvent;
This method performs the volume units display

Class Application::Stations

Application::Stations
StationPlay
UpdateButtons
onStationsEvent
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

It is a component that allocates all the stations interface for the radio

slot StationPlay;
This is a method called by the toggle buttons of the station grid which performs the playing.
slot UpdateButtons;
This method update the state of the buttons
slot onStationsEvent;
This method update the IDs of the buttons

Class Application::VUMeter

Application::VUMeter
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

It is a component that displays a volume unit meter

Class Application::WelcomeDialog

Application::WelcomeDialog
Version
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

This is the WelcomeDialog component. It simply shows a welcoming message.

property string Version = "1.0";
Version of the application

Class Application::DatePicker

Application::DatePicker
Day
Month
OnChange
Year
enabled
selected
sliding
OnLoadDayItem
OnLoadMonthItem
OnLoadYearItem
getDaysInMonth()
onEndSlide
onStartSlide
Templates::PickerControl
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

This is a GUI component for date picking

property int32 Day = 0;
The property 'Day' stores the day of the month. The valid value lies in range 1 .. 31 depending on the actually selected month.
property int32 Month = 1;
The property 'Month' store the month of the year. The valid value lies in the range 1 .. 12.
property slot OnChange = null;
The property 'OnChange' can refer to a slot method, which will receive a signal each time the user select another date. Thereupon the method's logic will be executed. In the associated slot method you can evaluate the date picker properties Day, Month and Year.
slot OnLoadDayItem;
This method is called by 'ListDay' vertical list every time the list loads or updates an item.
slot OnLoadMonthItem;
This method is called by 'ListMonth' vertical list every time the list loads or updates an item.
slot OnLoadYearItem;
This method is called by 'ListYear' vertical list every time the list loads or updates an item.
property int32 Year = 1900;
The property 'Year' stores the year. The value is valid in range 2000 .. 2100.
var bool enabled;
This variable stores the current state of the date picker.
method int32 getDaysInMonth
(
arg int32 aMonth,
arg int32 aYear
);
This function returns the number of days in the month and year specified in the method parameters aMonth and aYear. The function takes care of the February and its dependency of the leap year.
slot onEndSlide;
This method is called when one of the Slide Touch Handler (TouchHandlerDay, TouchHandlerMonth or TouchHandlerYear) has finished the slide animation. Thereupon the owner of the date picker is notified, that the date has been changed.
slot onStartSlide;
This method is called when one of the Slide Touch Handler (TouchHandlerDay, TouchHandlerMonth or TouchHandlerYear) has begun the slide animation.
var bool selected;
This variable stores the current state of the date picker.
var bool sliding;
This variable stores the current state of the date picker.

Class Application::TimePicker

Application::TimePicker
Hour
Minute
OnChange
Second
enabled
selected
sliding
OnLoadHourItem
OnLoadMinuteItem
OnLoadSecondItem
onEndSlide
onStartSlide
Templates::PickerControl
Core::Group
AlphaBlended
Buffered
Embedded
Enabled
Focus
Opacity
Visible
Add()
AddBehind()
BroadcastEvent()
BroadcastEventAtPosition()
CountDialogs()
CountViews()
DismissDialog()
DispatchEvent()
FadeGroup()
FindActiveDialogByClass()
FindCurrentDialog()
FindDialogByClass()
FindNextView()
FindPrevView()
FindSiblingView()
FindViewAtPosition()
FindViewInDirection()
FindViewWithinArea()
GetContentArea()
GetDialogAtIndex()
GetIndexOfDialog()
GetIndexOfView()
GetViewAtIndex()
GlobalPosition()
HasViewState()
Init()
InvalidateArea()
InvalidateViewState()
IsActiveDialog()
IsCurrentDialog()
IsDialog()
LocalPosition()
ObtainFocus()
PresentDialog()
Remove()
RemoveAll()
Restack()
RestackBack()
RestackBehind()
RestackTop()
SwitchToDialog()
UpdateLayout()
UpdateViewState()
Core::RectView
Bounds
Core::View
Layout
Owner
StackingPriority
ArrangeView()
ChangeViewState()
CursorHitTest()
Draw()
GetExtent()
GetRoot()
HandleEvent()
MoveView()

This is a GUI component for time picking

property int32 Hour = 0;
The property 'Hour' stores the number of hours since midnight. The value is valid in range 0 .. 23.
property int32 Minute = 0;
The property 'Minute' stores the number of minutes after the hour. The value is valid in range 0 .. 59.
property slot OnChange = null;
The property 'OnChange' can refer to a slot method, which will receive a signal each time the user select another time. Thereupon the method's logic will be executed. In the associated slot method you can evaluate the time picker properties Hour, Minute and Second.
slot OnLoadHourItem;
This method is called by 'ListHour' vertical list every time the list loads or updates an item.
slot OnLoadMinuteItem;
This method is called by 'ListMinute' vertical list every time the list loads or updates an item.
slot OnLoadSecondItem;
This method is called by 'ListSecond' vertical list every time the list loads or updates an item.
property int32 Second = 0;
The property 'Second' stores the number of seconds after the minute. The value is valid in range 0 .. 59.
var bool enabled;
This variable stores the current state of the time picker.
slot onEndSlide;
This method is called when one of the Slide Touch Handler (TouchHandlerHour, TouchHandlerMinute or TouchHandlerSecond) has finished the slide animation. Thereupon the owner of the time picker is notified, that the time has been changed.
slot onStartSlide;
This method is called when one of the Slide Touch Handler (TouchHandlerHour, TouchHandlerMinute or TouchHandlerSecond) has begun the slide animation.
var bool selected;
This variable stores the current state of the time picker.
var bool sliding;
This variable stores the current state of the time picker.