Exemplo n.º 1
0
 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");
 }
Exemplo n.º 2
0
 public static void TrimItems(this ToolbarBreadcrumbs breadcrumbs, int countToKeep)
 {
     while (breadcrumbs.childCount > countToKeep)
     {
         breadcrumbs.PopItem();
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
 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");
         }
     }
 }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 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");
 }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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);
        }