Esempio n. 1
0
        public void SetCursor(CursorType cursor)
        {
            AllocEventBox ();
            CurrentCursor = cursor;
            Gdk.Cursor gc;
            if (!gtkCursors.TryGetValue (cursor, out gc)) {
                Gdk.CursorType ctype;
                if (cursor == CursorType.Arrow)
                    ctype = Gdk.CursorType.LeftPtr;
                else if (cursor == CursorType.Crosshair)
                    ctype = Gdk.CursorType.Crosshair;
                else if (cursor == CursorType.Hand)
                    ctype = Gdk.CursorType.Hand1;
                else if (cursor == CursorType.IBeam)
                    ctype = Gdk.CursorType.Xterm;
                else if (cursor == CursorType.ResizeDown)
                    ctype = Gdk.CursorType.BottomSide;
                else if (cursor == CursorType.ResizeUp)
                    ctype = Gdk.CursorType.TopSide;
                else if (cursor == CursorType.ResizeLeft)
                    ctype = Gdk.CursorType.LeftSide;
                else if (cursor == CursorType.ResizeRight)
                    ctype = Gdk.CursorType.RightSide;
                else if (cursor == CursorType.ResizeLeftRight)
                    ctype = Gdk.CursorType.SbHDoubleArrow;
                else if (cursor == CursorType.ResizeUpDown)
                    ctype = Gdk.CursorType.SbVDoubleArrow;
                else if (cursor == CursorType.Move)
                    ctype = Gdk.CursorType.Fleur;
                else if (cursor == CursorType.Wait)
                    ctype = Gdk.CursorType.Watch;
                else if (cursor == CursorType.Help)
                    ctype = Gdk.CursorType.QuestionArrow;
                else
                    ctype = Gdk.CursorType.Arrow;

                gtkCursors [cursor] = gc = new Gdk.Cursor (ctype);
            }

            gdkCursor = gc;

            if (EventsRootWidget.GdkWindow == null)
                SubscribeRealizedEvent ();
            else
                EventsRootWidget.GdkWindow.Cursor = gc;
        }
Esempio n. 2
0
        public void SetCursor(CursorType cursor)
        {
            AllocEventBox ();
            CurrentCursor = cursor;
            Gdk.Cursor gc;
            if (!gtkCursors.TryGetValue (cursor, out gc)) {
                Gdk.CursorType ctype;
                if (cursor == CursorType.Arrow)
                    ctype = Gdk.CursorType.LeftPtr;
                else if (cursor == CursorType.Crosshair)
                    ctype = Gdk.CursorType.Crosshair;
                else if (cursor == CursorType.Hand)
                    ctype = Gdk.CursorType.Hand1;
                else if (cursor == CursorType.IBeam)
                    ctype = Gdk.CursorType.Xterm;
                else if (cursor == CursorType.ResizeDown)
                    ctype = Gdk.CursorType.BottomSide;
                else if (cursor == CursorType.ResizeUp)
                    ctype = Gdk.CursorType.TopSide;
                else if (cursor == CursorType.ResizeLeft)
                    ctype = Gdk.CursorType.LeftSide;
                else if (cursor == CursorType.ResizeRight)
                    ctype = Gdk.CursorType.RightSide;
                else if (cursor == CursorType.ResizeLeftRight)
                    ctype = Gdk.CursorType.SbHDoubleArrow;
                else if (cursor == CursorType.ResizeUpDown)
                    ctype = Gdk.CursorType.SbVDoubleArrow;
                else if (cursor == CursorType.Move)
                    ctype = Gdk.CursorType.Fleur;
                else if (cursor == CursorType.Wait)
                    ctype = Gdk.CursorType.Watch;
                else if (cursor == CursorType.Help)
                    ctype = Gdk.CursorType.QuestionArrow;
                else if (cursor == CursorType.Invisible)
                    ctype = (Gdk.CursorType)(-2); // Gdk.CursorType.None, since Gtk 2.16
                else
                    ctype = Gdk.CursorType.Arrow;

                gtkCursors [cursor] = gc = new Gdk.Cursor (ctype);
            }

            gdkCursor = gc;

            // subscribe mouse entered/leaved events, when widget gets/is realized
            RunWhenRealized(SubscribeCursorEnterLeaveEvent);

            if (immediateCursorChange) // if realized and mouse inside set immediatly
                EventsRootWidget.GdkWindow.Cursor = gdkCursor;
        }
