private void SelectNextBrush(int offset)
        {
            int index          = this.BrushListModel.IndexOfRecord(this.BrushListModel.SelectedBrush);
            int correctedIndex = index + offset;

            // Prevent exceeding last brush in list.
            if (correctedIndex < 0)
            {
                correctedIndex = 0;

                // Display tileset when moving past start of list.
                if (this.BrushListModel.View == BrushListView.Tileset && this.BrushListModel.SelectedTileset != null)
                {
                    this.SelectedObject = this.BrushListModel.SelectedTileset;
                    return;
                }
            }
            else if (index == 0 && this.SelectedObject is Tileset)
            {
                // Do not offset selection, simply move from tileset to brush.
                correctedIndex -= offset;
            }
            if (correctedIndex >= this.BrushListModel.Records.Count)
            {
                return;
            }

            this.SelectBrushByIndex(correctedIndex);
        }
 private void BrushListModel_SelectedBrushChanged(Brush previous, Brush current)
 {
     if (!this.IsLocked)
     {
         this.SelectedObject = current;
     }
 }
        /// <inheritdoc/>
        protected override void DoDestroy()
        {
            this.selectedObject = null;

            // Remove event handlers to avoid memory leak.
            this.BrushListModel.SelectedBrushChanged   -= this.BrushListModel_SelectedBrushChanged;
            this.BrushListModel.SelectedTilesetChanged -= this.BrushListModel_SelectedTilesetChanged;
        }
        private void UnloadDesignerView()
        {
            if (this.designerView == null)
            {
                return;
            }

            RotorzEditorGUI.ClearHoverTip();

            this.designerView.OnDisable();
            this.designerView = null;

            this.History.Cleanup();
            this.SelectedObject = null;
        }
        private void RecentHistoryMenu_Select(object target)
        {
            var obj = target as IDesignableObject;

            if (this.History.CanGoBack && ReferenceEquals(this.History.PeekBack.Object, obj))
            {
                this.History.GoBack();
            }
            else if (this.History.CanGoForward && ReferenceEquals(this.History.PeekForward.Object, obj))
            {
                this.History.GoForward();
            }
            else
            {
                this.SelectedObject = obj;
            }
        }
 private void SelectBrushByIndex(int index)
 {
     if (index < 0 && this.BrushListModel.View == BrushListView.Tileset)
     {
         this.SelectedObject = null;
         this.BrushListModel.ScrollPosition = 0f;
         ToolUtility.RepaintBrushPalette();
         this.Repaint();
     }
     else
     {
         Brush nextBrush = this.BrushListModel.Records[index].Brush;
         if (nextBrush != null)
         {
             this.SelectedObject = nextBrush;
         }
     }
 }
        /// <inheritdoc/>
        protected override void DoEnable()
        {
            this.titleContent         = new GUIContent(TileLang.Text("Designer"));
            this.minSize              = new Vector2(710, 250);
            this.InitialSize          = new Vector2(747, 500);
            this.CenterWhenFirstShown = CenterMode.Once;

            this.wantsMouseMove = true;

            this.History = new HistoryManager(this);
            this.RestoreRecentSelectionList();

            this.BrushListModel = ToolUtility.SharedBrushListModel;
            this.BrushListModel.SelectedBrushChanged   += this.BrushListModel_SelectedBrushChanged;
            this.BrushListModel.SelectedTilesetChanged += this.BrushListModel_SelectedTilesetChanged;

            // Restore previous selection.
            this.SelectedObject = EditorUtility.InstanceIDToObject(this.selectedObjectInstanceID) as IDesignableObject;

            EditorApplication.modifierKeysChanged += this.Repaint;
        }
Exemple #8
0
 /// <summary>
 /// Initialize a new instance of the <see cref="HistoryState"/> class.
 /// </summary>
 /// <param name="selected">Selected designable object.</param>
 public HistoryState(IDesignableObject selected)
     : base(selected)
 {
 }