:- pce_begin_class(icon, device).

initialise(I, Image:image, Label:name) :->
    "Create from image and label"::
    send(I, send_super, initialise),
    send(I, display, bitmap(Image)),
    send(I, display, text(Label, center)),
    send(I, reposition).

reposition(I) :->
    get(I, member, bitmap, Bitmap),
    get(I, member, text, Text),
    get(Bitmap, center_x, CX),
    get(Bitmap, bottom_side, BS),
    get(Text, width, W),
    TX is CX - W//2,
    send(Text, set, TX, BS).

label(I, Text:name) :->
    "Change the label"::
    get(I, member, text, Text),
    send(Text, string, Text).

:- pce_end_class.
