Ejemplo n.º 1
0
 private void OnToggleLocalSpaceIconClicked(Event inputEvent)
 {
     DrawGUI.Use(inputEvent);
     SetUsingLocalSpace(!UsingLocalSpace);
     GUI.changed = true;
     SelectHeaderPart((HeaderPart)TransformHeaderPart.ToggleLocalSpaceButton);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// fill out lastDrawPosition for Draw
        /// </summary>
        protected override void GetDrawPositions(Rect position)
        {
            lastDrawPosition        = position;
            lastDrawPosition.height = Height;

            localDrawAreaOffset = DrawGUI.GetLocalDrawAreaOffset();
        }
Ejemplo n.º 3
0
        /// <inheritdoc/>
        public override bool OnRightClick(Event inputEvent)
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!inspector.IgnoreToolbarMouseInputs(), GetType().Name + ".HandleOnBeingActivated called with IgnoreToolbarMouseInputs " + StringUtils.True);
            Debug.Assert(inputEvent != null);
            Debug.Assert(inputEvent.type != EventType.Used);
                        #endif

            switch (mouseoveredPart)
            {
            case SearchBoxPart.Dropdown:
                DrawGUI.Use(inputEvent);
                OpenFilteringMethodMenu(dropdownButtonRect);
                return(true);

            case SearchBoxPart.TextField:
                // don't consume right click event, let filterDrawer handle that
                return(false);

            case SearchBoxPart.ClearButton:
                DrawGUI.Use(inputEvent);
                ClearFilterField(false);
                return(true);

            default:
                return(base.OnRightClick(inputEvent));
            }
        }
