public void HandleEventsHighPriority()
 {
     if (Event.current.type == EventType.MouseDown && this.GetWindowAt(UI.GUIToScreenPoint(Event.current.mousePosition)) == null)
     {
         bool flag = this.CloseWindowsBecauseClicked(null);
         if (flag)
         {
             Event.current.Use();
         }
     }
     if (KeyBindingDefOf.Cancel.KeyDownEvent)
     {
         this.Notify_PressedCancel();
     }
     if (KeyBindingDefOf.Accept.KeyDownEvent)
     {
         this.Notify_PressedAccept();
     }
     if (Event.current.type == EventType.MouseDown || Event.current.type == EventType.KeyDown)
     {
         if (!this.GetsInput(null))
         {
             Event.current.Use();
         }
     }
 }
 public static bool Reorderable(int groupID, Rect rect)
 {
     if (Event.current.type == EventType.Repaint)
     {
         ReorderableInstance item = default(ReorderableInstance);
         item.groupID = groupID;
         item.rect    = rect;
         item.absRect = new Rect(UI.GUIToScreenPoint(rect.position), rect.size);
         ReorderableWidget.reorderables.Add(item);
         int num = ReorderableWidget.reorderables.Count - 1;
         if (ReorderableWidget.draggingReorderable != -1 && Vector2.Distance(ReorderableWidget.clickedAt, Event.current.mousePosition) > 5.0)
         {
             if (!ReorderableWidget.dragBegun)
             {
                 SoundDefOf.TickTiny.PlayOneShotOnCamera(null);
                 ReorderableWidget.dragBegun = true;
             }
             if (ReorderableWidget.draggingReorderable == num)
             {
                 GUI.color = ReorderableWidget.HighlightColor;
                 Widgets.DrawHighlight(rect);
                 GUI.color = Color.white;
             }
             if (ReorderableWidget.lastInsertAt == num)
             {
                 ReorderableInstance reorderableInstance = ReorderableWidget.reorderables[ReorderableWidget.lastInsertAt];
                 Rect    rect2         = reorderableInstance.rect;
                 Vector2 mousePosition = Event.current.mousePosition;
                 float   y             = mousePosition.y;
                 Vector2 center        = rect2.center;
                 bool    flag          = y < center.y;
                 GUI.color = ReorderableWidget.LineColor;
                 if (flag)
                 {
                     Widgets.DrawLine(rect2.position, new Vector2(rect2.x + rect2.width, rect2.y), ReorderableWidget.LineColor, 2f);
                 }
                 else
                 {
                     Widgets.DrawLine(new Vector2(rect2.x, rect2.yMax), new Vector2(rect2.x + rect2.width, rect2.yMax), ReorderableWidget.LineColor, 2f);
                 }
                 GUI.color = Color.white;
             }
         }
         return(ReorderableWidget.draggingReorderable == num && ReorderableWidget.dragBegun);
     }
     if (Event.current.rawType == EventType.MouseUp)
     {
         ReorderableWidget.released = true;
     }
     if (Event.current.type == EventType.MouseDown && Mouse.IsOver(rect))
     {
         ReorderableWidget.clicked       = true;
         ReorderableWidget.clickedAt     = Event.current.mousePosition;
         ReorderableWidget.clickedInRect = rect;
     }
     return(false);
 }
示例#3
0
 public void HandleEventsHighPriority()
 {
     if (Event.current.type == EventType.MouseDown && this.GetWindowAt(UI.GUIToScreenPoint(Event.current.mousePosition)) == null)
     {
         bool flag = this.CloseWindowsBecauseClicked(null);
         if (flag)
         {
             Event.current.Use();
         }
     }
     if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape)
     {
         this.Notify_PressedEscape();
     }
     if ((Event.current.type == EventType.MouseDown || Event.current.type == EventType.KeyDown) && !this.GetsInput(null))
     {
         Event.current.Use();
     }
 }
