Esempio n. 1
0
            public override void MouseDown(NSEvent theEvent)
            {
                var handler = Handler;

                if (handler != null)
                {
                    var args = MacConversions.GetMouseEvent(handler.ContainerControl, theEvent, false);
                    if (theEvent.ClickCount >= 2)
                    {
                        handler.Callback.OnMouseDoubleClick(handler.Widget, args);
                    }
                    else
                    {
                        handler.Callback.OnMouseDown(handler.Widget, args);
                    }
                    if (args.Handled)
                    {
                        return;
                    }

                    var point    = ConvertPointFromView(theEvent.LocationInWindow, null);
                    int rowIndex = (int)GetRow(point);
                    if (rowIndex >= 0)
                    {
                        int columnIndex = (int)GetColumn(point);
                        var item        = handler.GetItem(rowIndex);
                        var column      = columnIndex == -1 || columnIndex > handler.Widget.Columns.Count ? null : handler.Widget.Columns[columnIndex];
                        var cellArgs    = MacConversions.CreateCellMouseEventArgs(column, handler.ContainerControl, rowIndex, columnIndex, item, theEvent);
                        if (theEvent.ClickCount >= 2)
                        {
                            handler.Callback.OnCellDoubleClick(handler.Widget, cellArgs);
                        }
                        else
                        {
                            handler.Callback.OnCellClick(handler.Widget, cellArgs);
                        }
                    }
                    handler.IsMouseDragging = true;
                    base.MouseDown(theEvent);
                    handler.IsMouseDragging = false;

                    // NSOutlineView uses an event loop and MouseUp() does not get called
                    handler.Callback.OnMouseUp(handler.Widget, args);

                    return;
                }
                base.MouseDown(theEvent);
            }
Esempio n. 2
0
            bool HandleMouseEvent(NSEvent theEvent)
            {
                var handler = Handler;

                if (handler != null)
                {
                    var args = MacConversions.GetMouseEvent(handler, theEvent, false);
                    if (theEvent.ClickCount >= 2)
                    {
                        handler.Callback.OnMouseDoubleClick(handler.Widget, args);
                    }
                    else
                    {
                        handler.Callback.OnMouseDown(handler.Widget, args);
                    }
                    if (args.Handled)
                    {
                        return(true);
                    }

                    var point = ConvertPointFromView(theEvent.LocationInWindow, null);

                    int rowIndex;
                    if ((rowIndex = (int)GetRow(point)) >= 0)
                    {
                        int columnIndex = (int)GetColumn(point);
                        var item        = handler.GetItem(rowIndex);
                        var column      = columnIndex == -1 || columnIndex > handler.Widget.Columns.Count ? null : handler.Widget.Columns[columnIndex];
                        var cellArgs    = MacConversions.CreateCellMouseEventArgs(column, handler.ContainerControl, rowIndex, columnIndex, item, theEvent);
                        if (theEvent.ClickCount >= 2)
                        {
                            handler.Callback.OnCellDoubleClick(handler.Widget, cellArgs);
                        }
                        else
                        {
                            handler.Callback.OnCellClick(handler.Widget, cellArgs);
                        }
                    }
                }
                return(false);
            }