示例#1
0
        /// <summary> 初始化ToolbarButton </summary>
        void InitializeToolbarButtons()
        {
            ToolbarButton btnCenter = new ToolbarButton()
            {
                text = "Center"
            };

            btnCenter.clicked += () =>
            {
                ResetPositionAndZoom();
                UpdateViewTransform(Model.Position, Model.Scale);
            };
            GraphWindow.Toolbar.AddButtonToLeft(btnCenter);

            ToolbarButton btnSave = new ToolbarButton()
            {
                text  = "Save",
                style = { width = 60 }
            };

            btnSave.clicked += () => SaveGraphToDisk();
            GraphWindow.Toolbar.AddButtonToRight(btnSave);

            ToolbarToggle toggleBlackboard = new ToolbarToggle()
            {
                text  = "Blackboard",
                value = Model.BlackboardVisible
            };

            toggleBlackboard.RegisterValueChangedCallback(e =>
            {
                Model.BlackboardVisible = e.newValue;
            });
            GraphWindow.Toolbar.AddToggleToLeft(toggleBlackboard, 100);
        }
示例#2
0
 public VisualElement GenerateTerminal(object target)
 {
     if (info is MethodInfo methodInfo)
     {
         return(new ToolbarButton(methodInfo.CreateDelegate(typeof(Action), target) as Action)
         {
             name = attribute.Name,
             text = attribute.DisplayName,
         });
     }
     else if (info is FieldInfo fieldInfo)
     {
         var toggle = new ToolbarToggle
         {
             name     = attribute.Name,
             text     = attribute.DisplayName,
             userData = Tuple.Create(target, fieldInfo)
         };
         toggle.RegisterValueChangedCallback((evt) =>
         {
             var info = (evt.target as VisualElement).userData as Tuple <object, FieldInfo>;
             info.Item2.SetValue(info.Item1, evt.newValue);
         });
         return(toggle);
     }
     else
     {
         return(null);
     }
 }
示例#3
0
 void CreateTracingMenu()
 {
     m_EnableTracingButton         = this.MandatoryQ <ToolbarToggle>("enableTracingButton");
     m_EnableTracingButton.tooltip = "Toggle Tracing For Current Instance";
     m_EnableTracingButton.SetValueWithoutNotify(m_Store.GetState().EditorDataModel.TracingEnabled);
     m_EnableTracingButton.RegisterValueChangedCallback(e => OnToggleTracing?.Invoke(e));
 }
示例#4
0
        private void InitPreviewToolbar()
        {
            #region Scale
            m_ScaleSlider           = m_RootElement.Q <SliderInt>("scale-slider");
            m_ScaleSlider.lowValue  = kScaleMin;
            m_ScaleSlider.highValue = kScaleMax;
            m_ScaleSlider.value     = m_Scale;
            m_ScaleSlider.RegisterCallback <ChangeEvent <int> >(SetScale);

            m_ScaleValueLabel      = m_RootElement.Q <Label>("scale-value-label");
            m_ScaleValueLabel.text = m_Scale.ToString();

            m_FitToScreenToggle = m_RootElement.Q <ToolbarToggle>("fit-to-screen");
            m_FitToScreenToggle.RegisterValueChangedCallback(FitToScreen);
            m_FitToScreenToggle.SetValueWithoutNotify(m_FitToScreenEnabled);
            #endregion

            #region Rotate
            var          namePostfix = EditorGUIUtility.isProSkin ? "_dark" : "_light";
            const string iconPath    = "packages/com.unity.device-simulator/Editor/icons";

            m_RootElement.Q <Image>("rotate-cw-image").image = AssetDatabase.LoadAssetAtPath <Texture2D>($"{iconPath}/rotate_cw{namePostfix}.png");
            m_RootElement.Q <VisualElement>("rotate-cw").AddManipulator(new Clickable(RotateDeviceCW));

            m_RootElement.Q <Image>("rotate-ccw-image").image = AssetDatabase.LoadAssetAtPath <Texture2D>($"{iconPath}/rotate_ccw{namePostfix}.png");
            m_RootElement.Q <VisualElement>("rotate-ccw").AddManipulator(new Clickable(RotateDeviceCCW));
            #endregion

            // Highlight safe area.
            var highlightSafeAreaToggle = m_RootElement.Q <Toggle>("highlight-safe-area");
            highlightSafeAreaToggle.RegisterValueChangedCallback((evt) => { m_HighlightSafeArea = evt.newValue; OnStateChanged(); });
            highlightSafeAreaToggle.SetValueWithoutNotify(m_HighlightSafeArea);
        }