Ejemplo n.º 4
0
        /// <inheritdoc/>
        protected override void Setup()
        {
            filterDrawer = new FilterField(OpenFilteringMethodMenu);

            graphics = inspector.Preferences.graphics;
            inspector.OnFilterChanging += SyncFilterFromInspectorState;

            if (ClearButtonWidth <= 0f)
            {
                                #if SAFE_MODE
                if (Event.current == null)
                {
                                        #if DEV_MODE
                    Debug.LogWarning(GetType().Name + ".Setup called with Event.current null. This is dangerous because can't reference many GUI related methods.");
                                        #endif

                    DrawGUI.OnNextBeginOnGUI(() => ClearButtonWidth = InspectorPreferences.Styles.ToolbarCancel.CalcSize(GUIContent.none).x, false);
                }
                else
                                #endif
                {
                    ClearButtonWidth = InspectorPreferences.Styles.ToolbarCancel.CalcSize(GUIContent.none).x;
                }
            }

                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(ClearButtonWidth > 0f, ClearButtonWidth);
                        #endif
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Determines whether current event is a mouse drag event.
        ///
        /// True if has DragAndDropObjectReferences.
        ///
        /// True if mouse has moved since mouse button was pressed down and last input event type is MouseDrag, DragUpdated, or MouseDown for right mouse button.
        ///
        /// True if mouse has moved since mouse button was pressed down and current input event type is DragPerform, DragExited.
        ///
        /// NOTE: This can return true for the remaining duration of the the frame, even after Clear has been called.
        ///
        /// NOTE: This can return true, even if mouse down event was used.
        /// </summary>
        /// <returns> True if event is a mouse drag event, otherwise returns false. </returns>
        public bool IsDrag()
        {
            if (DrawGUI.IsUnityObjectDrag)
            {
                return(true);
            }

            if (isClick)
            {
                return(false);
            }

            switch (DrawGUI.LastInputEventType)
            {
            case EventType.DragPerform:
            case EventType.DragExited:
                return(Event.current != null && Event.current.Equals(DrawGUI.LastInputEvent()));

            case EventType.MouseDrag:
            case EventType.DragUpdated:
                return(true);

            case EventType.ContextClick:
            case EventType.MouseDown:
                var lastInputEvent = DrawGUI.LastInputEvent();
                return(lastInputEvent != null && lastInputEvent.button == 1);

            default:
                return(false);
            }
        }
Ejemplo n.º 6
0
        private void OnToggleSnapToGridIconRightClicked(IUnityObjectDrawer containingDrawer, Rect buttonRect, Event inputEvent)
        {
            var menu = Menu.Create();

            menu.Insert(0, "Edit Snap Settings...", () => DrawGUI.ExecuteMenuItem("Edit/Snap Settings..."));
            ContextMenuUtility.OpenAt(menu, buttonRect, this, (Part)TransformHeaderPart.ToggleSnapToGridButton);
        }
Ejemplo n.º 7
0
        /// <inheritdoc />
        protected override void GetDrawPositions(Rect position)
        {
            lastDrawPosition        = position;
            lastDrawPosition.height = Height;

            lastDrawPosition.GetLabelAndControlRects(label, out labelLastDrawPosition, out textFieldDrawPosition);

            textAreaDrawPosition = lastDrawPosition;
            DrawGUI.AddMarginsAndIndentation(ref textAreaDrawPosition);
            DrawGUI.RemoveFirstLine(ref textAreaDrawPosition);

            if (textArea)
            {
                labelLastDrawPosition = lastDrawPosition;
                DrawGUI.AddMargins(ref labelLastDrawPosition);
                labelLastDrawPosition.height = DrawGUI.SingleLineHeight;
                controlLastDrawPosition      = textAreaDrawPosition;
            }
            else
            {
                controlLastDrawPosition = textFieldDrawPosition;
            }

            localDrawAreaOffset = DrawGUI.GetLocalDrawAreaOffset();
        }
Ejemplo n.º 8
0
        private void GetDrawPositions(Rect openPosition)
        {
            width = openPosition.width;

            viewRect        = openPosition;
            viewRect.width  = width;
            viewRect.height = TotalHeight;
            viewRect.x      = 0f;
            viewRect.y      = 0f;

            filterFieldRect        = viewRect;
            filterFieldRect.height = FilterAreaHeight;
            filterFieldRect.x     += 7f;
            filterFieldRect.y      = 6f;
            filterFieldRect.width -= 16f + 14f;

            filterDiscardRect       = filterFieldRect;
            filterDiscardRect.x    += filterFieldRect.width;
            filterDiscardRect.width = 16f;
            filterDiscardRect.y    += 1f;

            headerRect        = viewRect;
            headerRect.y     += FilterAreaHeight;
            headerRect.height = NavigationBarHeight;

            backArrowRect        = headerRect;
            backArrowRect.width  = 13f;
            backArrowRect.height = 13f;
            backArrowRect.x     += 3f;
            backArrowRect.y     += 5f;

            headerLabelRect = headerRect;
            float labelOffset = backArrowRect.xMax - headerRect.x;

            headerLabelRect.x     += labelOffset;
            headerLabelRect.width -= labelOffset;

            dividerRect        = headerRect;
            dividerRect.y      = TopPartHeight;
            dividerRect.height = 1f;
            dividerRect.width  = width;

            viewRect.y      = TopPartHeight;
            viewRect.height = ScrollAreaHeight;

            contentRect        = viewRect;
            contentRect.y      = 0f;
            contentRect.height = currentViewItemCount * DrawGUI.SingleLineHeight;

            bool hasVerticalScrollBar = contentRect.height > ScrollAreaHeight;

            if (hasVerticalScrollBar)
            {
                contentRect.width = width - DrawGUI.ScrollBarWidth;
            }

            viewRect.y = TopPartHeight;

            localDrawAreaOffset = DrawGUI.GetLocalDrawAreaOffset();
        }
Ejemplo n.º 9
0
        private static void ShowWelcomeScreen()
        {
            showWelcomeScreenErrorsEncountered          = false;
            UnityEngine.Application.logMessageReceived += OnMessageLoggedToConsole;

            try
            {
                DrawGUI.ExecuteMenuItem(PowerInspectorMenuItemPaths.WelcomeScreen);
            }
                        #if DEV_MODE
            catch (System.Exception e)
            {
                UnityEngine.Debug.LogError(e);
                        #else
            catch
            {
                        #endif

                showWelcomeScreenErrorsEncountered = true;
            }

            UnityEngine.Application.logMessageReceived -= OnMessageLoggedToConsole;

            // if any errors possibly prevented welcome screen from being shown, then don't set WelcomeScreenShown true
            if (!showWelcomeScreenErrorsEncountered)
            {
                EditorPrefs.SetBool("PI.WelcomeScreenShown", true);
            }
        }
Ejemplo n.º 10
0
        /// <inheritdoc/>
        public virtual bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!inspector.IgnoreToolbarMouseInputs());
                        #endif

            if (mouseoverVisibleItemIndex != -1)
            {
                if (!IsSelected)
                {
                    inspector.Manager.Select(inspector, InspectorPart.Toolbar, ReasonSelectionChanged.ControlClicked);
                }
                var item = visibleItems[mouseoverVisibleItemIndex];
                if (item.Selectable && SelectedItem != item)
                {
                    SetSelectedItem(item, ReasonSelectionChanged.ControlClicked);
                }

                if (item.Clickable && item.OnClick(inputEvent))
                {
                    GUIUtility.ExitGUI();
                    return(true);
                }
                return(false);
            }
            else
            {
                DrawGUI.Use(inputEvent);
                KeyboardControlUtility.SetKeyboardControl(0, 3);
            }

            inspector.Manager.Select(inspector, InspectorPart.Toolbar, ReasonSelectionChanged.ThisClicked);
            SetSelectedItem(-1, ReasonSelectionChanged.ThisClicked);
            return(true);
        }
