import { Widget } from '../../imports.js';

import Gdk from 'gi://Gdk';
const display = Gdk.Display.get_default();


export default ({
    type = 'EventBox',
    reset = true,
    ...props
}) => {
    if (type === 'EventBox') {
        return Widget.EventBox({
            ...props,
            onHover: self => {
                if (!self.child.sensitive || !self.sensitive)
                    self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'not-allowed'));

                else
                    self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'pointer'));
            },
            onHoverLost: self => {
                if (reset)
                    self.window.set_cursor(null);
            },
        });
    }
    else {
        return Widget.Button({
            ...props,
            onHover: self => {
                if (!self.child.sensitive || !self.sensitive)
                    self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'not-allowed'));
                else
                    self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'pointer'));
            },
            onHoverLost: self => {
                if (reset)
                    self.window.set_cursor(null);
            },
        });
    }
};