예제 #1
0
        private void OnRealized(IntPtr window)
        {
            _xid = GetNativeHandle();
            var createdEvent = new CreatedEventArgs(IntPtr.Zero, window, _xid);

            Created?.Invoke(this, createdEvent);
            _isInitialized = true;
        }
예제 #2
0
        private void CreateCallback(IntPtr window, IntPtr view)
        {
            _windowHandle = window;
            _viewHandle   = view;
            var createdEvent = new CreatedEventArgs(IntPtr.Zero, _windowHandle, _viewHandle);

            Created?.Invoke(this, createdEvent);
            _isInitialized = true;
        }
예제 #3
0
        private void OnRealized(IntPtr window)
        {
            try
            {
                _xid = GetNativeHandle();
                if (_xid == IntPtr.Zero)
                {
                    throw new Exception("Window XID is invalid");
                }

                var createdEvent = new CreatedEventArgs(IntPtr.Zero, window, _xid);
                Created?.Invoke(this, createdEvent);
                _isInitialized = true;
            }
            catch (Exception exception)
            {
                Log.Error("Error in LinuxGtk3Host::OnRealized");
                Log.Error(exception);
            }
        }
예제 #4
0
파일: WinAPIHost.cs 프로젝트: 8/Chromely
        private IntPtr WndProc(IntPtr hWnd, uint message, IntPtr wParam, IntPtr lParam)
        {
            WM msg = (WM)message;

            switch (msg)
            {
            case WM.HOTKEY:
            {
                if (wParam == (IntPtr)1)
                {
                    PostMessage(_handle, (uint)WM.CLOSE, IntPtr.Zero, IntPtr.Zero);
                    return(IntPtr.Zero);
                }
                break;
            }

            case WM.SYSKEYDOWN:
            {
                if (_options.KioskMode && (wParam == (IntPtr)Keyboard.VirtualKeyStates.VK_F4))
                {
                    return(IntPtr.Zero);
                }
                break;
            }

            case WM.CREATE:
            {
                NativeInstance = this;
                _handle        = hWnd;
                var createdEvent = new CreatedEventArgs(IntPtr.Zero, _handle, _handle);
                Created?.Invoke(this, createdEvent);
                _isInitialized = true;
                break;
            }

            case WM.ERASEBKGND:
                return(new IntPtr(1));

            case WM.NCHITTEST:
                if (_options.WindowFrameless)
                {
                    return((IntPtr)HT_CAPTION);
                }
                break;

            case WM.MOVING:
            case WM.MOVE:
            {
                Moving?.Invoke(this, new MovingEventArgs());
                return(IntPtr.Zero);
            }

            case WM.SIZE:
            {
                var size = GetClientSize();
                SizeChanged?.Invoke(this, new SizeChangedEventArgs(size.Width, size.Height));
                break;
            }

            case WM.CLOSE:
            {
                if (_handle != IntPtr.Zero && _isInitialized)
                {
                    Close?.Invoke(this, new CloseEventArgs());
                }
                PostQuitMessage(0);
                Environment.Exit(0);
                break;
            }
            }

            return(DefWindowProc(hWnd, message, wParam, lParam));
        }