37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
// Cursor names reference: https://docs.gtk.org/gdk4/ctor.Cursor.new_from_name.html
|
|
const { Gdk } = imports.gi;
|
|
|
|
export function setupCursorHover(button, cursorName = 'pointer') { // Hand pointing cursor on hover
|
|
const display = Gdk.Display.get_default();
|
|
button.connect('enter-notify-event', () => {
|
|
const cursor = Gdk.Cursor.new_from_name(display, cursorName);
|
|
button.get_window().set_cursor(cursor);
|
|
});
|
|
|
|
button.connect('leave-notify-event', () => {
|
|
const cursor = Gdk.Cursor.new_from_name(display, 'default');
|
|
button.get_window().set_cursor(cursor);
|
|
});
|
|
|
|
}
|
|
|
|
export function setupCursorHoverAim(button) { // Crosshair cursor on hover
|
|
setupCursorHover(button, 'crosshair');
|
|
}
|
|
|
|
export function setupCursorHoverGrab(button) { // Hand ready to grab on hover
|
|
setupCursorHover(button, 'grab');
|
|
}
|
|
|
|
export function setupCursorHoverInfo(button) { // "?" mark cursor on hover
|
|
setupCursorHover(button, 'help');
|
|
}
|
|
|
|
export function setupCursorHoverHResize(button) { // Resize left right
|
|
setupCursorHover(button, 'ew-resize');
|
|
}
|
|
|
|
export function setupCursorHoverVResize(button) { // Resize up down
|
|
setupCursorHover(button, 'ns-resize');
|
|
}
|