mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-29 15:22:11 +02:00
Upload keyboard test script
This commit is contained in:
85
test/keyboard.js
Executable file
85
test/keyboard.js
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/gjs
|
||||
|
||||
imports.gi.versions.Gdk = '4.0';
|
||||
imports.gi.versions.Gtk = '4.0';
|
||||
|
||||
const { Gdk, GObject, Gtk } = imports.gi;
|
||||
|
||||
var KeyboardTest = GObject.registerClass(
|
||||
class ClapperKeyboardTest extends Gtk.Application
|
||||
{
|
||||
_init(opts)
|
||||
{
|
||||
super._init({
|
||||
application_id: 'com.github.rafostar.ClapperKeyboardTest'
|
||||
});
|
||||
}
|
||||
|
||||
vfunc_startup()
|
||||
{
|
||||
super.vfunc_startup();
|
||||
|
||||
let window = new Gtk.ApplicationWindow({
|
||||
application: this,
|
||||
title: 'Clapper Keyboard Test',
|
||||
});
|
||||
|
||||
let grid = new Gtk.Grid({
|
||||
margin_top: 10,
|
||||
margin_bottom: 10,
|
||||
margin_start: 20,
|
||||
margin_end: 20,
|
||||
row_spacing: 4,
|
||||
column_spacing: 8,
|
||||
focusable: true,
|
||||
can_focus: true,
|
||||
halign: Gtk.Align.CENTER,
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
|
||||
let label;
|
||||
|
||||
label = new Gtk.Label({ label: 'KEY:' });
|
||||
grid.attach(label, 0, 0, 1, 1);
|
||||
label = new Gtk.Label({ label: 'none' });
|
||||
grid.attach(label, 1, 0, 1, 1);
|
||||
|
||||
label = new Gtk.Label({ label: 'VALUE:' });
|
||||
grid.attach(label, 0, 1, 1, 1);
|
||||
label = new Gtk.Label({ label: '0' });
|
||||
grid.attach(label, 1, 1, 1, 1);
|
||||
|
||||
label = new Gtk.Label({ label: 'CODE:' });
|
||||
grid.attach(label, 0, 2, 1, 1);
|
||||
label = new Gtk.Label({ label: '0' });
|
||||
grid.attach(label, 1, 2, 1, 1);
|
||||
|
||||
let keyController = new Gtk.EventControllerKey();
|
||||
keyController.connect('key-pressed', this._onKeyPressed.bind(this));
|
||||
grid.add_controller(keyController);
|
||||
|
||||
window.set_child(grid);
|
||||
}
|
||||
|
||||
vfunc_activate()
|
||||
{
|
||||
this.active_window.present();
|
||||
this.active_window.get_child().grab_focus();
|
||||
}
|
||||
|
||||
_onKeyPressed(controller, keyval, keycode, state)
|
||||
{
|
||||
let grid = controller.get_widget();
|
||||
|
||||
let keyName = grid.get_child_at(1, 0);
|
||||
keyName.set_label(Gdk.keyval_name(keyval));
|
||||
|
||||
let keyVal = grid.get_child_at(1, 1);
|
||||
keyVal.set_label(String(keyval));
|
||||
|
||||
let keyCode = grid.get_child_at(1, 2);
|
||||
keyCode.set_label(String(keycode));
|
||||
}
|
||||
});
|
||||
|
||||
new KeyboardTest().run([]);
|
Reference in New Issue
Block a user