summaryrefslogtreecommitdiffstats
path: root/tests/interactive/box-layout.js
blob: bb9a5bbc2adeb28fc9a8024ea4e5105d2f3c3323 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-

const UI = imports.testcommon.ui;

const { Clutter, St } = imports.gi;

function test() {
    let stage = new Clutter.Stage();
    UI.init(stage);

    let vbox = new St.BoxLayout({ vertical: true,
                                  width: stage.width,
                                  height: stage.height,
                                  style: 'padding: 10px;'
                                  + 'spacing: 10px;' });
    stage.add_actor(vbox);

    ////////////////////////////////////////////////////////////////////////////////

    let colored_boxes = new St.BoxLayout({ vertical: true,
                                           width:  200,
                                           height: 200,
                                           style: 'border: 2px solid black;' });
    vbox.add(colored_boxes, { x_fill: false,
                              x_align: St.Align.MIDDLE });

    let b2 = new St.BoxLayout({ style: 'border: 2px solid #666666' });
    colored_boxes.add(b2, { expand: true });

    b2.add(new St.Label({ text: "Expand",
                          style: 'border: 1px solid #aaaaaa; '
                          + 'background: #ffeecc' }),
           { expand: true });
    b2.add(new St.Label({ text: "Expand\nNo Fill",
                          style: 'border: 1px solid #aaaaaa; '
                          + 'background: #ccffaa' }),
           { expand: true,
             x_fill: false,
             x_align: St.Align.MIDDLE,
             y_fill: false,
             y_align: St.Align.MIDDLE });

    colored_boxes.add(new St.Label({ text: "Default",
                                     style: 'border: 1px solid #aaaaaa; '
                                     + 'background: #cceeff' }));

    ////////////////////////////////////////////////////////////////////////////////

    function createCollapsableBox(width) {
        let b = new St.BoxLayout({ width: width,
                                   style: 'border: 1px solid black;'
                                   + 'font: 13px Sans;' });
        b.add(new St.Label({ text: "Very Very Very Long",
                             style: 'background: #ffaacc;'
                             + 'padding: 5px; '
                             + 'border: 1px solid #666666;' }),
              { expand: true });
        b.add(new St.Label({ text: "Very Very Long",
                             style: 'background: #ffeecc; '
                             + 'padding: 5px; '
                             + 'border: 1px solid #666666;' }),
              { expand: true });
        b.add(new St.Label({ text: "Very Long",
                             style: 'background: #ccffaa; '
                             + 'padding: 5px; '
                             + 'border: 1px solid #666666;' }),
              { expand: true });
        b.add(new St.Label({ text: "Short",
                             style: 'background: #cceeff; '
                             + 'padding: 5px; '
                             + 'border: 1px solid #666666;' }),
              { expand: true });

        return b;
    }

    for (let width = 200; width <= 500; width += 60 ) {
        vbox.add(createCollapsableBox (width),
                 { x_fill: false,
                   x_align: St.Align.MIDDLE });
    }

    UI.main(stage);
}
test();