示例#5
0
        /// <summary>
        /// Creates and populates a UIElements.Toolbar
        /// </summary>
        /// <returns>Returns the UIElements.Toolbar with controls.</returns>
        private Toolbar GenerateToolbar()
        {
            // Create the toolbar and load the stylesheet.
            Toolbar toolbar = new Toolbar();

            toolbar.styleSheets.Add(Resources.Load <StyleSheet>("Toolbar"));

            // Button to save the asset
            toolbar.Add(new ToolbarButton(() => { dialogueGraphDataUtility.SaveGraph(dialogueContainer); })
            {
                text = "Save Asset"
            });

            // Flexible spacer.
            toolbar.Add(new ToolbarSpacer()
            {
                flex = true
            });

            // Button to toggle the mini map visibility.
            ToolbarToggle toggleMiniMap = new ToolbarToggle {
                text = "Toggle MiniMap"
            };

            toggleMiniMap.RegisterValueChangedCallback(evt => { _miniMapEnabled = evt.newValue; });
            toolbar.Add(toggleMiniMap);

            return(toolbar);
        }
示例#6
0
        private void AddStoryItem(StoryDataBase story)
        {
            var storyToggle = new ToolbarToggle()
            {
                text  = story.name,
                style =
                {
                    width          =                      60,
                    height         =                      60,
                    marginLeft     =                       5,
                    marginTop      =                       5,
                    marginRight    =                       5,
                    marginBottom   =                       5,
                    unityTextAlign = TextAnchor.MiddleCenter,
                }
            };

            storyToggle.RegisterValueChangedCallback((e) =>
            {
                OnStoryToggleValueChange(story, e);
            });
            m_scrollView.Add(storyToggle);

            if (m_selectedId.Contains(story.id))
            {
                storyToggle.value = true;
            }
        }
示例#7
0
        protected override void OnInitialized()
        {
            base.OnInitialized();

            UpdateLabel();
            Add(new IMGUIContainer(UpdateLabel));

            MiniMap miniMap = new MiniMap();

            miniMap.SetPosition(new Rect(10, 10, 200, 200));
            Add(miniMap);

            miniMap.MarkDirtyRepaint();

            ToolbarToggle tglMiniMap = new ToolbarToggle()
            {
                text = "MiniMap"
            };

            tglMiniMap.RegisterValueChangedCallback(e =>
            {
                miniMap.visible = e.newValue;
            });
            tglMiniMap.value = true;
            GraphWindow.Toolbar.AddToggleToLeft(tglMiniMap, 80);


            // 添加模拟节点

            // 模拟节点所有的世界状态
        }
示例#8
0
        public void OnEnable()
        {
            var root = this.rootVisualElement;

            Toolbar t = new Toolbar();

            root.Add(t);

            ToolbarToggle tg = new ToolbarToggle()
            {
                text = "tg1"
            };

            t.Add(tg);
            tg = new ToolbarToggle()
            {
                text = "tg2"
            };
            t.Add(tg);
            tg.RegisterValueChangedCallback(toggleChanged);
            tg.RegisterCallback <ChangeEvent <bool> >(toggleListener);

            m_ObjectNameBinding             = new TextField("Width");
            m_ObjectNameBinding.bindingPath = "m_SizeDelta.x";
            root.Add(m_ObjectNameBinding);
            m_ObjectNameBinding             = new TextField("Object Name Binding");
            m_ObjectNameBinding.bindingPath = "m_Name";
            root.Add(m_ObjectNameBinding);
            OnSelectionChange();
        }
