/// <summary>
        /// Sets window selected state.
        /// </summary>
        /// <param name="value">If set to <c>true</c> window is selected.</param>
        private void SetSelected(bool value)
        {
            DebugEx.VerboseFormat("WindowScript.SetSelected(value = {0})", value);

            if (value != (sSelectedWindow == this))
            {
                if (value)
                {
                    if (sSelectedWindow != null)
                    {
                        sSelectedWindow.SetSelected(false);
                    }

                    sSelectedWindow = this;
                    OnSelected();

                    if (sInstances.Count > 0)
                    {
                        if (sInstances[0] != this)
                        {
                            transform.SetAsLastSibling();
                        }
                    }
                    else
                    {
                        DebugEx.Fatal("Unexpected behaviour in WindowScript.SetSelected()");
                    }
                }
                else
                {
                    OnDeselected();
                    sSelectedWindow = null;
                }

                if (IsUICreated())
                {
                    if (IsFramePresent())
                    {
                        UpdateBorderImage();
                    }

                    switch (mFrame)
                    {
                        case WindowFrameType.Window:
                        case WindowFrameType.SubWindow:
                        {
                            if (mMinimizeImage != null)
                            {
                                if (mState != WindowState.Minimized)
                                {
                                    if (value)
                                    {
                                        mMinimizeImage.sprite = Assets.Common.Windows.Textures.minimizeButton.sprite;
                                    }
                                    else
                                    {
                                        mMinimizeImage.sprite = Assets.Common.Windows.Textures.minimizeButtonDeselected.sprite;
                                    }
                                }
                                else
                                {
                                    if (value)
                                    {
                                        mMinimizeImage.sprite = Assets.Common.Windows.Textures.normalizeButton.sprite;
                                    }
                                    else
                                    {
                                        mMinimizeImage.sprite = Assets.Common.Windows.Textures.normalizeButtonDeselected.sprite;
                                    }
                                }
                            }

                            if (mMaximizeImage != null)
                            {
                                if (mState != WindowState.Maximized)
                                {
                                    if (value)
                                    {
                                        mMaximizeImage.sprite = Assets.Common.Windows.Textures.maximizeButton.sprite;
                                    }
                                    else
                                    {
                                        mMaximizeImage.sprite = Assets.Common.Windows.Textures.maximizeButtonDeselected.sprite;
                                    }
                                }
                                else
                                {
                                    if (value)
                                    {
                                        mMaximizeImage.sprite = Assets.Common.Windows.Textures.normalizeButton.sprite;
                                    }
                                    else
                                    {
                                        mMaximizeImage.sprite = Assets.Common.Windows.Textures.normalizeButtonDeselected.sprite;
                                    }
                                }
                            }

                            if (mCloseImage != null)
                            {
                                if (value)
                                {
                                    mCloseImage.sprite = Assets.Common.Windows.Textures.closeButton.sprite;
                                }
                                else
                                {
                                    mCloseImage.sprite = Assets.Common.Windows.Textures.closeButtonDeselected.sprite;
                                }
                            }
                        }
                        break;

                        case WindowFrameType.Drawer:
                        {
                            if (mCloseImage != null)
                            {
                                if (value)
                                {
                                    mCloseImage.sprite = Assets.Common.Windows.Textures.toolCloseButton.sprite;
                                }
                                else
                                {
                                    mCloseImage.sprite = Assets.Common.Windows.Textures.toolCloseButtonDeselected.sprite;
                                }
                            }
                        }
                        break;

                        case WindowFrameType.SingleFrame:
                        case WindowFrameType.Frameless:
                        {
                            // Nothing
                        }
                        break;

                        default:
                        {
                            DebugEx.ErrorFormat("Unknown window frame: {0}", mFrame);
                        }
                        break;
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Sets window selected state.
        /// </summary>
        /// <param name="value">If set to <c>true</c> window is selected.</param>
        private void SetSelected(bool value)
        {
            if (value != (selectedWindow == this))
            {
                if (value)
                {
                    if (selectedWindow != null)
                    {
                        selectedWindow.SetSelected(false);
                    }

                    selectedWindow = this;
                }
                else
                {
                    selectedWindow = null;
                }

                if (IsUICreated())
                {
                    if (IsFramePresent())
                    {
                        UpdateBorderImage();
                    }

                    switch (mFrame)
                    {
                        case WindowFrameType.Window:
                        case WindowFrameType.SubWindow:
                        {
                            if (mMinimizeImage != null)
                            {
                                if (mState != WindowState.Minimized)
                                {
                                    if (value)
                                    {
                                        mMinimizeImage.sprite = Assets.Windows.Common.Textures.minimizeButton;
                                    }
                                    else
                                    {
                                        mMinimizeImage.sprite = Assets.Windows.Common.Textures.minimizeButtonDeselected;
                                    }
                                }
                                else
                                {
                                    if (value)
                                    {
                                        mMinimizeImage.sprite = Assets.Windows.Common.Textures.normalizeButton;
                                    }
                                    else
                                    {
                                        mMinimizeImage.sprite = Assets.Windows.Common.Textures.normalizeButtonDeselected;
                                    }
                                }
                            }

                            if (mMaximizeImage != null)
                            {
                                if (mState != WindowState.Maximized)
                                {
                                    if (value)
                                    {
                                        mMaximizeImage.sprite = Assets.Windows.Common.Textures.maximizeButton;
                                    }
                                    else
                                    {
                                        mMaximizeImage.sprite = Assets.Windows.Common.Textures.maximizeButtonDeselected;
                                    }
                                }
                                else
                                {
                                    if (value)
                                    {
                                        mMaximizeImage.sprite = Assets.Windows.Common.Textures.normalizeButton;
                                    }
                                    else
                                    {
                                        mMaximizeImage.sprite = Assets.Windows.Common.Textures.normalizeButtonDeselected;
                                    }
                                }
                            }

                            if (mCloseImage != null)
                            {
                                if (value)
                                {
                                    mCloseImage.sprite = Assets.Windows.Common.Textures.closeButton;
                                }
                                else
                                {
                                    mCloseImage.sprite = Assets.Windows.Common.Textures.closeButtonDeselected;
                                }
                            }
                        }
                        break;

                        case WindowFrameType.Drawer:
                        {
                            if (mCloseImage != null)
                            {
                                if (value)
                                {
                                    mCloseImage.sprite = Assets.Windows.Common.Textures.toolCloseButton;
                                }
                                else
                                {
                                    mCloseImage.sprite = Assets.Windows.Common.Textures.toolCloseButtonDeselected;
                                }
                            }
                        }
                        break;

                        case WindowFrameType.Frameless:
                        {
                            // Nothing
                        }
                        break;

                        default:
                        {
                            Debug.LogError("Unknown window frame");
                        }
                        break;
                    }
                }
            }
        }
        /// <summary>
        /// Handler for destroy event.
        /// </summary>
        protected virtual void OnDestroy()
        {
            DebugEx.Verbose("WindowScript.OnDestroy()");

            ResizeListenerScript.RemoveListener(OnScreenResize);

            if (mTitleText != null)
            {
                Translator.RemoveLanguageChangedListener(UpdateTitleText);
            }



            DestroyReplacement();

#if !CURSORLESS_PLATFORM
            RemoveCursorIfNeeded();
#endif



            foreach (Pair<WindowScript, List<WindowScript>> pair in sFullscreenWindows)
            {
                pair.second.Remove(this);
            }

            if (mState == WindowState.FullScreen)
            {
                RemoveFromFullscreenList();
            }

            if (!sInstances.Remove(this))
            {
                DebugEx.Error("Failed to remove window");
            }

            if (sSelectedWindow == this)
            {
                sSelectedWindow = null;

                if (sInstances.Count > 0)
                {
                    sInstances[0].SetSelected(true);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Handler for destroy event.
        /// </summary>
        protected virtual void OnDestroy()
        {
            ResizeListenerScript.RemoveListener(OnScreenResize);

            if (mTitleText != null)
            {
                Translator.removeLanguageChangedListener(UpdateTitleText);
            }

            DestroyReplacement();

            if (!instances.Remove(this))
            {
                Debug.LogError("Failed to remove window");
            }

            if (selectedWindow == this)
            {
                selectedWindow = null;

                if (instances.Count > 0)
                {
                    instances[0].SetSelected(true);
                }
            }
        }