Ejemplo n.º 11
0
        /// <inheritdoc />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
            if (InspectorUtility.ActiveInspector.Preferences.keyConfigs.addComponent.DetectAndUseInput(inputEvent))
            {
                Select(ReasonSelectionChanged.KeyPressShortcut);
                Open();
                return(true);
            }

            switch (Event.current.keyCode)
            {
            case KeyCode.Return:
            case KeyCode.KeypadEnter:
                GUI.changed = true;
                DrawGUI.Use(inputEvent);
                if (!open)
                {
                    Open();
                }
                return(true);

            //TO DO: implement "opening" namespace or going back one level
            case KeyCode.LeftArrow:
            case KeyCode.RightArrow:
                DrawGUI.Use(inputEvent);
                return(true);

            default:
                return(base.OnKeyboardInputGiven(inputEvent, keys));
            }
        }
Ejemplo n.º 12
0
        /// <inheritdoc />
        public override void OnMouseover()
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(Clickable);
                        #endif

            if (MouseOverPart == PrefixedControlPart.Control)
            {
                if (!ReadOnly)
                {
                    DrawGUI.DrawMouseoverEffect(ControlPosition, localDrawAreaOffset);
                }
            }
            else if (MouseOverPart == PrefixedControlPart.Prefix)
            {
                if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel)
                {
                    DrawGUI.DrawLeftClickAreaMouseoverEffect(PrefixLabelPosition, localDrawAreaOffset);
                }

                if (IsReorderable)
                {
                    DrawGUI.Active.SetCursor(MouseCursor.MoveArrow);
                }
            }
        }
Ejemplo n.º 13
0
        /// <inheritdoc />
        public override void DrawSelectionRect()
        {
            var rect = buttonRect;

            rect.x += 1f;
            DrawGUI.DrawControlSelectionIndicator(rect, localDrawAreaOffset);
        }