示例#9
0
        void AddToolbar()
        {
            var toolbar = new Toolbar();

            rootVisualElement.Add(toolbar);

            var tgl1 = new ToolbarToggle {
                text = "Show Labels"
            };

            tgl1.RegisterValueChangedCallback(OnToggleValueChanged);
            toolbar.Add(tgl1);
            tgl1.style.flexGrow    = 0f;
            m_ToggleFieldWithLabel = tgl1;

            var spc = new ToolbarSpacer();

            toolbar.Add(spc);

            var tgl = new ToolbarToggle {
                text = "Use ScrollView"
            };

            tgl.style.flexGrow       = 0f;
            m_ScrollViewToggle       = tgl;
            m_ScrollViewToggle.value = m_UseScrollViewConstruct;
            m_ScrollViewToggle.RegisterValueChangedCallback(evt => UpdateScrollViewUsage());
            toolbar.Add(tgl);
        }
        public StylePropertyDebugger(VisualElement debuggerSelection)
        {
            selectedElement = debuggerSelection;

            m_Toolbar = new Toolbar();
            Add(m_Toolbar);

            var searchField = new ToolbarSearchField();

            searchField.AddToClassList("unity-style-debugger-search");
            searchField.RegisterValueChangedCallback(e =>
            {
                m_SearchFilter = e.newValue;
                BuildFields();
            });
            m_Toolbar.Add(searchField);

            var showAllToggle = new ToolbarToggle();

            showAllToggle.AddToClassList("unity-style-debugger-toggle");
            showAllToggle.text = "Show all";
            showAllToggle.RegisterValueChangedCallback(e =>
            {
                m_ShowAll = e.newValue;
                BuildFields();
            });
            m_Toolbar.Add(showAllToggle);

            var sortToggle = new ToolbarToggle();

            sortToggle.AddToClassList("unity-style-debugger-toggle");
            sortToggle.text = "Sort";
            sortToggle.RegisterValueChangedCallback(e =>
            {
                m_Sort = e.newValue;
                BuildFields();
            });
            m_Toolbar.Add(sortToggle);

            m_CustomPropertyFieldsContainer = new VisualElement();
            Add(m_CustomPropertyFieldsContainer);

            m_FieldsContainer = new VisualElement();
            Add(m_FieldsContainer);

            if (selectedElement != null)
            {
                BuildFields();
            }

            AddToClassList("unity-style-debugger");
        }
示例#11
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);
        }
