/// <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; } } } }
/// <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); } } }
/// <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); } } }