Ejemplo n.º 14
0
        /// <inheritdoc />
        public override bool Draw(Rect position)
        {
            if (Event.current.type == EventType.Layout)
            {
                OnLayoutEvent(position);
            }
            else if (splitterRect.height < 1f)
            {
                GetDrawPositions(position);
                Inspector.RefreshView();
            }

            DrawGUI.DrawLine(splitterRect, inspector.Preferences.theme.ComponentSeparatorLine);

            GenerateControlId();

            if (Event.current.type == EventType.Repaint)
            {
                GUI.Button(buttonRect, "Add Component", "AC Button");
            }

            DrawGUI.LayoutSpace(Height);

            return(false);
        }
Ejemplo n.º 15
0
        /// <inheritdoc cref="IDrawer.OnMouseover" />
        public override void OnMouseover()
        {
            base.OnMouseover();

            if (draggableMemberVisible)
            {
                                #if DEV_MODE && PI_ASSERTATIONS
                Debug.Assert(!ReadOnly);
                                #endif

                DrawGUI.Active.SetCursor(MouseCursor.SlideArrow);

                var color = Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint;

                // highlight the control even when mouseovering the prefix
                // to make it clear than dragging will change the value of that field
                var draggingTargets = DraggingTargetsMembers;
                for (int n = draggingTargets.Length - 1; n >= 0; n--)
                {
                    int index           = draggingTargets[n];
                    var draggableMember = (IDraggablePrefix <float>)members[index];
                    if (draggableMember.ShouldShowInInspector)
                    {
                        DrawGUI.DrawMouseoverEffect(draggableMember.ControlPosition, color, localDrawAreaOffset);
                    }
                }
            }
        }
Ejemplo n.º 16
0
        /// <inheritdoc />
        protected override void BuildContextMenu(ref Menu menu, bool extendedMenu)
        {
            if (BuildContextMenuItemsStartingFromBaseClass)
            {
                base.BuildContextMenu(ref menu, extendedMenu);
            }

            if (!ReadOnly && !IsPrefab)
            {
                menu.AddSeparatorIfNotRedundant();
                menu.Add("Align With NavMesh", AlignWithNavMesh);
                menu.Add("Align With Ground", AlignWithGround);
            }

            menu.AddSeparatorIfNotRedundant();
            menu.Add("Snapping", () => SetSnapToGrid(!UsingSnapping), UsingSnapping);
            menu.Add("Edit Snap Settings...", () => DrawGUI.ExecuteMenuItem("Edit/Snap Settings..."));
            menu.Add("Use World Space", () => SetUsingLocalSpace(!UsingLocalSpace), !UsingLocalSpace);

            if (!BuildContextMenuItemsStartingFromBaseClass)
            {
                base.BuildContextMenu(ref menu, extendedMenu);
            }

            var resetIndex = menu.IndexOf("Reset");

            if (resetIndex != -1)
            {
                menu.Insert(resetIndex + 1, "Reset Without Affecting Children", ResetWithoutAffectingChildren);
            }
        }
Ejemplo n.º 17
0
        public static void OnCustomEnabledControlClicked(IComponentDrawer drawer, Event inputEvent)
        {
            DrawGUI.Use(inputEvent);

            var targets = drawer.Components;

            var firstBehaviour = targets[0] as Behaviour;

                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(firstBehaviour != null, "createCustomEnabledFlag was true but target was not a Behaviour");
                        #endif

            bool setEnabled = !firstBehaviour.enabled;

            var changed = targets;
            for (int n = targets.Length - 1; n >= 1; n--)
            {
                if (((Behaviour)targets[n]).enabled == setEnabled)
                {
                    changed = changed.RemoveAt(n);
                }
            }

            UndoHandler.RegisterUndoableAction(changed, changed.Length == 1 ? (setEnabled ? "Enable Component" : "Disable Component") : (setEnabled ? "Enable Components" : "Disable Components"));

            firstBehaviour.enabled = setEnabled;
            for (int n = targets.Length - 1; n >= 1; n--)
            {
                ((Behaviour)targets[n]).enabled = setEnabled;
            }
        }