示例#12
0
        void CreateTracingMenu()
        {
            m_EnableTracingButton         = this.MandatoryQ <ToolbarToggle>("enableTracingButton");
            m_EnableTracingButton.tooltip = "Toggle Tracing For Current Instance";
            m_EnableTracingButton.SetValueWithoutNotify(m_Store.GetState().EditorDataModel.TracingEnabled);
            m_EnableTracingButton.RegisterValueChangedCallback(e => OnToggleTracing?.Invoke(e));

            m_PickTargetButton         = this.Q <Button>("pickTargetButton");
            m_PickTargetButton.tooltip = "Pick a target";
            m_PickTargetButton.clickable.clickedWithEventInfo += OnPickTargetButton;
            m_PickTargetLabel         = m_PickTargetButton.Q <Label>("pickTargetLabel");
            m_PickTargetLabel.tooltip = "Choose an entity trace to display";
            m_PickTargetIcon          = m_PickTargetButton.Q(null, "icon");

            m_FirstFrameTracingButton                    = this.Q <Button>("firstFrameTracingButton");
            m_FirstFrameTracingButton.tooltip            = "Go To First Frame";
            m_FirstFrameTracingButton.clickable.clicked += OnFirstFrameTracingButton;

            m_PreviousFrameTracingButton                    = this.Q <Button>("previousFrameTracingButton");
            m_PreviousFrameTracingButton.tooltip            = "Go To Previous Frame";
            m_PreviousFrameTracingButton.clickable.clicked += OnPreviousFrameTracingButton;

            m_PreviousStepTracingButton                    = this.Q <Button>("previousStepTracingButton");
            m_PreviousStepTracingButton.tooltip            = "Go To Previous Step";
            m_PreviousStepTracingButton.clickable.clicked += OnPreviousStepTracingButton;

            m_NextStepTracingButton                    = this.Q <Button>("nextStepTracingButton");
            m_NextStepTracingButton.tooltip            = "Go To Next Step";
            m_NextStepTracingButton.clickable.clicked += OnNextStepTracingButton;

            m_NextFrameTracingButton                    = this.Q <Button>("nextFrameTracingButton");
            m_NextFrameTracingButton.tooltip            = "Go To Next Frame";
            m_NextFrameTracingButton.clickable.clicked += OnNextFrameTracingButton;

            m_LastFrameTracingButton                    = this.Q <Button>("lastFrameTracingButton");
            m_LastFrameTracingButton.tooltip            = "Go To Last Frame";
            m_LastFrameTracingButton.clickable.clicked += OnLastFrameTracingButton;

            m_CurrentFrameTextField = this.Q <IntegerField>("currentFrameTextField");
            m_CurrentFrameTextField.AddToClassList("frameCounterLabel");
            m_CurrentFrameTextField.RegisterCallback <KeyDownEvent>(OnFrameCounterKeyDown);
            m_TotalFrameLabel = this.Q <Label>("totalFrameLabel");
            m_TotalFrameLabel.AddToClassList("frameCounterLabel");
        }
        void LoadTemplate()
        {
            UIElementsUtils.CloneTemplateInto("PlayControls.uxml", this);
            UIElementsUtils.ApplyStyleSheet("PlayControl.uss", this);
            AddToClassList("playControl");

            var gotoBeginButton = this.Q <Button>("firstFrame");

            gotoBeginButton.clickable.clicked += OnFirstFrameClicked;
            var previousFrameButton = this.Q <Button>("previousFrame");

            previousFrameButton.clickable.clicked += OnStepBackClicked;
            m_PlayToggle = this.Q <ToolbarToggle>("play");
            m_PlayToggle.RegisterValueChangedCallback(evt => OnPlayClicked(evt.newValue));
            var nextFrameButton = this.Q <Button>("nextFrame");

            nextFrameButton.clickable.clicked += OnStepForwardClicked;
            var gotoEndButton = this.Q <Button>("lastFrame");

            gotoEndButton.clickable.clicked += OnLastFrameClicked;
        }
        public ScrewItHeatMapView()
        {
            Root = new VisualElement {
                style = { flexGrow = 1 }
            };

            m_ThreadSelection      = new ToolbarMenu();
            m_ThreadSelection.text = "Select Thread";
            m_ToolbarItems.Add(m_ThreadSelection);

            m_FilterKernelCode = new ToolbarToggle
            {
                text    = "Reattribute Kernel Samples",
                tooltip = "When active, all samples that are not from unity.exe or from a managed module will be attributed to the first function up the callstack that is from unity.exe or managed."
            };
            m_FilterKernelCode.RegisterValueChangedCallback(_ => RefreshHeatMap());
            m_ToolbarItems.Add(m_FilterKernelCode);

            m_ExportCsvButton = new ToolbarButton
            {
                text  = "Export CSV",
                style = { unityTextAlign = TextAnchor.MiddleLeft },
            };
            m_ExportCsvButton.SetEnabled(false);
            m_ExportCsvButton.clicked += ExportCsvButton;
            m_ToolbarItems.Add(m_ExportCsvButton);

            m_ColumnHeader = new MultiColumnHeader(CreateHeaderState())
            {
                canSort = false
            };
            m_HeatMapTreeView = new HeatMapTreeView(new TreeViewState(), m_ColumnHeader);
            var treeContainer = new IMGUIContainer {
                style = { flexGrow = 1 }
            };

            treeContainer.onGUIHandler = () => m_HeatMapTreeView.OnGUI(treeContainer.contentRect);
            m_ColumnHeader.ResizeToFit();
            Root.Add(treeContainer);
        }
