void CreateBreadcrumbMenu() { m_BreadcrumbButton = this.MandatoryQ("breadcrumbButton"); m_BreadcrumbButton.tooltip = "Click to navigate to other scripts"; m_BreadcrumbButton.AddManipulator(new Clickable(OnBreadcrumbButtonClicked)); m_Breadcrumb = this.MandatoryQ <ToolbarBreadcrumbs>("breadcrumb"); }
public static void TrimItems(this ToolbarBreadcrumbs breadcrumbs, int countToKeep) { while (breadcrumbs.childCount > countToKeep) { breadcrumbs.PopItem(); } }
public void OnEnable() { InitElements(); var root = rootVisualElement; root.styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Examples/Editor/breadcrumbs-demo.uss")); var toolbar = new Toolbar(); root.Add(toolbar); var btn1 = new ToolbarButton(LoadRandomContent) { text = "Random" }; toolbar.Add(btn1); toolbar.Add(new ToolbarSpacer()); m_Breadcrumbs = new ToolbarBreadcrumbs(); toolbar.Add(m_Breadcrumbs); var box = new Box(); m_ListContainer = new ScrollView(); m_ListContainer.showHorizontal = false; box.Add(m_ListContainer); root.Add(box); LoadContentByName(RootName); }
private void CreateBreadcrumbs() { m_breadcrums = new ToolbarBreadcrumbs(); m_availableBreadcrumbs = new Stack <BreadcrumbData>(); m_availableBreadcrumbs.Push(new BreadcrumbData() { Label = "Character Summary", Order = 3, Callback = null, Slide = new CharacterSummarySlide(m_creationData) }); m_availableBreadcrumbs.Push(new BreadcrumbData() { Label = "Character Model", Order = 2, Callback = () => { while (m_breadcrums.childCount > 2) { SubstractBreadcrumb(); } }, Slide = new CharacterModelSlide(m_creationData) }); m_availableBreadcrumbs.Push(new BreadcrumbData() { Label = "Character Name", Order = 1, Callback = () => { while (m_breadcrums.childCount > 1) { SubstractBreadcrumb(); } }, Slide = new CharacterNameSlide(m_creationData) }); m_currentBreadcrumbs = new Stack <BreadcrumbData>(); ContainerElement.Q <Toolbar>("new-character-toolbar").Add(m_breadcrums); }
void UpdateParentView() { var container = new VisualElement(); var headerLabel = new Label("Parent Hierarchy"); headerLabel.AddToClassList("Header"); container.Add(headerLabel); // Create a hierarchy queue Queue <Object> parents = new Queue <Object>(); MixtureVariant currentVariant = variant.parentVariant; while (currentVariant != null) { parents.Enqueue(currentVariant); currentVariant = currentVariant.parentVariant; } parents.Enqueue(graph); // UIElements breadcrumbs bar var parentBar = new ToolbarBreadcrumbs(); parentBar.AddToClassList("Indent"); parentBar.AddToClassList("VariantBreadcrumbs"); foreach (var obj in parents.Reverse()) { var v = obj as MixtureVariant; var g = obj as MixtureGraph; parentBar.PushItem(obj.name, () => { Selection.activeObject = v?.mainOutputTexture ?? g?.mainOutputTexture ?? obj; }); } // Add new variant button: parentBar.PushItem("+", () => { MixtureAssetCallbacks.CreateMixtureVariant(null, variant); }); container.Add(parentBar); root.Add(container); }
/// <summary> /// Initializes a new instance of the <see cref="MainToolbar"/> class. /// </summary> /// <param name="commandDispatcher">The command dispatcher.</param> /// <param name="graphView">The graph view to which to attach the toolbar.</param> public MainToolbar(CommandDispatcher commandDispatcher, GraphView graphView) : base(commandDispatcher, graphView) { AddToClassList(ussClassName); this.AddStylesheet("MainToolbar.uss"); this.AddStylesheet(EditorGUIUtility.isProSkin ? "MainToolbar_dark.uss" : "MainToolbar_light.uss"); var tpl = GraphElementHelper.LoadUXML("MainToolbar.uxml"); tpl.CloneTree(this); m_NewGraphButton = this.MandatoryQ <ToolbarButton>(NewGraphButton); m_NewGraphButton.tooltip = "New Graph"; m_NewGraphButton.ChangeClickEvent(OnNewGraphButton); m_SaveAllButton = this.MandatoryQ <ToolbarButton>(SaveAllButton); m_SaveAllButton.tooltip = "Save All"; m_SaveAllButton.ChangeClickEvent(OnSaveAllButton); m_BuildAllButton = this.MandatoryQ <ToolbarButton>(BuildAllButton); m_BuildAllButton.tooltip = "Build All"; m_BuildAllButton.ChangeClickEvent(OnBuildAllButton); m_ShowMiniMapButton = this.MandatoryQ <ToolbarButton>(ShowMiniMapButton); m_ShowMiniMapButton.tooltip = "Show MiniMap"; m_ShowMiniMapButton.ChangeClickEvent(ShowGraphViewToolWindow <GraphViewMinimapWindow>); m_ShowBlackboardButton = this.MandatoryQ <ToolbarButton>(ShowBlackboardButton); m_ShowBlackboardButton.tooltip = "Show Blackboard"; m_ShowBlackboardButton.ChangeClickEvent(ShowGraphViewToolWindow <GraphViewBlackboardWindow>); m_Breadcrumb = this.MandatoryQ <ToolbarBreadcrumbs>("breadcrumb"); m_EnableTracingButton = this.MandatoryQ <ToolbarToggle>(EnableTracingButton); m_EnableTracingButton.tooltip = "Toggle Tracing For Current Instance"; m_EnableTracingButton.RegisterValueChangedCallback(e => m_CommandDispatcher.Dispatch(new ActivateTracingCommand(e.newValue))); m_OptionsButton = this.MandatoryQ <ToolbarButton>(OptionsButton); m_OptionsButton.tooltip = "Options"; m_OptionsButton.ChangeClickEvent(OnOptionsButton); RegisterCallback <AttachToPanelEvent>(OnEnterPanel); RegisterCallback <DetachFromPanelEvent>(OnLeavePanel); }
public static void CreateOrUpdateItem(this ToolbarBreadcrumbs breadcrumbs, int index, string itemLabel, Action clickedEvent) { if (index >= breadcrumbs.childCount) { breadcrumbs.PushItem(itemLabel, clickedEvent); } else { if (breadcrumbs.ElementAt(index) is ToolbarButton item) { item.text = itemLabel; item.ChangeClickEvent(clickedEvent); } else { Debug.LogError("Trying to update an element that is not a ToolbarButton"); } } }
private void CreateToolbar() { _toolbar = new Toolbar(); _toolbarBreadcrumbs = new ToolbarBreadcrumbs(); _toolbar.Add(_toolbarBreadcrumbs); var spacer = new ToolbarSpacer { flex = true }; _toolbar.Add(spacer); var saveBtn = new Button(_view.Save) { text = "Save" }; _toolbar.Add(saveBtn); var executeBtn = new Button(Execute) { text = "Execute All" }; _toolbar.Add(executeBtn); var search = new ToolbarSearchField(); _toolbar.Add(search); var clearBtn = new Button(Clear) { text = "Clear" }; _toolbar.Add(clearBtn); rootVisualElement.Add(_toolbar); }
public static void CreateOrUpdateItem(this ToolbarBreadcrumbs breadcrumbs, int index, string itemLabel, Action <int> clickedEvent) { if (index >= breadcrumbs.childCount) { breadcrumbs.PushItem(itemLabel, () => { int i = index; clickedEvent?.Invoke(i); }); } else { if (breadcrumbs.ElementAt(index) is ToolbarButton item) { item.text = itemLabel; } else { Debug.LogError("Trying to update an element that is not a ToolbarButton"); } } }
public BuilderToolbar( BuilderPaneWindow paneWindow, BuilderSelection selection, BuilderViewport viewport, BuilderExplorer explorer, BuilderLibrary library, BuilderInspector inspector, BuilderTooltipPreview tooltipPreview) { m_PaneWindow = paneWindow; m_Selection = selection; m_Viewport = viewport; m_Explorer = explorer; m_Library = library; m_Inspector = inspector; m_TooltipPreview = tooltipPreview; var template = BuilderPackageUtilities.LoadAssetAtPath <VisualTreeAsset>( BuilderConstants.UIBuilderPackagePath + "/BuilderToolbar.uxml"); template.CloneTree(this); #if !UNITY_2019_4 && !UNITY_2020_1 m_ThemeManager = new ThemeStyleSheetManager(this); m_ThemeManager.selection = m_Selection; m_ThemeManager.themeFilesChanged += UpdateCanvasThemeMenuStatus; #else m_ThemeManager = null; #endif // File Menu m_FileMenu = this.Q <ToolbarMenu>("file-menu"); SetUpFileMenu(); // Zoom Menu m_ZoomMenu = this.Q <ToolbarMenu>("zoom-menu"); SetUpZoomMenu(); // Fit canvas m_FitCanvasButton = this.Q <ToolbarButton>(FitCanvasButtonName); m_FitCanvasButton.clickable.clicked += () => m_Viewport.FitCanvas(); // Preview Button var previewButton = this.Q <ToolbarToggle>(PreviewToggleName); previewButton.RegisterValueChangedCallback(TogglePreviewMode); m_CanvasThemeMenu = this.Q <ToolbarMenu>("canvas-theme-menu"); SetUpCanvasThemeMenu(); ChangeCanvasTheme(document.currentCanvasTheme, document.currentCanvasThemeStyleSheet); UpdateCanvasThemeMenuStatus(); SetViewportSubTitle(); // Track unsaved changes state change. SetCanvasTitle(); m_SettingsMenu = this.Q <ToolbarMenu>("settings-menu"); SetupSettingsMenu(); // Breadcrumbs & BreadCrumbs Toolbar m_BreadcrumbsToolbar = this.Q <Toolbar>(BreadcrumbsToolbarName); m_Breadcrumbs = this.Q <ToolbarBreadcrumbs>(BreadcrumbsName); SetToolbarBreadCrumbs(); // Get Builder package version. var packageInfo = PackageInfo.FindForAssetPath("Packages/" + BuilderConstants.BuilderPackageName); if (packageInfo == null) { m_BuilderPackageVersion = null; } else { m_BuilderPackageVersion = packageInfo.version; } RegisterCallback <AttachToPanelEvent>(RegisterCallbacks); }
void CreateBreadcrumbMenu() { m_Breadcrumb = this.MandatoryQ <ToolbarBreadcrumbs>("breadcrumb"); }
public BuilderToolbar( BuilderPaneWindow paneWindow, BuilderSelection selection, BuilderViewport viewport, BuilderExplorer explorer, BuilderLibrary library, BuilderInspector inspector, BuilderTooltipPreview tooltipPreview) { m_PaneWindow = paneWindow; m_Selection = selection; m_Viewport = viewport; m_Explorer = explorer; m_Library = library; m_Inspector = inspector; m_TooltipPreview = tooltipPreview; var template = BuilderPackageUtilities.LoadAssetAtPath <VisualTreeAsset>( BuilderConstants.UIBuilderPackagePath + "/BuilderToolbar.uxml"); template.CloneTree(this); m_ThemeManager = new ThemeStyleSheetManager(this); m_ThemeManager.selection = m_Selection; m_ThemeManager.themeFilesChanged += UpdateCanvasThemeMenuStatus; // File Menu m_FileMenu = this.Q <ToolbarMenu>("file-menu"); SetUpFileMenu(); // Zoom Menu m_ZoomMenu = this.Q <ToolbarMenu>("zoom-menu"); SetUpZoomMenu(); // Fit canvas m_FitCanvasButton = this.Q <ToolbarButton>(FitCanvasButtonName); m_FitCanvasButton.clickable.clicked += () => m_Viewport.FitCanvas(); // Preview Button var previewButton = this.Q <ToolbarToggle>(PreviewToggleName); previewButton.RegisterValueChangedCallback(TogglePreviewMode); m_Viewport.SetPreviewMode(false); m_CanvasThemeMenu = this.Q <ToolbarMenu>("canvas-theme-menu"); SetUpCanvasThemeMenu(); var currentTheme = document.currentCanvasTheme; var currentThemeSheet = document.currentCanvasThemeStyleSheet; // If the canvas theme is the obsolete Runtime enum then search for the unity default runtime theme in the current project. // Otherwise, fallback to the current editor theme if (currentTheme == BuilderDocument.CanvasTheme.Runtime) { var defaultTssAsset = EditorGUIUtility.Load(ThemeRegistry.kUnityRuntimeThemePath) as ThemeStyleSheet; if (defaultTssAsset != null) { currentTheme = BuilderDocument.CanvasTheme.Custom; currentThemeSheet = defaultTssAsset; } else { currentTheme = BuilderDocument.CanvasTheme.Default; } } ChangeCanvasTheme(currentTheme, currentThemeSheet); UpdateCanvasThemeMenuStatus(); SetViewportSubTitle(); // Track unsaved changes state change. UpdateHasUnsavedChanges(); m_SettingsMenu = this.Q <ToolbarMenu>("settings-menu"); SetupSettingsMenu(); // Breadcrumbs & BreadCrumbs Toolbar m_BreadcrumbsToolbar = this.Q <Toolbar>(BreadcrumbsToolbarName); m_Breadcrumbs = this.Q <ToolbarBreadcrumbs>(BreadcrumbsName); SetToolbarBreadCrumbs(); // Get Builder package version. var packageInfo = PackageInfo.FindForAssetPath("Packages/" + BuilderConstants.BuilderPackageName); if (packageInfo == null) { m_BuilderPackageVersion = null; } else { m_BuilderPackageVersion = packageInfo.version; } RegisterCallback <AttachToPanelEvent>(RegisterCallbacks); }
public BuilderToolbar( BuilderPaneWindow paneWindow, BuilderSelection selection, BuilderViewport viewport, BuilderExplorer explorer, BuilderLibrary library, BuilderInspector inspector, BuilderTooltipPreview tooltipPreview) { m_PaneWindow = paneWindow; m_Selection = selection; m_Viewport = viewport; m_Explorer = explorer; m_Library = library; m_Inspector = inspector; m_TooltipPreview = tooltipPreview; var template = BuilderPackageUtilities.LoadAssetAtPath <VisualTreeAsset>( BuilderConstants.UIBuilderPackagePath + "/BuilderToolbar.uxml"); template.CloneTree(this); m_ThemeManager = new ThemeStyleSheetManager(this); m_ThemeManager.selection = m_Selection; m_ThemeManager.themeFilesChanged += UpdateCanvasThemeMenuStatus; // File Menu m_FileMenu = this.Q <ToolbarMenu>("file-menu"); SetUpFileMenu(); // Zoom Menu m_ZoomMenu = this.Q <ToolbarMenu>("zoom-menu"); SetUpZoomMenu(); // Fit canvas m_FitCanvasButton = this.Q <ToolbarButton>(FitCanvasButtonName); m_FitCanvasButton.clickable.clicked += () => m_Viewport.FitCanvas(); // Preview Button var previewButton = this.Q <ToolbarToggle>(PreviewToggleName); previewButton.RegisterValueChangedCallback(TogglePreviewMode); m_Viewport.SetPreviewMode(false); m_CanvasThemeMenu = this.Q <ToolbarMenu>("canvas-theme-menu"); InitCanvasTheme(); SetViewportSubTitle(); // Track unsaved changes state change. UpdateHasUnsavedChanges(); m_SettingsMenu = this.Q <ToolbarMenu>("settings-menu"); SetupSettingsMenu(); // Breadcrumbs & BreadCrumbs Toolbar m_BreadcrumbsToolbar = this.Q <Toolbar>(BreadcrumbsToolbarName); m_Breadcrumbs = this.Q <ToolbarBreadcrumbs>(BreadcrumbsName); SetToolbarBreadCrumbs(); RegisterCallback <AttachToPanelEvent>(RegisterCallbacks); }