forked from Shinonome/dots-hyprland
cursorhover.js: refractor
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
|
// Cursor names reference: https://docs.gtk.org/gdk4/ctor.Cursor.new_from_name.html
|
||||||
const { Gdk } = imports.gi;
|
const { Gdk } = imports.gi;
|
||||||
|
|
||||||
export function setupCursorHover(button) { // Hand pointing cursor on hover
|
export function setupCursorHover(button, cursorName = 'pointer') { // Hand pointing cursor on hover
|
||||||
const display = Gdk.Display.get_default();
|
const display = Gdk.Display.get_default();
|
||||||
button.connect('enter-notify-event', () => {
|
button.connect('enter-notify-event', () => {
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'pointer');
|
const cursor = Gdk.Cursor.new_from_name(display, cursorName);
|
||||||
button.get_window().set_cursor(cursor);
|
button.get_window().set_cursor(cursor);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -15,43 +16,14 @@ export function setupCursorHover(button) { // Hand pointing cursor on hover
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function setupCursorHoverAim(button) { // Crosshair cursor on hover
|
export function setupCursorHoverAim(button) { // Crosshair cursor on hover
|
||||||
button.connect('enter-notify-event', () => {
|
setupCursorHover(button, 'crosshair');
|
||||||
const display = Gdk.Display.get_default();
|
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'crosshair');
|
|
||||||
button.get_window().set_cursor(cursor);
|
|
||||||
});
|
|
||||||
|
|
||||||
button.connect('leave-notify-event', () => {
|
|
||||||
const display = Gdk.Display.get_default();
|
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'default');
|
|
||||||
button.get_window().set_cursor(cursor);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setupCursorHoverGrab(button) { // Hand ready to grab on hover
|
export function setupCursorHoverGrab(button) { // Hand ready to grab on hover
|
||||||
button.connect('enter-notify-event', () => {
|
setupCursorHover(button, 'grab');
|
||||||
const display = Gdk.Display.get_default();
|
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'grab');
|
|
||||||
button.get_window().set_cursor(cursor);
|
|
||||||
});
|
|
||||||
|
|
||||||
button.connect('leave-notify-event', () => {
|
|
||||||
const display = Gdk.Display.get_default();
|
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'default');
|
|
||||||
button.get_window().set_cursor(cursor);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setupCursorHoverInfo(button) { // "?" mark cursor on hover
|
export function setupCursorHoverInfo(button) { // "?" mark cursor on hover
|
||||||
const display = Gdk.Display.get_default();
|
setupCursorHover(button, 'help');
|
||||||
button.connect('enter-notify-event', () => {
|
|
||||||
const cursor = Gdk.Cursor.new_from_name(display, 'help');
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import Widget from 'resource:///com/github/Aylur/ags/widget.js';
|
|||||||
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
|
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
|
||||||
const { Box, Button, CenterBox, Entry, EventBox, Icon, Label, Overlay, Revealer, Scrollable, Stack } = Widget;
|
const { Box, Button, CenterBox, Entry, EventBox, Icon, Label, Overlay, Revealer, Scrollable, Stack } = Widget;
|
||||||
const { execAsync, exec } = Utils;
|
const { execAsync, exec } = Utils;
|
||||||
import { setupCursorHover, setupCursorHoverInfo } from '../.widgetutils/cursorhover.js';
|
import { setupCursorHover } from '../.widgetutils/cursorhover.js';
|
||||||
// APIs
|
// APIs
|
||||||
import GPTService from '../../services/gpt.js';
|
import GPTService from '../../services/gpt.js';
|
||||||
import Gemini from '../../services/gemini.js';
|
import Gemini from '../../services/gemini.js';
|
||||||
|
|||||||
Reference in New Issue
Block a user