Ejemplo n.º 18
0
        /// <inheritdoc />
        public sealed override bool OnKeyboardInputGiven(Event e, KeyConfigs keys)
        {
            if (DrawGUI.EditingTextField)
            {
                return(false);
            }

            switch (e.keyCode)
            {
            case KeyCode.LeftArrow:
            case KeyCode.KeypadPlus:
                GUI.changed = true;
                DrawGUI.Use(e);
                TValue value     = Value;
                TValue decreased = RoundedAndClamped(Convert.ToDouble(value) - (e.shift ? step * 10d : step));
                if (decreased.CompareTo(value) != 0)
                {
                    Value = decreased;
                }
                return(true);

            case KeyCode.RightArrow:
            case KeyCode.KeypadMinus:
                GUI.changed = true;
                DrawGUI.Use(e);
                value = Value;
                TValue increased = RoundedAndClamped(Convert.ToDouble(value) + (e.shift ? step * 10d : step));
                if (increased.CompareTo(value) != 0)
                {
                    Value = increased;
                }
                return(true);
            }
            return(base.OnKeyboardInputGiven(e, keys));
        }
Ejemplo n.º 19
0
        public virtual void OnPrefixDragged(Event inputEvent)
        {
            var   values          = GetValues();
            var   mouseDownValues = MouseDownValues;
            float mouseDelta      = this.GetMouseDelta(inputEvent, MouseDownPosition);

                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(values.Length == mouseDownValues.Length);
            Debug.Assert(mouseDownValues.Length > 0);
                        #endif

            bool changed = false;
            for (int n = values.Length - 1; n >= 0; n--)
            {
                var valueWas       = (TValue)values[n];
                var mouseDownValue = (TValue)MouseDownValues[n];
                var setValue       = valueWas;
                OnPrefixDragged(ref setValue, mouseDownValue, mouseDelta);

                if (!setValue.Equals(valueWas))
                {
                    values[n] = setValue;
                    changed   = true;
                }
            }

            if (changed)
            {
                SetValues(values);
            }

            // highlight the control when prefix is being dragged
            // to make it clear that it is being dragged
            DrawGUI.DrawMouseoverEffect(ControlPosition, Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint, localDrawAreaOffset);
        }
Ejemplo n.º 20
0
        /// <inheritdoc/>
        protected override void GetDrawPositions(Rect position)
        {
            lastDrawPosition = position;
            float totalHeight = Height;

            lastDrawPosition.height = totalHeight;

            lastDrawPosition = position;

            if (DrawInSingleRow)
            {
                lastDrawPosition.GetLabelAndControlRects(label, out labelLastDrawPosition, out bodyLastDrawPosition);
            }
            else
            {
                labelLastDrawPosition = position;
                float headerHeight = HeaderHeight;
                labelLastDrawPosition.height = headerHeight;

                bodyLastDrawPosition        = position;
                bodyLastDrawPosition.y     += headerHeight;
                bodyLastDrawPosition.height = totalHeight - headerHeight;
            }

            localDrawAreaOffset = DrawGUI.GetLocalDrawAreaOffset();
        }
Ejemplo n.º 21
0
        /// <inheritdoc cref="IDrawer.OnMiddleClick" />
        public override void OnMiddleClick(Event inputEvent)
        {
            base.OnMiddleClick(inputEvent);

            var typeValue = Value;

            if (typeValue != null && inputEvent.type != EventType.Used)
            {
                var monoScript = FileUtility.FindScriptFile(typeValue);
                if (monoScript != null)
                {
                                        #if DEV_MODE && UNITY_EDITOR
                    Debug.Log("Pinging script asset " + UnityEditor.AssetDatabase.GetAssetPath(monoScript) + "...", monoScript);
                                        #endif

                    DrawGUI.Active.PingObject(monoScript);
                    DrawGUI.Use(inputEvent);
                    return;
                }

                                #if DEV_MODE
                Debug.Log("script by type " + typeValue.FullName + " not found...");
                                #endif
            }
                        #if DEV_MODE
            else
            {
                Debug.Log("typeValue=" + StringUtils.ToString(typeValue) + ", Event.type=" + inputEvent.type);
            }
                        #endif
        }
