public BuilderNewSelectorField() { AddToClassList(s_UssClassName); styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(s_UssPath)); #if UNITY_2019_2 styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(s_UssPath2019_2)); if (EditorGUIUtility.isProSkin) { styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(s_UssPathDark2019_2)); } else { styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(s_UssPathLight2019_2)); } #endif var template = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(s_UxmlPath); template.CloneTree(this); m_TextField = this.Q <TextField>(s_TextFieldName); var popupContainer = this.Q(s_OptionsPopupContainerName); m_OptionsPopup = new ToolbarMenu(); m_OptionsPopup.AddToClassList(s_OptionsPopupUssClassName); popupContainer.Add(m_OptionsPopup); SetUpPseudoStatesMenu(); m_OptionsPopup.text = ":"; m_OptionsPopup.SetEnabled(false); m_TextField.RegisterValueChangedCallback <string>(OnTextFieldValueChange); }
protected ToolbarMenu CreateDropDownSettings(string ussClass) { var dropdownSettings = new ToolbarMenu() { name = "dropdownSettings", variant = ToolbarMenu.Variant.Popup }; Resources.Templates.DotsEditorCommon.AddStyles(dropdownSettings); dropdownSettings.AddToClassList(UssClasses.DotsEditorCommon.CommonResources); dropdownSettings.AddToClassList(ussClass); var arrow = dropdownSettings.Q(className: "unity-toolbar-menu__arrow"); arrow.style.backgroundImage = null; return(dropdownSettings); }
private VisualElement GetCreateShapeActionVisualElement() { ToolbarMenu shapeActionTypesList = new ToolbarMenu { text = "Add Action", style = { flexDirection = FlexDirection.Row } }; shapeActionTypesList.RemoveFromClassList("unity-toolbar-menu"); shapeActionTypesList.AddToClassList("unity-button"); shapeActionTypesList.AddToClassList("create"); foreach (ShapeActionFactory.ShapeActionType actionType in Enum .GetValues(typeof(ShapeActionFactory.ShapeActionType)) .Cast <ShapeActionFactory.ShapeActionType>()) { shapeActionTypesList.menu.AppendAction( actionType.ToString(), menuAction => AddShapeAction(actionType), DropdownMenuAction.AlwaysEnabled); } return(shapeActionTypesList); }
private VisualElement GetBottomVisualElement() { VisualElement visualElement = new VisualElement(); if (m_ShapeBlueprintFactory == null) { return(visualElement); } ToolbarMenu blueprintsList = new ToolbarMenu { text = "Create new Blueprint", style = { flexDirection = FlexDirection.Row } }; blueprintsList.RemoveFromClassList("unity-toolbar-menu"); blueprintsList.AddToClassList("unity-button"); blueprintsList.AddToClassList("create"); CreateDropdown(blueprintsList.menu); visualElement.Add(blueprintsList); return(visualElement); }
public ChoseShapeDataField(ShapeDataFactory shapeDataFactory, CanDependOnShapeBlueprint dependent, string fieldName, Func <TShapeData> getShapeDataFunc, Action <TShapeData> setShapeDataFunc) { m_DataFactory = shapeDataFactory; m_Dependent = dependent; m_FieldName = fieldName; m_GetShapeDataFunc = getShapeDataFunc; m_SetShapeDataFunc = setShapeDataFunc; VisualElement firstRow = new VisualElement { style = { flexDirection = FlexDirection.Row } }; firstRow.Add(m_Label = new Label()); m_ToolbarMenu = new ToolbarMenu { text = "Change", style = { flexDirection = FlexDirection.Row } }; m_ToolbarMenu.RemoveFromClassList("unity-toolbar-menu"); m_ToolbarMenu.AddToClassList("unity-button"); firstRow.Add(m_ToolbarMenu); Add(firstRow); IValidator pointNotEmptyValidator = new DataNotEmptyValidator <TShapeData>(getShapeDataFunc, action => m_UpdateValidatorAction = action); VisualElement validatorField = new ValidatorField(pointNotEmptyValidator); Add(validatorField); m_DataFactory.BecameDirty.Subscribe(BecameDirty); m_AutoSaveScheduler = schedule.Execute(Update); m_AutoSaveScheduler.Every(200); UpdateList(); UpdateName(); m_UpdateValidatorAction?.Invoke(); }
public BuilderNewSelectorField() { AddToClassList(s_UssClassName); styleSheets.Add(BuilderPackageUtilities.LoadAssetAtPath <StyleSheet>(s_UssPath)); var template = BuilderPackageUtilities.LoadAssetAtPath <VisualTreeAsset>(s_UxmlPath); template.CloneTree(this); m_TextField = this.Q <TextField>(s_TextFieldName); var popupContainer = this.Q(s_OptionsPopupContainerName); m_OptionsPopup = new ToolbarMenu(); m_OptionsPopup.AddToClassList(s_OptionsPopupUssClassName); popupContainer.Add(m_OptionsPopup); SetUpPseudoStatesMenu(); m_OptionsPopup.text = ":"; m_OptionsPopup.SetEnabled(false); m_TextField.RegisterValueChangedCallback <string>(OnTextFieldValueChange); }
private void CreateToolbar() { _graphButton = new TextElement { tooltip = "Select a graph to edit" }; _graphButton.AddToClassList(ToolbarButtonUssClassName); _graphButton.AddToClassList(ToolbarButtonLargeUssClassName); _graphButton.AddToClassList(ToolbarButtonFirstUssClassName); _graphButton.AddToClassList(ToolbarButtonGraphUssClassName); _graphButton.AddManipulator(new Clickable(() => ShowGraphPicker(GUIUtility.GUIToScreenPoint(_graphButton.worldBound.position)))); _editButton = CreateEditMenu(); _editButton.AddToClassList(ToolbarMenuUssClassName); _viewButton = CreateViewMenu(); _viewButton.AddToClassList(ToolbarMenuUssClassName); _playButton = new Image { image = _playIcon.Texture, tooltip = "Resume execution of the graph" }; _playButton.AddToClassList(ToolbarButtonUssClassName); _playButton.AddToClassList(ToolbarButtonSmallUssClassName); _playButton.AddManipulator(new Clickable(() => CurrentGraph.DebugPlay())); _pauseButton = new Image { image = _pauseIcon.Texture, tooltip = "Pause the execution of the graph" }; _pauseButton.AddToClassList(ToolbarButtonUssClassName); _pauseButton.AddToClassList(ToolbarButtonSmallUssClassName); _pauseButton.AddManipulator(new Clickable(() => CurrentGraph.DebugPause())); _stepButton = new Image { image = _stepIcon.Texture, tooltip = "Step forward one node in the graph" }; _stepButton.AddToClassList(ToolbarButtonUssClassName); _stepButton.AddToClassList(ToolbarButtonSmallUssClassName); _stepButton.AddManipulator(new Clickable(() => CurrentGraph.DebugStep())); _stopButton = new Image { image = _stopIcon.Texture, tooltip = "Stop executing the graph", tintColor = Color.gray }; _stopButton.AddToClassList(ToolbarButtonUssClassName); _stopButton.AddToClassList(ToolbarButtonSmallUssClassName); _stopButton.AddManipulator(new Clickable(() => CurrentGraph.DebugStop())); _breakButton = new VisualElement { tooltip = "Enable/Disable node breakpoints for all graphs" }; _breakButton.AddToClassList(ToolbarButtonUssClassName); _breakButton.AddToClassList(ToolbarButtonSmallUssClassName); _breakButton.AddToClassList(ToolbarButtonFirstUssClassName); _breakButton.AddManipulator(new Clickable(ToggleBreakpointsEnabled)); var breakButton = new VisualElement(); breakButton.AddToClassList(ToolbarButtonBreakpointUssClassName); _breakButton.Add(breakButton); _loggingButton = new Image { image = _logIcon.Texture, tooltip = "Enable/Disable logging of graph execution for all graphs" }; _loggingButton.AddToClassList(ToolbarButtonUssClassName); _loggingButton.AddToClassList(ToolbarButtonSmallUssClassName); _loggingButton.AddManipulator(new Clickable(ToggleLoggingEnabled)); _lockButton = new Image { tintColor = Color.black, tooltip = "Lock/Unlock this window so it won't be used when other graphs are opened" }; _lockButton.AddToClassList(ToolbarButtonUssClassName); _lockButton.AddToClassList(ToolbarButtonSmallUssClassName); _lockButton.AddToClassList(ToolbarButtonLockUssClassName); _lockButton.AddManipulator(new Clickable(ToggleLockingEnabled)); var watchButton = new Image { image = Icon.View.Texture, tooltip = "Open the Watch Window" }; watchButton.AddToClassList(ToolbarButtonUssClassName); watchButton.AddToClassList(ToolbarButtonSmallUssClassName); watchButton.AddManipulator(new Clickable(WatchWindow.ShowWindow)); RefreshToolbar(); var toolbar = new Toolbar(); toolbar.AddToClassList(ToolbarUssClassName); toolbar.Add(_graphButton); toolbar.Add(_editButton); toolbar.Add(_viewButton); toolbar.Add(_playButton); toolbar.Add(_pauseButton); toolbar.Add(_stepButton); toolbar.Add(_stopButton); toolbar.Add(new ToolbarSpacer { flex = true }); toolbar.Add(_breakButton); toolbar.Add(_loggingButton); toolbar.Add(watchButton); toolbar.Add(_lockButton); Add(toolbar); }