示例#15
0
        void CreateTracingMenu()
        {
            m_EnableTracingButton         = this.MandatoryQ <ToolbarToggle>("enableTracingButton");
            m_EnableTracingButton.tooltip = "Toggle Tracing For Current Instance";
            if (OnToggleTracing != null)
            {
                m_EnableTracingButton.RegisterValueChangedCallback(OnToggleTracing.Invoke);
            }

            m_FirstFrameTracingButton         = this.Q("firstFrameTracingButton");
            m_FirstFrameTracingButton.tooltip = "Go To First Frame";
            m_FirstFrameTracingButton.AddManipulator(new Clickable(OnFirstFrameTracingButton));

            m_PreviousFrameTracingButton         = this.Q("previousFrameTracingButton");
            m_PreviousFrameTracingButton.tooltip = "Go To Previous Frame";
            m_PreviousFrameTracingButton.AddManipulator(new Clickable(OnPreviousFrameTracingButton));

            m_PreviousStepTracingButton         = this.Q("previousStepTracingButton");
            m_PreviousStepTracingButton.tooltip = "Go To Previous Step";
            m_PreviousStepTracingButton.AddManipulator(new Clickable(OnPreviousStepTracingButton));

            m_NextStepTracingButton         = this.Q("nextStepTracingButton");
            m_NextStepTracingButton.tooltip = "Go To Next Step";
            m_NextStepTracingButton.AddManipulator(new Clickable(OnNextStepTracingButton));

            m_NextFrameTracingButton         = this.Q("nextFrameTracingButton");
            m_NextFrameTracingButton.tooltip = "Go To Next Frame";
            m_NextFrameTracingButton.AddManipulator(new Clickable(OnNextFrameTracingButton));

            m_LastFrameTracingButton         = this.Q("lastFrameTracingButton");
            m_LastFrameTracingButton.tooltip = "Go To Last Frame";
            m_LastFrameTracingButton.AddManipulator(new Clickable(OnLastFrameTracingButton));

            m_CurrentFrameTextField = this.Q <TextField>("currentFrameTextField");
            m_CurrentFrameTextField.AddToClassList("frameCounterLabel");
            m_CurrentFrameTextField.RegisterCallback <InputEvent>(OnFrameCounterInput);
            m_CurrentFrameTextField.RegisterCallback <KeyDownEvent>(OnFrameCounterKeyDown);
            m_TotalFrameLabel = this.Q <Label>("totalFrameLabel");
            m_TotalFrameLabel.AddToClassList("frameCounterLabel");
        }
