/// <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); }
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); } }
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)); }
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); }
/// <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); }
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; } }
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); // 添加模拟节点 // 模拟节点所有的世界状态 }
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(); }
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"); }
/// <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); }
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); }
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"); }
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); }
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); } }
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(); }