示例#4
0
        private static void FixDelta()
        {
            Vector2 vector = UI.GUIToScreenPoint(Event.current.mousePosition);

            if (Event.current.rawType == EventType.MouseDrag)
            {
                Vector2 value = vector;
                Vector2?rhs   = lastMousePosition;
                if (value != rhs || Time.frameCount != lastMousePositionFrame)
                {
                    if (lastMousePosition.HasValue)
                    {
                        currentEventDelta = vector - lastMousePosition.Value;
                    }
                    else
                    {
                        currentEventDelta = default(Vector2);
                    }
                    lastMousePosition      = vector;
                    lastMousePositionFrame = Time.frameCount;
                }
            }
            else
            {
                currentEventDelta = Event.current.delta;
                if (Event.current.rawType == EventType.MouseDown)
                {
                    lastMousePosition      = vector;
                    lastMousePositionFrame = Time.frameCount;
                }
                else if (Event.current.rawType == EventType.MouseUp)
                {
                    lastMousePosition = null;
                }
            }
        }
        public static bool Reorderable(int groupID, Rect rect, bool useRightButton = false)
        {
            bool result;

            if (Event.current.type == EventType.Repaint)
            {
                ReorderableWidget.ReorderableInstance item = default(ReorderableWidget.ReorderableInstance);
                item.groupID = groupID;
                item.rect    = rect;
                item.absRect = new Rect(UI.GUIToScreenPoint(rect.position), rect.size);
                ReorderableWidget.reorderables.Add(item);
                int num = ReorderableWidget.reorderables.Count - 1;
                if (ReorderableWidget.draggingReorderable != -1 && (ReorderableWidget.dragBegun || Vector2.Distance(ReorderableWidget.clickedAt, Event.current.mousePosition) > 5f))
                {
                    if (!ReorderableWidget.dragBegun)
                    {
                        SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(null);
                        ReorderableWidget.dragBegun = true;
                    }
                    if (ReorderableWidget.draggingReorderable == num)
                    {
                        GUI.color = ReorderableWidget.HighlightColor;
                        Widgets.DrawHighlight(rect);
                        GUI.color = Color.white;
                    }
                    if (ReorderableWidget.lastInsertNear == num && groupID >= 0 && groupID < ReorderableWidget.groups.Count)
                    {
                        Rect rect2 = ReorderableWidget.reorderables[ReorderableWidget.lastInsertNear].rect;
                        ReorderableWidget.ReorderableGroup reorderableGroup = ReorderableWidget.groups[groupID];
                        if (reorderableGroup.DrawLineExactlyBetween)
                        {
                            if (reorderableGroup.direction == ReorderableDirection.Horizontal)
                            {
                                rect2.xMin -= reorderableGroup.drawLineExactlyBetween_space / 2f;
                                rect2.xMax += reorderableGroup.drawLineExactlyBetween_space / 2f;
                            }
                            else
                            {
                                rect2.yMin -= reorderableGroup.drawLineExactlyBetween_space / 2f;
                                rect2.yMax += reorderableGroup.drawLineExactlyBetween_space / 2f;
                            }
                        }
                        GUI.color = ReorderableWidget.LineColor;
                        if (reorderableGroup.direction == ReorderableDirection.Horizontal)
                        {
                            if (ReorderableWidget.lastInsertNearLeft)
                            {
                                Widgets.DrawLine(rect2.position, new Vector2(rect2.x, rect2.yMax), ReorderableWidget.LineColor, 2f);
                            }
                            else
                            {
                                Widgets.DrawLine(new Vector2(rect2.xMax, rect2.y), new Vector2(rect2.xMax, rect2.yMax), ReorderableWidget.LineColor, 2f);
                            }
                        }
                        else if (ReorderableWidget.lastInsertNearLeft)
                        {
                            Widgets.DrawLine(rect2.position, new Vector2(rect2.xMax, rect2.y), ReorderableWidget.LineColor, 2f);
                        }
                        else
                        {
                            Widgets.DrawLine(new Vector2(rect2.x, rect2.yMax), new Vector2(rect2.xMax, rect2.yMax), ReorderableWidget.LineColor, 2f);
                        }
                        GUI.color = Color.white;
                    }
                }
                result = (ReorderableWidget.draggingReorderable == num && ReorderableWidget.dragBegun);
            }
            else
            {
                if (Event.current.rawType == EventType.MouseUp)
                {
                    ReorderableWidget.released = true;
                }
                if (Event.current.type == EventType.MouseDown && ((useRightButton && Event.current.button == 1) || (!useRightButton && Event.current.button == 0)) && Mouse.IsOver(rect))
                {
                    ReorderableWidget.clicked       = true;
                    ReorderableWidget.clickedAt     = Event.current.mousePosition;
                    ReorderableWidget.clickedInRect = rect;
                }
                result = false;
            }
            return(result);
        }