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:

speedanimation interval (msec)
visibleexpression controlling the visibility (for blinking effects)
foregroundcolor of active pixels (RRGGBBAA or RRGGBB), default is opaque black '000000ff' (see colors for details)
backgroundcolor 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.