示例#16
0
        void LoadTemplate()
        {
            rootVisualElement.Clear();

            UIElementsUtils.ApplyStyleSheet(k_Stylesheet, rootVisualElement);
            UIElementsUtils.ApplyStyleSheet(Timeline.k_Stylesheet, rootVisualElement);
            UIElementsUtils.ApplyStyleSheet(k_ToolbarStyle, rootVisualElement);

            UIElementsUtils.CloneTemplateInto(k_MainLayout, rootVisualElement);

            VisualElement outerElement = rootVisualElement.Q <VisualElement>("kinematica");

            m_Toolbar = outerElement.Q <VisualElement>("toolbar");

            m_MainLayout = outerElement.Q <VisualElement>("windowContent");

            // Input for Build
            {
                m_MainInputLayout      = outerElement.Q <VisualElement>("inputLayout");
                m_ClipAndSettingsInput = m_MainLayout.Q <VisualElement>("inputArea");

                m_GutterToggleMenu = m_MainLayout.Q <VisualElement>("gutterToggleMenu");
                var selectorClick = new Clickable(OnGutterMenuClicked);
                m_GutterToggleMenu.AddManipulator(selectorClick);

                m_GutterLabels = m_MainLayout.Q <VisualElement>("gutterList");

                //Profile and Asset creation
                {
                    m_AssetCreateLayout = m_MainLayout.Q <VisualElement>(classes: "createLayout");

                    var createButton = m_AssetCreateLayout.Q <Button>("createButton");
                    createButton.clickable.clicked += CreateButtonClicked;
                    createButton.text = "Create";
                }

                m_EditAssetButton = rootVisualElement.Q <Button>("editAssetButton");
                m_EditAssetButton.clickable.clicked += EditAsset;

                m_AssetDirtyWarning = rootVisualElement.Q <VisualElement>("assetDirtyWarning");

                m_ProgressBar = rootVisualElement.Q <ProgressBar>("progressBar");
                HideProgressBar();

                m_BuildButton = rootVisualElement.Q <Button>("buildButton");
                m_BuildButton.clickable.clicked += BuildAsset;

                m_CancelBuildButton = rootVisualElement.Q <Button>("cancelBuildButton");
                m_CancelBuildButton.clickable.clicked += CancelBuildAsset;
                DisplayCancelBuildButton(false);

                var assetSelector = m_Toolbar.Q <ObjectField>("asset");
                assetSelector.objectType = typeof(Asset);
                assetSelector.RegisterValueChangedCallback(OnAssetSelectionChanged);

                m_AnimationLibraryListView               = m_ClipAndSettingsInput.Q <AnimationClipListView>("animationLibrary");
                m_AnimationLibraryListView.m_Window      = this;
                m_AnimationLibraryListView.selectionType = SelectionType.Multiple;
                m_AnimationLibraryListView.makeItem      = MakeAnimationItem;
                m_AnimationLibraryListView.bindItem      = BindAnimationItem;
                m_AnimationLibraryListView.itemHeight    = 18;
                UIElementsUtils.ApplyStyleSheet(k_AnimationLibraryStyle, m_ClipAndSettingsInput.Q <VisualElement>("clipsArea"));

                m_Timeline = rootVisualElement.Q <Timeline>("timeline");
                m_Timeline.PreviewTargetChanged    += OnTimelinePreviewTargetChanged;
                m_Timeline.GutterTrackAdded        += OnGutterTrackCreated;
                m_Timeline.ForceGutterTrackDisplay += ForceGutterTrackDisplay;
                m_Timeline.LoadTemplate(rootVisualElement);
                m_AnimationLibraryListView.onSelectionChanged += OnLibrarySelectionChanged;

                m_PreviewToggle = rootVisualElement.Q <ToolbarToggle>("previewToggle");
                m_PreviewToggle.SetValueWithoutNotify(m_Timeline.PreviewEnabled);
                m_PreviewToggle.RegisterValueChangedCallback(evt => m_Timeline.PreviewEnabled = evt.newValue);
                m_Timeline.PreviewEnabledChangeEvent += enabled => m_PreviewToggle.SetValueWithoutNotify(enabled);
            }

            SetToolbarEnable(false);
        }