Ejemplo n.º 22
0
        /// <inheritdoc cref="IDrawer.OnKeyboardInputGiven" />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
                        #if DEV_MODE && DEBUG_KEYBOARD_INPUT
            Debug.Log(ToString() + ".OnKeyboardInputGiven(" + StringUtils.ToString(inputEvent) + ")");
                        #endif

            if (DrawToggleNullButton)
            {
                switch (inputEvent.keyCode)
                {
                case KeyCode.F2:
                    var textFieldMember = ValueDrawer as ITextFieldDrawer;
                    if (textFieldMember != null)
                    {
                        DrawGUI.Use(inputEvent);
                        textFieldMember.StartEditingField();
                        return(true);
                    }
                    return(false);

                case KeyCode.Return:
                case KeyCode.Space:
                case KeyCode.KeypadEnter:
                    if (inputEvent.modifiers == EventModifiers.None)
                    {
                        OnNullToggleButtonClicked();
                        GUI.changed = true;
                        DrawGUI.Use(inputEvent);
                        return(true);
                    }
                    break;
                }
            }
            return(base.OnKeyboardInputGiven(inputEvent, keys));
        }
Ejemplo n.º 23
0
 public void DrawSelectionRect()
 {
     if (drawSelectionRect)
     {
         DrawGUI.DrawControlSelectionIndicator(rect);
     }
 }
Ejemplo n.º 24
0
 //Enable this if not running a client on the server machine
 // MasterServer.dedicatedServer = true;
 public MasterServerGUI()
 {
     connectedGUI = new DrawGUI(this.ConnectedGUI);
     disconnectedGUI = new DrawGUI(this.DisconnectedGUI);
     guiDelegate = new DrawGUI(this.ShowGUI);
     subGUIDelegate = this.disconnectedGUI;
 }
Ejemplo n.º 25
0
        public static void HandleFieldFocus(string id, ref int focusField)
        {
            if (focusField > 0)
            {
                // Trigger a Layout event.
                GUI.changed = true;

                GUI.SetNextControlName(id);

                if (Event.current.type == EventType.Layout)
                {
                    // Only call FocusControl at the lastest possible moment to prevent issue where keyboard focus would visibly jump between multiple controls.
                    if (focusField == 1)
                    {
                        DrawGUI.FocusControl(id);
                    }

                    focusField--;

                                        #if DEV_MODE && DEBUG_FOCUS_FIELD
                    Debug.Log(StringUtils.ToColorizedString("focusing field " + id + ", repeats=", focusField, ", Event=", StringUtils.ToString(Event.current)));
                                        #endif
                }
            }
        }
Ejemplo n.º 26
0
 // Use this for initialization
 public void Start(GUIDone doneDelegate)
 {
     Debug.Log("Start");
     guiDelegate = disconnectedGUI;
     guiDone     = doneDelegate;
     LoadClient();
 }
        /// <inheritdoc />
        public void OnBeingReordered(float yOffset)
        {
            var rect = SelectionRect;

            rect.y += yOffset;
            DrawGUI.DrawMouseoverEffect(rect, localDrawAreaOffset);
        }
