Icon Widget
The icon widget is used to display user-defined characters (we call them icons). You can only use icons if your display supports user-defined characters (most displays do so) and you have reserved some characters for icons, or your display is a graphical one (e.g. T6963). For details see the documentation for your display driver.
If, for any reason, the icon cannot be displayed, an asterisk ('*') will be used instead.
The definition of an icon widget is very simple:
Widget <name> {
class 'icon'
speed <number>
visible <expr>
foreground <color>
background <color>
bitmap {
row1 <string>
row2 <string>
...
row8 <string>
}
}
Parameters:
| speed | animation interval (msec) |
| visible | expression controlling the visibility (for blinking effects) |
| foreground | color of active pixels (RRGGBBAA or RRGGBB), default is opaque black '000000ff' (see colors for details) |
| background | color of inactive pixels (RRGGBBAA or RRGGBB), default is transparent 'ffffff00' (see colors for details) |
| bitmap.row* | string that defines the bitmap |
Examples:
static icon:
Widget Lightning {
class 'icon'
bitmap {
row1 '...***'
row2 '..***.'
row3 '.***..'
row4 '.****.'
row5 '..**..'
row6 '.**...'
row7 '**....'
row8 '*.....'
}
}
animated icon:
Widget Heartbeat {
class 'Icon'
speed 800
Bitmap {
Row1 '.....|.....'
Row2 '.*.*.|.*.*.'
Row3 '*****|*.*.*'
Row4 '*****|*...*'
Row5 '.***.|.*.*.'
Row6 '.***.|.*.*.'
Row7 '..*..|..*..'
Row8 '.....|.....'
}
}
I don't think that this need further explanation....
Visibility
You can specify an expression for visible, which will be evaluated every time the icon is updated (every speed msec). If the expression evaluates to 0 (zero), the icon is invisible, and will be replaced by a blank. If the result is not zero, the icon will be displayed. This is useful for blinking effects, or activity display.
