Eval » Historie » Revision 19
Revision 18 (Maximilian Seesslen, 24.08.2022 11:44) → Revision 19/46 (Maximilian Seesslen, 24.08.2022 12:01)
h1. Eval
h2. Widgets
There is a ODesktop that holds a list of OScreens (or only the curent).
There is a OScreen that holds a list of OWidgets.
When the touch is pressed, the corresponding button can be determined.
An signal can be emmited.
An press-event can be queued, An release-event can be queued. An click-event can be queued if current button matches original pressed button.
* OButton::draw(): completely draws the widget
* OButton::update(): only draw status-relevant items, e.g. pressed, released, time changed...
All screens can be prepared at start.
A Screen can be active or inactive.
Only one screen is active plus an navigation-screen?
h2. Touch
There is an touch class that helps converting raw values to X-Y-coordinates. [[Biwak:touch]]
CTouch will emit signals "pressed, released, clicked" that can be connected to libocelli.
h2. Watch
* the OWatch class shows an clock with specific style, analog or digital
h2. Example: Minutnik
* Main screen; CWatch, Add-Button
* Add-Screen
** Espresso, Weisswurst, Weiches Ei, Hartes Ei, Nudeln, Pizza, Waschmaschine, Cancel; Height 32
* Alarm Screen
* Logo, Splash screen at boot time and stand-by-screen
* Release v2.0.0: Mode-Screen: Minutnik, Clock, StopWatch
h2. Example: CANDis
* Main screen
** Button for Light, Sensemux-Diagram, Activity (TV, Musik, Solder, Off), Miniminutnik
** Header with Clock
* Light-Screen
** Power-Widget
** Ok-Button
* Clock-Screen (Screen saver)
** Clock, Date, Temperature, Quick-Access-Buttons
h2. Pointers
Like in Qt an widget has an parent.
h2. Single App class vs. Screens
Having everything in an single class may be confusing. It may be split to per-Screen-classes.
<pre><code class="cpp">
CApp: OScreen
{
public:
ODesktop *desktops[3];
}
CScreenMain: public ODesktop
{
public:
addItemPressed()
{
app.switchDesktop( eDesktopItems );
}
}
</code></pre>
h2. Widgets
There is a ODesktop that holds a list of OScreens (or only the curent).
There is a OScreen that holds a list of OWidgets.
When the touch is pressed, the corresponding button can be determined.
An signal can be emmited.
An press-event can be queued, An release-event can be queued. An click-event can be queued if current button matches original pressed button.
* OButton::draw(): completely draws the widget
* OButton::update(): only draw status-relevant items, e.g. pressed, released, time changed...
All screens can be prepared at start.
A Screen can be active or inactive.
Only one screen is active plus an navigation-screen?
h2. Touch
There is an touch class that helps converting raw values to X-Y-coordinates. [[Biwak:touch]]
CTouch will emit signals "pressed, released, clicked" that can be connected to libocelli.
h2. Watch
* the OWatch class shows an clock with specific style, analog or digital
h2. Example: Minutnik
* Main screen; CWatch, Add-Button
* Add-Screen
** Espresso, Weisswurst, Weiches Ei, Hartes Ei, Nudeln, Pizza, Waschmaschine, Cancel; Height 32
* Alarm Screen
* Logo, Splash screen at boot time and stand-by-screen
* Release v2.0.0: Mode-Screen: Minutnik, Clock, StopWatch
h2. Example: CANDis
* Main screen
** Button for Light, Sensemux-Diagram, Activity (TV, Musik, Solder, Off), Miniminutnik
** Header with Clock
* Light-Screen
** Power-Widget
** Ok-Button
* Clock-Screen (Screen saver)
** Clock, Date, Temperature, Quick-Access-Buttons
h2. Pointers
Like in Qt an widget has an parent.
h2. Single App class vs. Screens
Having everything in an single class may be confusing. It may be split to per-Screen-classes.
<pre><code class="cpp">
CApp: OScreen
{
public:
ODesktop *desktops[3];
}
CScreenMain: public ODesktop
{
public:
addItemPressed()
{
app.switchDesktop( eDesktopItems );
}
}
</code></pre>