Ejemplo n.º 28
0
            //GUI to show when we're disconnected.
            void DisconnectedGUI()
            {
                //Connect to a server
                if (GUI.Button(new Rect(10, 10, 100, 30), "Connect"))
                {
                    Network.Connect(remoteIP, remotePort);
                    guiDelegate = connectedGUI;
                }
                //Start a server
                if (GUI.Button(new Rect(10, 50, 100, 30), "Start Server"))
                {
                    Network.InitializeServer(this.maxConnections, this.listenPort, this.useNAT);
                    GameObject [] objects = GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[];
                    //Alert game objects
                    foreach (GameObject obj in objects)
                    {
                        obj.SendMessage("OnNetworkLoadedLevel", SendMessageOptions.DontRequireReceiver);
                    }
                }

                //Allow user to manually enter connection info
                remoteIP = GUI.TextField(new Rect(120, 10, 100, 20), remoteIP);
                string port = GUI.TextField(new Rect(230, 10, 40, 20), remotePort.ToString());

                //If text box is empty, make it '0'
                try
                {
                    remotePort = int.Parse(port);
                }
                catch
                {
                    remotePort = 0;
                }
            }
Ejemplo n.º 29
0
        /// <summary>
        /// Determines whether current event is a mouse drag event.
        ///
        /// True if has DragAndDropObjectReferences.
        ///
        /// True if mouse has moved since mouse button was pressed down and last input event type is MouseDrag, DragUpdated, or MouseDown for left mouse button.
        ///
        /// True if mouse has moved since mouse button was pressed down and current input event type is DragPerform, DragExited.
        ///
        /// NOTE: This can return true for the remaining duration of the the frame, even after MouseDownInfo.Clear(true) has been called.
        ///
        /// NOTE: This can return true, even if mouse down event was used.
        /// </summary>
        /// <returns> True if event is a mouse drag event, otherwise returns false. </returns>
        public bool IsDrag()
        {
            //UPDATE: The DragAndDropObjectReferences check is important
            //as without it the check would fail at random times when dragging
            //a MonoScript from the Project view on the custom InspectorWindow
            if (DrawGUI.IsUnityObjectDrag)
            {
                return(true);
            }

            if (isClick)
            {
                return(false);
            }

            switch (DrawGUI.LastInputEventType)
            {
            case EventType.DragPerform:
            case EventType.DragExited:
                return(Event.current != null && Event.current.Equals(DrawGUI.LastInputEvent()));

            case EventType.MouseDrag:
            case EventType.DragUpdated:
                return(true);

            case EventType.MouseDown:
                var lastInputEvent = DrawGUI.LastInputEvent();
                return(lastInputEvent != null && lastInputEvent.button == 0);

            default:
                return(false);
            }
        }
Ejemplo n.º 30
0
        /// <summary> Call this when a text field control is clicked. </summary>
        /// <param name="subject"> The clicked text field drawer. </param>
        /// <param name="inputEvent"> The current input event. </param>
        public static void OnControlClicked(ITextFieldDrawer subject, Event inputEvent)
        {
            bool canStartEditing = CanStartEditing(subject);

            // if field was already selected when it was clicked, don't use the event
            // this way Unity can handle positioning the cursor in a specific point on the text field etc.
            if (subject.Selected)
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - DrawGUI.EditingTextField = ", canStartEditing, " (because was selected)"));
                                #endif

                DrawGUI.EditingTextField = canStartEditing;
                return;
            }

            DrawGUI.Use(inputEvent);
            subject.HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);
            if (canStartEditing)
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - Calling StartEditingField (not selected and can start editing)"));
                                #endif

                subject.StartEditingField();
            }
            else
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - DrawGUI.EditingTextField = ", false, " (because was can start editing was ", false, ")"));
                                #endif

                DrawGUI.EditingTextField = false;
            }
        }
Ejemplo n.º 31
0
 /// <inheritdoc />
 public override void DrawFilterHighlight(SearchFilter filter, Color color)
 {
     if (lastPassedFilterTestType == FilterTestType.Value)
     {
         DrawGUI.DrawControlFilteringEffect(ControlPosition, color, localDrawAreaOffset);
     }
 }
Ejemplo n.º 32
0
 // Use this for initialization
 void Start()
 {
     masterServerGUI = new MasterServerGUI();
     udpConnectionGUI = new UDPConnectionGUI();
     guiDelegate = new DrawGUI(this.MainMenu);
     internalGUIDelegate = new DrawGUI(this.MainMenu);
     guiDone = new GUIDone(this.OnGUIDone);
     currentGUI = null;
 }
