|
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, GLib, St } = imports.gi;
|
|
Packit |
d345d1 |
const Mainloop = imports.mainloop;
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
const DELAY = 2000;
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
function resize_animated(label) {
|
|
Packit |
d345d1 |
if (label.width == 100) {
|
|
Packit |
d345d1 |
label.save_easing_state();
|
|
Packit |
d345d1 |
label.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
|
|
Packit |
d345d1 |
label.set_easing_duration(DELAY - 50);
|
|
Packit |
d345d1 |
label.set_size(500, 500);
|
|
Packit |
d345d1 |
label.restore_easing_state();
|
|
Packit |
d345d1 |
} else {
|
|
Packit |
d345d1 |
label.save_easing_state();
|
|
Packit |
d345d1 |
label.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
|
|
Packit |
d345d1 |
label.set_easing_duration(DELAY - 50);
|
|
Packit |
d345d1 |
label.set_size(100, 100);
|
|
Packit |
d345d1 |
label.restore_easing_state();
|
|
Packit |
d345d1 |
}
|
|
Packit |
d345d1 |
}
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
function get_css_style(shadow_style)
|
|
Packit |
d345d1 |
{
|
|
Packit |
d345d1 |
return 'border: 20px solid black;' +
|
|
Packit |
d345d1 |
'border-radius: 20px;' +
|
|
Packit |
d345d1 |
'background-color: white; ' +
|
|
Packit |
d345d1 |
'padding: 5px;' + shadow_style;
|
|
Packit |
d345d1 |
}
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
function test() {
|
|
Packit |
d345d1 |
let stage = new Clutter.Stage({ width: 1000, height: 600 });
|
|
Packit |
d345d1 |
UI.init(stage);
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
let iter = 0;
|
|
Packit |
d345d1 |
let shadowStyles = [ 'box-shadow: 3px 50px 0px 4px rgba(0,0,0,0.5);',
|
|
Packit |
d345d1 |
'box-shadow: 3px 4px 10px 4px rgba(0,0,0,0.5);',
|
|
Packit |
d345d1 |
'box-shadow: 0px 50px 0px 0px rgba(0,0,0,0.5);',
|
|
Packit |
d345d1 |
'box-shadow: 100px 100px 20px 4px rgba(0,0,0,0.5);'];
|
|
Packit |
d345d1 |
let label1 = new St.Label({ style: get_css_style(shadowStyles[iter]),
|
|
Packit |
d345d1 |
text: shadowStyles[iter],
|
|
Packit |
d345d1 |
x: 20,
|
|
Packit |
d345d1 |
y: 20,
|
|
Packit |
d345d1 |
width: 100,
|
|
Packit |
d345d1 |
height: 100
|
|
Packit |
d345d1 |
});
|
|
Packit |
d345d1 |
stage.add_actor(label1);
|
|
Packit |
d345d1 |
let label2 = new St.Label({ style: get_css_style(shadowStyles[iter]),
|
|
Packit |
d345d1 |
text: shadowStyles[iter],
|
|
Packit |
d345d1 |
x: 500,
|
|
Packit |
d345d1 |
y: 20,
|
|
Packit |
d345d1 |
width: 100,
|
|
Packit |
d345d1 |
height: 100
|
|
Packit |
d345d1 |
});
|
|
Packit |
d345d1 |
stage.add_actor(label2);
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
resize_animated(label1);
|
|
Packit |
d345d1 |
resize_animated(label2);
|
|
Packit |
d345d1 |
Mainloop.timeout_add(DELAY, () => {
|
|
Packit |
d345d1 |
log(label1 + label1.get_size());
|
|
Packit |
d345d1 |
resize_animated(label1);
|
|
Packit |
d345d1 |
resize_animated(label2);
|
|
Packit |
d345d1 |
return true;
|
|
Packit |
d345d1 |
});
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
Mainloop.timeout_add(2 * DELAY, () => {
|
|
Packit |
d345d1 |
iter += 1;
|
|
Packit |
d345d1 |
iter %= shadowStyles.length;
|
|
Packit |
d345d1 |
label1.set_style(get_css_style(shadowStyles[iter]));
|
|
Packit |
d345d1 |
label1.set_text(shadowStyles[iter]);
|
|
Packit |
d345d1 |
label2.set_style(get_css_style(shadowStyles[iter]));
|
|
Packit |
d345d1 |
label2.set_text(shadowStyles[iter]);
|
|
Packit |
d345d1 |
return true;
|
|
Packit |
d345d1 |
});
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
UI.main(stage);
|
|
Packit |
d345d1 |
}
|
|
Packit |
d345d1 |
test();
|