示例#1
0
        private static object HandleIpcRequest(DownstreamIpcRequest request)
        {
            switch (request)
            {
            case NewInlayRequest newInlayRequest: return(OnNewInlayRequest(newInlayRequest));

            case ResizeInlayRequest resizeInlayRequest:
            {
                var inlay = inlays[resizeInlayRequest.Guid];
                if (inlay == null)
                {
                    return(null);
                }
                inlay.Resize(new Size(resizeInlayRequest.Width, resizeInlayRequest.Height));

                return(BuildRenderHandlerResponse(inlay.RenderHandler));
            }

            case NavigateInlayRequest navigateInlayRequest:
            {
                var inlay = inlays[navigateInlayRequest.Guid];
                inlay.Navigate(navigateInlayRequest.Url);
                return(null);
            }

            case DebugInlayRequest debugInlayRequest:
            {
                var inlay = inlays[debugInlayRequest.Guid];
                inlay.Debug();
                return(null);
            }

            case RemoveInlayRequest removeInlayRequest:
            {
                var inlay = inlays[removeInlayRequest.Guid];
                inlays.Remove(removeInlayRequest.Guid);
                inlay.Dispose();
                return(null);
            }

            case MouseEventRequest mouseMoveRequest:
            {
                var inlay = inlays[mouseMoveRequest.Guid];
                inlay?.HandleMouseEvent(mouseMoveRequest);
                return(null);
            }

            case KeyEventRequest keyEventRequest:
            {
                var inlay = inlays[keyEventRequest.Guid];
                inlay?.HandleKeyEvent(keyEventRequest);
                return(null);
            }

            default:
                throw new Exception($"Unknown IPC request type {request.GetType().Name} received.");
            }
        }
示例#2
0
 // TODO: Option to wrap this func in an async version?
 public Task <IpcResponse <TResponse> > Send <TResponse>(DownstreamIpcRequest request)
 {
     return(ipc.RemoteRequestAsync <TResponse>(request));
 }
示例#3
0
 public void Send(DownstreamIpcRequest request)
 {
     Send <object>(request);
 }