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