示例#17
0
        public new void OnEnable()
        {
            base.OnEnable();

            DebuggerEventDispatchingStrategy.s_GlobalPanelDebug = this;

            m_DebuggerSelection = new DebuggerSelection();
            m_RepaintOverlay    = new RepaintOverlayPainter();
            m_PickOverlay       = new HighlightOverlayPainter();
            m_LayoutOverlay     = new LayoutOverlayPainter();

            var root  = this.rootVisualElement;
            var sheet = EditorGUIUtility.Load(k_DefaultStyleSheetPath) as StyleSheet;

            root.styleSheets.Add(sheet);

            StyleSheet colorSheet;

            if (EditorGUIUtility.isProSkin)
            {
                colorSheet = EditorGUIUtility.Load(k_DefaultDarkStyleSheetPath) as StyleSheet;
            }
            else
            {
                colorSheet = EditorGUIUtility.Load(k_DefaultLightStyleSheetPath) as StyleSheet;
            }

            root.styleSheets.Add(colorSheet);
            root.Add(m_Toolbar);

            m_PickToggle = new ToolbarToggle()
            {
                name = "pickToggle"
            };
            m_PickToggle.text = "Pick Element";
            m_PickToggle.RegisterValueChangedCallback((e) =>
            {
                m_PickElement = e.newValue;
                // On OSX, as focus-follow-mouse is not supported,
                // we explicitly focus the EditorWindow when enabling picking
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    Panel p = m_DebuggerSelection.panel as Panel;
                    if (p != null)
                    {
                        TryFocusCorrespondingWindow(p);
                    }
                }
            });

            m_Toolbar.Add(m_PickToggle);

            m_ShowLayoutToggle = new ToolbarToggle()
            {
                name = "layoutToggle"
            };
            m_ShowLayoutToggle.SetValueWithoutNotify(m_ShowLayoutBound);
            m_ShowLayoutToggle.text = "Show Layout";
            m_ShowLayoutToggle.RegisterValueChangedCallback((e) =>
            {
                m_ShowLayoutBound = e.newValue;
                panelDebug?.MarkDirtyRepaint();
                panelDebug?.MarkDebugContainerDirtyRepaint();
            });

            m_Toolbar.Add(m_ShowLayoutToggle);

            if (Unsupported.IsDeveloperBuild())
            {
                m_RepaintOverlayToggle = new ToolbarToggle()
                {
                    name = "repaintOverlayToggle"
                };
                m_RepaintOverlayToggle.text = "Repaint Overlay";
                m_RepaintOverlayToggle.RegisterValueChangedCallback((e) => m_ShowRepaintOverlay = e.newValue);
                m_Toolbar.Add(m_RepaintOverlayToggle);

                m_UXMLLiveReloadToggle = new ToolbarToggle()
                {
                    name = "UXMLReloadToggle"
                };
                m_UXMLLiveReloadToggle.SetValueWithoutNotify(RetainedMode.UxmlLiveReloadIsEnabled);
                m_UXMLLiveReloadToggle.text = "UXML Live Reload";
                m_UXMLLiveReloadToggle.RegisterValueChangedCallback((e) => RetainedMode.UxmlLiveReloadIsEnabled = e.newValue);
                m_Toolbar.Add(m_UXMLLiveReloadToggle);

                m_ShowDrawStatsToggle = new ToolbarToggle()
                {
                    name = "drawStatsToggle"
                };
                m_ShowDrawStatsToggle.text = "Draw Stats";
                m_ShowDrawStatsToggle.RegisterValueChangedCallback((e) =>
                {
                    var updater = (panel as BaseVisualElementPanel)?.GetUpdater(VisualTreeUpdatePhase.Repaint) as UIRRepaintUpdater;
                    if (updater != null)
                    {
                        updater.DebugGetRenderChain().drawStats = e.newValue;
                    }
                    panelDebug?.MarkDirtyRepaint();
                });
                m_Toolbar.Add(m_ShowDrawStatsToggle);
            }

            var splitter = new DebuggerSplitter();

            root.Add(splitter);

            m_TreeViewContainer = new DebuggerTreeView(m_DebuggerSelection, SelectElement);
            m_TreeViewContainer.style.flexGrow = 1f;
            splitter.leftPane.Add(m_TreeViewContainer);

            m_StylesDebuggerContainer = new StylesDebugger(m_DebuggerSelection);
            splitter.rightPane.Add(m_StylesDebuggerContainer);
        }
        void OnEnable()
        {
            titleContent     = new GUIContent("Screw It! Profiler");
            m_HeatMapView    = new ScrewItHeatMapView();
            m_Overview       = new ScrewItOverview();
            m_TopDownView    = new ScrewItTopDownView();
            m_HotSubtreeView = new ScrewItHotSubtreeView();

            rootVisualElement.style.flexDirection = FlexDirection.Column;
            m_Views = new List <IScrewItView> {
                m_Overview, m_HeatMapView, m_TopDownView, m_HotSubtreeView
            };

            {
                m_Toolbar = new Toolbar {
                    style = { height = EditorGUIUtility.singleLineHeight }
                };
                m_RecordingToggle = new ToolbarToggle {
                    text = "Start Recording"
                };
                m_RecordingToggle.RegisterValueChangedCallback(OnRecordingToggled);
                m_Toolbar.Add(m_RecordingToggle);

                var loadButton = new ToolbarButton {
                    style = { unityTextAlign = TextAnchor.MiddleLeft }
                };
                loadButton.clicked += ShowLoadTraceFileDialog;
                loadButton.text     = "Load Trace";
                m_Toolbar.Add(loadButton);

                m_Toolbar.Add(new ToolbarSpacer {
                    style = { flexGrow = 1 }
                });

                m_ViewSelection = new ToolbarMenu
                {
                    variant = ToolbarMenu.Variant.Popup,
                    text    = "Select view"
                };
                foreach (var view in m_Views)
                {
                    var thisView = view;
                    m_ViewSelection.menu.AppendAction(view.Name, action =>
                    {
                        SetActiveView(thisView);
                    });
                }
                m_ViewSelection.SetEnabled(false);

                m_Toolbar.Add(m_ViewSelection);

                rootVisualElement.Add(m_Toolbar);
            }

            {
                // setup center
                m_CenterElement = new VisualElement {
                    style = { flexGrow = 1 }
                };;
                rootVisualElement.Add(m_CenterElement);
            }

            {
                // setup footer
                var footer = new VisualElement
                {
                    style =
                    {
                        height        =                20,
                        flexDirection = FlexDirection.Row,
                        flexGrow      = 0
                    }
                };
                rootVisualElement.Add(footer);
            }
        }
