
# 
# This file has been automatically generated by RaQt_maker V0.0.5.
# To modify and regenerate it, see the source code available here: 
#         https://github.com/yguillemot/RaQt_maker
# 

use NativeCall;
use Qt::QtWidgets::QtHelpers:ver<0.0.5>:auth<cpan:YGUILLEMO>:api<2>;
use Qt::QtWidgets::QtWrappers:ver<0.0.5>:auth<cpan:YGUILLEMO>:api<2>;
use Qt::QtWidgets::QtBase:ver<0.0.5>:auth<cpan:YGUILLEMO>:api<2>;



class QEvent:ver<0.0.5>:auth<cpan:YGUILLEMO>:api<2>
    is QtBase
    is export {

    enum Type (
        None => 0,
        Timer => 1,
        MouseButtonPress => 2,
        MouseButtonRelease => 3,
        MouseButtonDblClick => 4,
        MouseMove => 5,
        KeyPress => 6,
        KeyRelease => 7,
        FocusIn => 8,
        FocusOut => 9,
        FocusAboutToChange => 23,
        Enter => 10,
        Leave => 11,
        Paint => 12,
        Move => 13,
        Resize => 14,
        Create => 15,
        Destroy => 16,
        Show => 17,
        Hide => 18,
        Close => 19,
        Quit => 20,
        ParentChange => 21,
        ParentAboutToChange => 131,
        ThreadChange => 22,
        WindowActivate => 24,
        WindowDeactivate => 25,
        ShowToParent => 26,
        HideToParent => 27,
        Wheel => 31,
        WindowTitleChange => 33,
        WindowIconChange => 34,
        ApplicationWindowIconChange => 35,
        ApplicationFontChange => 36,
        ApplicationLayoutDirectionChange => 37,
        ApplicationPaletteChange => 38,
        PaletteChange => 39,
        Clipboard => 40,
        Speech => 42,
        MetaCall => 43,
        SockAct => 50,
        WinEventAct => 132,
        DeferredDelete => 52,
        DragEnter => 60,
        DragMove => 61,
        DragLeave => 62,
        Drop => 63,
        DragResponse => 64,
        ChildAdded => 68,
        ChildPolished => 69,
        ChildRemoved => 71,
        ShowWindowRequest => 73,
        PolishRequest => 74,
        Polish => 75,
        LayoutRequest => 76,
        UpdateRequest => 77,
        UpdateLater => 78,
        EmbeddingControl => 79,
        ActivateControl => 80,
        DeactivateControl => 81,
        ContextMenu => 82,
        InputMethod => 83,
        TabletMove => 87,
        LocaleChange => 88,
        LanguageChange => 89,
        LayoutDirectionChange => 90,
        Style => 91,
        TabletPress => 92,
        TabletRelease => 93,
        OkRequest => 94,
        HelpRequest => 95,
        IconDrag => 96,
        FontChange => 97,
        EnabledChange => 98,
        ActivationChange => 99,
        StyleChange => 100,
        IconTextChange => 101,
        ModifiedChange => 102,
        MouseTrackingChange => 109,
        WindowBlocked => 103,
        WindowUnblocked => 104,
        WindowStateChange => 105,
        ReadOnlyChange => 106,
        ToolTip => 110,
        WhatsThis => 111,
        StatusTip => 112,
        ActionChanged => 113,
        ActionAdded => 114,
        ActionRemoved => 115,
        FileOpen => 116,
        Shortcut => 117,
        ShortcutOverride => 51,
        WhatsThisClicked => 118,
        ToolBarChange => 120,
        ApplicationActivate => 121,
        ApplicationActivated => 121,
        ApplicationDeactivate => 122,
        ApplicationDeactivated => 122,
        QueryWhatsThis => 123,
        EnterWhatsThisMode => 124,
        LeaveWhatsThisMode => 125,
        ZOrderChange => 126,
        HoverEnter => 127,
        HoverLeave => 128,
        HoverMove => 129,
        AcceptDropsChange => 152,
        ZeroTimerEvent => 154,
        GraphicsSceneMouseMove => 155,
        GraphicsSceneMousePress => 156,
        GraphicsSceneMouseRelease => 157,
        GraphicsSceneMouseDoubleClick => 158,
        GraphicsSceneContextMenu => 159,
        GraphicsSceneHoverEnter => 160,
        GraphicsSceneHoverMove => 161,
        GraphicsSceneHoverLeave => 162,
        GraphicsSceneHelp => 163,
        GraphicsSceneDragEnter => 164,
        GraphicsSceneDragMove => 165,
        GraphicsSceneDragLeave => 166,
        GraphicsSceneDrop => 167,
        GraphicsSceneWheel => 168,
        KeyboardLayoutChange => 169,
        DynamicPropertyChange => 170,
        TabletEnterProximity => 171,
        TabletLeaveProximity => 172,
        NonClientAreaMouseMove => 173,
        NonClientAreaMouseButtonPress => 174,
        NonClientAreaMouseButtonRelease => 175,
        NonClientAreaMouseButtonDblClick => 176,
        MacSizeChange => 177,
        ContentsRectChange => 178,
        MacGLWindowChange => 179,
        FutureCallOut => 180,
        GraphicsSceneResize => 181,
        GraphicsSceneMove => 182,
        CursorChange => 183,
        ToolTipChange => 184,
        NetworkReplyUpdated => 185,
        GrabMouse => 186,
        UngrabMouse => 187,
        GrabKeyboard => 188,
        UngrabKeyboard => 189,
        MacGLClearDrawable => 191,
        StateMachineSignal => 192,
        StateMachineWrapped => 193,
        TouchBegin => 194,
        TouchUpdate => 195,
        TouchEnd => 196,
        NativeGesture => 197,
        RequestSoftwareInputPanel => 199,
        CloseSoftwareInputPanel => 200,
        WinIdChange => 203,
        Gesture => 198,
        GestureOverride => 202,
        ScrollPrepare => 204,
        Scroll => 205,
        Expose => 206,
        InputMethodQuery => 207,
        OrientationChange => 208,
        TouchCancel => 209,
        ThemeChange => 210,
        SockClose => 211,
        PlatformPanel => 212,
        StyleAnimationUpdate => 213,
        ApplicationStateChange => 214,
        WindowChangeInternal => 215,
        ScreenChangeInternal => 216,
        PlatformSurface => 217,
        Pointer => 218,
        TabletTrackingChange => 219,
        User => 1000,
        MaxUser => 65535,
    );

    multi sub ctor(QtBase $this, QEvent::Type $type) {
        $this.address = QWQEventCtor_1($type);
        $this.ownedByRaku = True;
    }

    multi sub ctor(QtBase $this, QEvent $other) {
        my $a1 = $other.address;
        $this.address = QWQEventCtor_2($a1);
        $this.ownedByRaku = True;
    }

    multi sub ctor(QtBase $this, NativeCall::Types::Pointer $p, Bool :$obr = False) {
        # Get access to a preexisting Qt object
        $this.address = $p;
        $this.ownedByRaku = $obr;
    }

    multi sub ctor(|capture) {
        note "QtWidgets ", ::?CLASS.^name,
             " ctor called with unsupported args";
        die "Bad args";
    }

    submethod new(|capture) {
        my QEvent $rObj = self.bless;
        ctor($rObj, |capture);
        return $rObj;
    }

    submethod DESTROY {
        if self.ownedByRaku {
            QWQEventDtor(self.address);
            self.ownedByRaku = False;
        }
    }

    method type( --> QEvent::Type)
    {
        my $result = QWQEventtype(self.address);
        my $result1 = QEvent::Type($result);
        return $result1;
    }

    method spontaneous( --> Bool)
    {
        my $result = QWQEventspontaneous(self.address);
        my $result1 = ?$result;
        return $result1;
    }

    method isAccepted( --> Bool)
    {
        my $result = QWQEventisAccepted(self.address);
        my $result1 = ?$result;
        return $result1;
    }

    method accept()
    {
        QWQEventaccept(self.address);
    }

    method ignore()
    {
        QWQEventignore(self.address);
    }

}


sub QWQEventCtor_1(int32)
    returns Pointer is native(&libwrapper) { * }

sub QWQEventCtor_2(Pointer)
    returns Pointer is native(&libwrapper) { * }

sub QWQEventDtor(Pointer)
    is native(&libwrapper) { * }

sub QWQEventtype(Pointer)
    returns int32 is native(&libwrapper) { * }

sub QWQEventspontaneous(Pointer)
    returns int8 is native(&libwrapper) { * }

sub QWQEventisAccepted(Pointer)
    returns int8 is native(&libwrapper) { * }

sub QWQEventaccept(Pointer)
    is native(&libwrapper) { * }

sub QWQEventignore(Pointer)
    is native(&libwrapper) { * }

