mirror of
				https://github.com/Rafostar/clapper.git
				synced 2025-10-31 10:25:45 +01: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