示例#19
0
        public void Initialize(EditorWindow debuggerWindow, VisualElement root, DebuggerContext context)
        {
            base.Initialize(debuggerWindow);

            m_Root    = root;
            m_Context = context;
            m_Context.onStateChange += OnContextChange;

            var sheet = EditorGUIUtility.Load(k_DefaultStyleSheetPath) as StyleSheet;

            m_Root.styleSheets.Add(sheet);

            StyleSheet colorSheet;

            if (EditorGUIUtility.isProSkin)
            {
                colorSheet = EditorGUIUtility.Load(k_DefaultDarkStyleSheetPath) as StyleSheet;
            }
            else
            {
                colorSheet = EditorGUIUtility.Load(k_DefaultLightStyleSheetPath) as StyleSheet;
            }

            m_Root.styleSheets.Add(colorSheet);

            m_Root.Add(m_Toolbar);

            m_PickToggle = new ToolbarToggle()
            {
                name = "pickToggle"
            };
            m_PickToggle.text = "Pick Element";
            m_PickToggle.RegisterValueChangedCallback((e) =>
            {
                m_Context.pickElement = e.newValue;
                // On OSX, as focus-follow-mouse is not supported,
                // we explicitly focus the EditorWindow when enabling picking
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    Panel p = m_Context.selection.panel as Panel;
                    if (p != null)
                    {
                        TryFocusCorrespondingWindow(p.ownerObject);
                    }
                }
            });

            m_Toolbar.Add(m_PickToggle);

            m_ShowLayoutToggle = new ToolbarToggle()
            {
                name = "layoutToggle"
            };
            m_ShowLayoutToggle.text = "Show Layout";
            m_ShowLayoutToggle.RegisterValueChangedCallback((e) => { m_Context.showLayoutBound = e.newValue; });

            m_Toolbar.Add(m_ShowLayoutToggle);

            if (Unsupported.IsDeveloperBuild())
            {
                m_RepaintOverlayToggle = new ToolbarToggle()
                {
                    name = "repaintOverlayToggle"
                };
                m_RepaintOverlayToggle.text = "Repaint Overlay";
                m_RepaintOverlayToggle.RegisterValueChangedCallback((e) => m_Context.showRepaintOverlay = e.newValue);
                m_Toolbar.Add(m_RepaintOverlayToggle);

                m_ShowDrawStatsToggle = new ToolbarToggle()
                {
                    name = "drawStatsToggle"
                };
                m_ShowDrawStatsToggle.text = "Draw Stats";
                m_ShowDrawStatsToggle.RegisterValueChangedCallback((e) => { m_Context.showDrawStats = e.newValue; });
                m_Toolbar.Add(m_ShowDrawStatsToggle);
            }

            var splitter = new DebuggerSplitter();

            m_Root.Add(splitter);

            m_TreeViewContainer = new DebuggerTreeView(m_Context.selection, SelectElement);
            m_TreeViewContainer.style.flexGrow = 1f;
            splitter.leftPane.Add(m_TreeViewContainer);

            m_StylesDebuggerContainer = new StylesDebugger(m_Context.selection);
            splitter.rightPane.Add(m_StylesDebuggerContainer);

            DebuggerEventDispatchingStrategy.s_GlobalPanelDebug = this;

            m_RepaintOverlay = new RepaintOverlayPainter();
            m_PickOverlay    = new HighlightOverlayPainter();
            m_LayoutOverlay  = new LayoutOverlayPainter();

            OnContextChange();
        }