Esempio n. 3
0
        public void SetCursor(CursorType cursor)
        {
            AllocEventBox ();
            Gdk.Cursor gc;
            if (!gtkCursors.TryGetValue (cursor, out gc)) {
                Gdk.CursorType ctype;
                if (cursor == CursorType.Arrow)
                    ctype = Gdk.CursorType.LeftPtr;
                else if (cursor == CursorType.Crosshair)
                    ctype = Gdk.CursorType.Crosshair;
                else if (cursor == CursorType.Hand)
                    ctype = Gdk.CursorType.Hand1;
                else if (cursor == CursorType.IBeam)
                    ctype = Gdk.CursorType.Xterm;
                else if (cursor == CursorType.ResizeDown)
                    ctype = Gdk.CursorType.BottomSide;
                else if (cursor == CursorType.ResizeUp)
                    ctype = Gdk.CursorType.TopSide;
                else if (cursor == CursorType.ResizeLeft)
                    ctype = Gdk.CursorType.LeftSide;
                else if (cursor == CursorType.ResizeRight)
                    ctype = Gdk.CursorType.RightSide;
                else if (cursor == CursorType.ResizeLeftRight)
                    ctype = Gdk.CursorType.SbHDoubleArrow;
                else if (cursor == CursorType.ResizeUpDown)
                    ctype = Gdk.CursorType.SbVDoubleArrow;
                else
                    ctype = Gdk.CursorType.Arrow;

                gtkCursors [cursor] = gc = new Gdk.Cursor (ctype);
            }
            if (EventsRootWidget.GdkWindow == null) {
                EventHandler h = null;
                h = delegate {
                    EventsRootWidget.GdkWindow.Cursor = gc;
                    EventsRootWidget.Realized -= h;
                };
                EventsRootWidget.Realized += h;
            } else
                EventsRootWidget.GdkWindow.Cursor = gc;
        }
Esempio n. 4
0
 /// <summary>
 /// Displays the current plotCursor, set in each interaction
 /// This must be overridden by each implementation so that
 /// the appropriate platform cursor type can be displayed
 /// </summary>
 public virtual void ShowCursor(CursorType plotCursor )
 {
 }
Esempio n. 5
0
        protected override void OnButtonPressed(ButtonEventArgs args)
        {
            SetFocus();

            Point position = args.Position;
            position.X /= scaleFactor;
            position.Y /= scaleFactor;

            popupWindow.Hide();
            initialScrollPosition = Point.Zero;

            PipelineNode node = GetNodeAt(position, true);

            if (node != null) {
                ButtonEventArgs nodeArgs = new ButtonEventArgs();
                nodeArgs.X = position.X - node.bound.Location.X;
                nodeArgs.Y = position.Y - node.bound.Location.Y;
                nodeArgs.Button = args.Button;
                nodeArgs.MultiplePress = args.MultiplePress;
                if (node.OnButtonPressed(nodeArgs)) {
                    return;
                }
            }

            switch (args.Button) {
            case PointerButton.Left:
                if (node != null) { // clicked on node
                    if (args.MultiplePress >= 2) {
                        OpenOptionWindow(node);
                        mouseAction = MouseAction.None;
                        args.Handled = true;
                        break;
                    } else {

                        MarkerNode mNode = node.GetMarkerNodeAt(position);
                        if (mNode != null && !mNode.compatible.IsFinal()) {
                            connectNodesStartMarker = mNode;
                            mouseAction |= MouseAction.AddEdge | MouseAction.AddEdgeNew;
                        } else {
                            if (node.bound.Contains(position)) {
                                nodeToMoveOffset = new Point(
                                    node.bound.Location.X - position.X,
                                    node.bound.Location.Y - position.Y
                                );
                                lastSelectedNode = node;
                                mouseAction |= MouseAction.MoveNode;
                            }
                        }
                    }
                } else {
                    Tuple<MarkerNode, MarkerEdge> edge = GetEdgeAt(position);
                    if (edge != null) { // clicked on edge
                        if (edge.Item2.r >= 0.5) {
                            connectNodesStartMarker = edge.Item1;
                        } else {
                            connectNodesStartMarker = (MarkerNode) edge.Item2.to;
                        }
                        edge.Item1.RemoveEdge(edge.Item2);
                        lastSelectedEdge = edge;
                        mouseAction |= MouseAction.MoveEdge;
                        args.Handled = true;
                    }
                }

                break;

            case PointerButton.Right:
                lastSelectedEdge = GetEdgeAt(position);
                if (lastSelectedEdge != null) {
                    contextMenuEdge.Popup();
                } else {
                    PipelineNode nodeRight = GetNodeAt(position, true);
                    if (nodeRight != null) {
                        lastSelectedNode = nodeRight;
                        if (lastSelectedNode.algorithm.options.Count > 0) {
                            contextMenuNodeOptions.Show();
                        } else {
                            contextMenuNodeOptions.Hide();
                        }
                        contextMenuNode.Popup();
                    }
                }
                break;
            case PointerButton.Middle:
                mouseMover.EnableMouseMover(args.Position);

                if (oldCursor != CursorType.Move) {
                    oldCursor = this.Cursor;
                    this.Cursor = CursorType.Move;
                }

                break;
            }
        }
Esempio n. 6
0
 /// <summary>
 /// Sets the cursor type.
 /// </summary>
 /// <param name="cursorType">The cursor type.</param>
 public void SetCursorType(CursorType cursorType)
 {
     Cursor = cursorType.ToXwtCursorType();
 }