Blame tests/interactive/scrolling.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, Gtk, 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 vbox = new St.BoxLayout({ vertical: true,
Packit d345d1
                                  width: stage.width,
Packit d345d1
                                  height: stage.height,
Packit d345d1
                                  style: "padding: 10px;" });
Packit d345d1
    stage.add_actor(vbox);
Packit d345d1
Packit d345d1
    let toggle = new St.Button({ label: 'Horizontal Scrolling',
Packit d345d1
                                 toggle_mode: true });
Packit d345d1
    vbox.add(toggle);
Packit d345d1
Packit d345d1
    let v = new St.ScrollView();
Packit d345d1
    vbox.add(v, { expand: true });
Packit d345d1
Packit d345d1
    toggle.connect('notify::checked', () => {
Packit d345d1
        v.set_policy(toggle.checked ? Gtk.PolicyType.AUTOMATIC
Packit d345d1
                     : Gtk.PolicyType.NEVER,
Packit d345d1
                     Gtk.PolicyType.AUTOMATIC);
Packit d345d1
    });
Packit d345d1
Packit d345d1
    let b = new St.BoxLayout({ vertical: true,
Packit d345d1
                               style: "border: 2px solid #880000; border-radius: 10px; padding: 0px 5px;" });
Packit d345d1
    v.add_actor(b);
Packit d345d1
Packit d345d1
    let cc_a = "a".charCodeAt(0);
Packit d345d1
    let s = "";
Packit d345d1
    for (let i = 0; i < 26 * 3; i++) {
Packit d345d1
        s += String.fromCharCode(cc_a + i % 26);
Packit d345d1
Packit d345d1
        let t = new St.Label({ text: s,
Packit d345d1
                               reactive: true });
Packit d345d1
        let line = i + 1;
Packit d345d1
        t.connect('button-press-event',
Packit d345d1
                  function() {
Packit d345d1
                      log("Click on line " + line);
Packit d345d1
                  });
Packit d345d1
        b.add(t);
Packit d345d1
    }
Packit d345d1
Packit d345d1
    UI.main(stage);
Packit d345d1
}
Packit d345d1
test();