e3aab2a90f
In both tests the scrolled actor's width was fixed to the stage width, so that the scroll bars ended up outside the visible area. Fix by adding an outer container with a fixed width and expanding the scroll view to fill the available area.
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
|
|
const Clutter = imports.gi.Clutter;
|
|
const St = imports.gi.St;
|
|
|
|
const UI = imports.testcommon.ui;
|
|
|
|
UI.init();
|
|
let stage = Clutter.Stage.get_default();
|
|
stage.width = 640;
|
|
stage.height = 480;
|
|
|
|
let vbox = new St.BoxLayout({ width: stage.width,
|
|
height: stage.height,
|
|
style: 'background: #ffee88;' });
|
|
stage.add_actor(vbox);
|
|
|
|
let scroll = new St.ScrollView();
|
|
vbox.add(scroll, { expand: true });
|
|
|
|
let box = new St.BoxLayout({ vertical: true,
|
|
style: 'padding: 10px;'
|
|
+ 'spacing: 20px;' });
|
|
scroll.add_actor(box);
|
|
|
|
function addTestCase(radii, useGradient) {
|
|
let background;
|
|
if (useGradient)
|
|
background = 'background-gradient-direction: vertical;'
|
|
+ 'background-gradient-start: white;'
|
|
+ 'background-gradient-end: gray;';
|
|
else
|
|
background = 'background: white;';
|
|
|
|
box.add(new St.Label({ text: "border-radius: " + radii + ";",
|
|
style: 'border: 1px solid black; '
|
|
+ 'border-radius: ' + radii + ';'
|
|
+ 'padding: 5px;' + background }),
|
|
{ x_fill: false });
|
|
}
|
|
|
|
// uniform backgrounds
|
|
addTestCase(" 0px 5px 10px 15px", false);
|
|
addTestCase(" 5px 10px 15px 0px", false);
|
|
addTestCase("10px 15px 0px 5px", false);
|
|
addTestCase("15px 0px 5px 10px", false);
|
|
|
|
// gradient backgrounds
|
|
addTestCase(" 0px 5px 10px 15px", true);
|
|
addTestCase(" 5px 10px 15px 0px", true);
|
|
addTestCase("10px 15px 0px 5px", true);
|
|
addTestCase("15px 0px 5px 10px", true);
|
|
|
|
stage.show();
|
|
Clutter.main();
|
|
stage.destroy();
|