コード例 #1
0
 public void Mouse_InputReceived(object sender, Extensibility.Input.MouseEventArgs e)
 {
     //e.Log();
     //_viewModel.AddMessageInternal("Mouse Input",
     //    string.Format("name={0} {1}",
     //        e.Client != null ? e.Client.Name : "(no client)",
     //        e.ToString()));
 }
コード例 #2
0
        internal void OnMouseInputReceived(object sender, Model.Input.MouseInput e)
        {
            // do not forward mouse-move events to extensions (they are unecessary, and it wastes cpu)
            // TODO: consider dispatching on a 'tile-snapped' basis, if 'tile under cursor' would change, dispatch a single update
            if (e.WM == WinAPI.WM.MOUSEMOVE)
            {
                return;
            }

            // TODO: consider queued mouse input instead of spawning a new task fro every event
            Task.Factory.StartNew(delegate()
            {
                // translate input
                var client = GetClientByHandle(e.WindowHandle) ?? GetActiveClient();

                // dispatch to extensions
                _extensions.Values.ToList()
                .ForEach(ext =>
                {
                    try
                    {
                        var L_e = new Extensibility.Input.MouseEventArgs
                        {
                            Client     = client,
                            Handled    = e.Handled,
                            Time       = e.Time,
                            IsAbsolute = e.IsAbsolute,
                            X          = e.Point.X,
                            Y          = e.Point.Y,
                            WM         = e.WM,
                            Flags      = e.Flags,
                        };
                        ext.Bridge.Mouse.OnInputReceived(client, L_e);
                        e.Handled = e.Handled || L_e.Handled;
                    }
                    catch (Exception ex)
                    {
                        ex.Log();
                    }
                });
            }, TaskCreationOptions.PreferFairness);
        }
コード例 #3
0
 public void Mouse_InputReceived(object sender, Extensibility.Input.MouseEventArgs e)
 {
     _lastInputTimestamp = DateTime.UtcNow.Ticks;
 }
コード例 #4
0
ファイル: ExtensionManager.cs プロジェクト: wilson0x4d/Mubox
        internal void OnMouseInputReceived(object sender, Model.Input.MouseInput e)
        {
            // do not forward mouse-move events to extensions (they are unecessary, and it wastes cpu)
            // TODO: consider dispatching on a 'tile-snapped' basis, if 'tile under cursor' would change, dispatch a single update
            if (e.WM == WinAPI.WM.MOUSEMOVE)
            {
                return;
            }

            // TODO: consider queued mouse input instead of spawning a new task fro every event
            Task.Factory.StartNew(delegate()
            {
                // translate input
                var client = GetClientByHandle(e.WindowHandle) ?? GetActiveClient();

                // dispatch to extensions
                _extensions.Values.ToList()
                    .ForEach(ext =>
                    {
                        try
                        {
                            var L_e = new Extensibility.Input.MouseEventArgs
                            {
                                Client = client,
                                Handled = e.Handled,
                                Time = e.Time,
                                IsAbsolute = e.IsAbsolute,
                                X = e.Point.X,
                                Y = e.Point.Y,
                                WM = e.WM,
                                Flags = e.Flags,
                            };
                            ext.Bridge.Mouse.OnInputReceived(client, L_e);
                            e.Handled = e.Handled || L_e.Handled;
                        }
                        catch (Exception ex)
                        {
                            ex.Log();
                        }
                    });
            }, TaskCreationOptions.PreferFairness);
        }