Ejemplo n.º 33
0
 void MainMenu()
 {
     GUI.Label(new Rect((Screen.width/2)-80,(Screen.height/2)-130,200,50),"SELECT CONNECTION TYPE");
     GUI.Label(new Rect((Screen.width-220),(Screen.height-30),220,30),"MULTIPLAYER DEMO");
     if(GUI.Button(new Rect((Screen.width/2)-100,(Screen.height/2)-100,200,50),"Master Server Connection"))
     {
         currentGUI = masterServerGUI;
         currentGUI.Start(this.guiDone);
         guiDelegate = currentGUI.GetDrawGUIDelegate();
     }
     if(GUI.Button(new Rect((Screen.width/2)-100,(Screen.height/2)-40,200,50),"Direct Connection"))
     {
         //Network.InitializeServer(this.maxConnections, this.listenPort, this.useNAT);
         masterServerGUI.Stop();
         udpConnectionGUI.Stop ();
         Application.LoadLevel("MainGame");
     }
     if(GUI.Button(new Rect((Screen.width/2)-100,(Screen.height/2)+20,200,50),"UDPConnection"))
     {
         currentGUI = udpConnectionGUI;
         currentGUI.Start(this.guiDone);
         guiDelegate = currentGUI.GetDrawGUIDelegate();
     }
 }
Ejemplo n.º 34
0
 void OnGUIDone()
 {
     currentGUI.Stop();
     guiDelegate = this.internalGUIDelegate;
 }
Ejemplo n.º 35
0
            void DisconnectedGUI()
            {
                //Start new server
                if(GUI.Button (new Rect(10, 10, 90, 30), "Start Server"))
                {
                    Network.InitializeServer(maxPlayers, serverPort, !Network.HavePublicAddress());
                    MasterServer.updateRate = 3;
                    MasterServer.RegisterHost(gameName, "stuff", "profas chat test");
                    subGUIDelegate = this.connectedGUI;
                }

                //Refresh hosts
                if(GUI.Button (new Rect(10, 40, 210, 30), "Refresh Available Servers") ||
                    Time.realtimeSinceStartup > lastHostListRequest + hostListRefreshTimeout)
                {
                    MasterServer.ClearHostList();
                    MasterServer.RequestHostList(gameName);
                    lastHostListRequest = Time.realtimeSinceStartup;
                    Debug.Log("Refresh Click");
                }

                if(GUI.Button (new Rect(10, 70, 210, 30), "Main Menu"))
                {
                    Network.Disconnect();
                    MasterServer.UnregisterHost();
                    guiDone();
                    //Stop();
                    //Application.LoadLevel("ServerChoose");
                }

                HostData [] hostData = MasterServer.PollHostList();
                int count = 0;
                foreach(HostData data in hostData)
                {
                    //Do not display NAT enabled games if we cannot do NAT punchthrough
                    if(!(filterNATHosts && data.useNat))
                    {
                        string name = System.String.Format("{0} {1}/{2}",
                            data.gameName, data.connectedPlayers, data.playerLimit);
                        string hostInfo = "[";
                        foreach(string host in data.ip)
                            hostInfo += (host + ":" + data.port + " ");

                        hostInfo += "]";

                        if(GUI.Button(new Rect(20, (count * 50) + 100, 400, 40), hostInfo))
                        {
                            //Enable NAT functionality based on what the hosts are configured to do
                            Network.Connect(data);
                        }
                    }
                }
            }
Ejemplo n.º 36
0
 void ConnectedGUI()
 {
     if (GUI.Button (new Rect(10,10,90,30),"Disconnect"))
     {
         Network.Disconnect();
         MasterServer.UnregisterHost();
         subGUIDelegate = this.disconnectedGUI;
     }
 }