Blame tests/interactive/icons.js

Packit d345d1
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
Packit d345d1
Packit d345d1
const UI = imports.testcommon.ui;
Packit d345d1
Packit d345d1
const { Clutter, St } = imports.gi;
Packit d345d1
Packit d345d1
function test() {
Packit d345d1
    let stage = new Clutter.Stage();
Packit d345d1
    UI.init(stage);
Packit d345d1
Packit d345d1
    let b = new St.BoxLayout({ vertical: true,
Packit d345d1
                               width: stage.width,
Packit d345d1
                               height: stage.height });
Packit d345d1
    stage.add_actor(b);
Packit d345d1
Packit d345d1
    function addTest(label, icon_props) {
Packit d345d1
        if (b.get_children().length > 0)
Packit d345d1
            b.add (new St.BoxLayout({ style: 'background: #cccccc; border: 10px transparent white; height: 1px; ' }));
Packit d345d1
Packit d345d1
        let hb = new St.BoxLayout({ vertical: false,
Packit d345d1
                                    style: 'spacing: 10px;' });
Packit d345d1
Packit d345d1
        hb.add(new St.Label({ text: label }), { y_fill: false });
Packit d345d1
        hb.add(new St.Icon(icon_props));
Packit d345d1
Packit d345d1
        b.add(hb);
Packit d345d1
    }
Packit d345d1
Packit d345d1
    addTest("Symbolic",
Packit d345d1
            { icon_name: 'battery-full-symbolic',
Packit d345d1
              icon_size: 48 });
Packit d345d1
    addTest("Full color",
Packit d345d1
            { icon_name: 'battery-full',
Packit d345d1
              icon_size: 48 });
Packit d345d1
    addTest("Default size",
Packit d345d1
            { icon_name: 'battery-full-symbolic' });
Packit d345d1
    addTest("Size set by property",
Packit d345d1
            { icon_name: 'battery-full-symbolic',
Packit d345d1
              icon_size: 32 });
Packit d345d1
    addTest("Size set by style",
Packit d345d1
            { icon_name: 'battery-full-symbolic',
Packit d345d1
              style: 'icon-size: 1em;' });
Packit d345d1
    addTest("16px icon in 48px icon widget",
Packit d345d1
            { icon_name: 'battery-full-symbolic',
Packit d345d1
              style: 'icon-size: 16px; width: 48px; height: 48px; border: 1px solid black;' });
Packit d345d1
Packit d345d1
    function iconRow(icons, box_style) {
Packit d345d1
        let hb = new St.BoxLayout({ vertical: false, style: box_style });
Packit d345d1
Packit d345d1
        for (let iconName of icons) {
Packit d345d1
            hb.add(new St.Icon({ icon_name: iconName,
Packit d345d1
                                 icon_size: 48 }));
Packit d345d1
        }
Packit d345d1
Packit d345d1
        b.add(hb);
Packit d345d1
    }
Packit d345d1
Packit d345d1
    let normalCss = 'background: white; color: black; padding: 10px 10px;';
Packit d345d1
    let reversedCss = 'background: black; color: white; warning-color: #ffcc00; error-color: #ff0000; padding: 10px 10px;';
Packit d345d1
Packit d345d1
    let batteryIcons = ['battery-full-charging-symbolic',
Packit d345d1
                        'battery-full-symbolic',
Packit d345d1
                        'battery-good-symbolic',
Packit d345d1
                        'battery-low-symbolic',
Packit d345d1
                        'battery-caution-symbolic' ];
Packit d345d1
Packit d345d1
    let volumeIcons = ['audio-volume-high-symbolic',
Packit d345d1
                       'audio-volume-medium-symbolic',
Packit d345d1
                       'audio-volume-low-symbolic',
Packit d345d1
                       'audio-volume-muted-symbolic' ];
Packit d345d1
Packit d345d1
    iconRow(batteryIcons, normalCss);
Packit d345d1
    iconRow(batteryIcons, reversedCss);
Packit d345d1
    iconRow(volumeIcons, normalCss);
Packit d345d1
    iconRow(volumeIcons, reversedCss);
Packit d345d1
Packit d345d1
    UI.main(stage);
Packit d345d1
}
Packit d345d1
test();