public override void CopyContent(TagField field) { if (field is ApeTagBinaryField) { this.content = (field as ApeTagBinaryField).Content; } }
void CancelPost(NSObject sender) { // Hides the keyboards and then returns back to SubmitPostViewController HiddenText.EndEditing(true); TagField.EndEditing(true); DismissViewController(true, null); }
public override void CopyContent(TagField field) { if (field is GenericId3Frame) { this.data = (field as GenericId3Frame).Data; } }
public override void CopyContent(TagField field) { if (field is TextId3Frame) { this.content = (field as TextId3Frame).Content; Encoding = (field as TextId3Frame).Encoding; } }
public override void CopyContent(TagField field) { base.CopyContent(field); if (field is CommId3Frame) { this.shortDesc = (field as CommId3Frame).ShortDescription; this.lang = (field as CommId3Frame).Langage; } }
/// <summary> /// Reads this field using the supplied guerilla binary reader. /// </summary> /// <param name="reader">The reader.</param> internal virtual void Read(GuerillaBinaryReader reader) { //Read field TagField field = reader.ReadTagField(); type = field.Type; definitionAddress = field.DefinitionAddress; groupTag = field.GroupTag; name = reader.ReadLocalizedString(field.NameAddress); }
public override void CopyContent(TagField field) { base.CopyContent(field); if (field is ApicId3Frame) { this.mime = (field as ApicId3Frame).MimeType; this.pictureType = (field as ApicId3Frame).PictureType; this.data = (field as ApicId3Frame).Data; } }
public fsnipTags(ObservableCollection <UserTag> options, TagField tf) { InitializeComponent(); refTags = tf; foreach (UserTag t in options) { searchBox.Items.Add(t.name); } //refTags.value.CollectionChanged += ContentCollectionChanged; }
public static bool GetValid(string tag) { TagField field = GetTagField(tag); if (field == null) { return(false); } else { return(field.valid); } }
public static void SetValid(string tag, bool valid) { TagField field = GetTagField(tag); if (field == null) { return; } else { field.valid = valid; } }
public static void SetColor(string tag, Color color) { TagField field = GetTagField(tag); if (field == null) { return; } else { field.color = color; } }
public static Color GetColor(string tag) { TagField field = GetTagField(tag); if (field == null) { return(Color.gray); } else { return(field.color); } }
private void InsertBlock() { //Create Block tagBlock = TagField.Create(); TagField.BlockList.Insert(selectedBlockIndex, tagBlock); BlockList.Insert(selectedBlockIndex, new TagBlockModel() { Owner = Owner, TagBlock = tagBlock }); //Notify Changes NotifyPropertyChanged(nameof(HasBlocks)); //Set SelectedBlockIndex = TagField.BlockList.IndexOf(tagBlock); NotifyValueChanged(); }
internal override void Apply(VisualElement container) { /// <sample> // Get a reference to the field from UXML and assign it its value. var uxmlField = container.Q <TagField>("the-uxml-field"); uxmlField.value = "Player"; // Create a new field, disable it, and give it a style class. var csharpField = new TagField("C# Field"); csharpField.SetEnabled(false); csharpField.AddToClassList("some-styled-field"); csharpField.value = uxmlField.value; container.Add(csharpField); // Mirror value of uxml field into the C# field. uxmlField.RegisterCallback <ChangeEvent <string> >((evt) => { csharpField.value = evt.newValue; }); /// </sample> }
public IReadOnlyCollection <Tag> GetTags(TagField field) => TagData.Get(field);
public override void CopyContent(TagField field) { base.CopyContent(field); if(field is ApicId3Frame) { this.mime = (field as ApicId3Frame).MimeType; this.pictureType = (field as ApicId3Frame).PictureType; this.data = (field as ApicId3Frame).Data; } }
void CreateUIElements() { var titleRow = new VisualElement() { style = { flexDirection = FlexDirection.Row, flexShrink = 0f, justifyContent = Justify.SpaceBetween } }; m_VisualElementContainer.Add(new Label("VisualElements Container")); var curveX = AnimationCurve.Linear(0, 0, 1, 0); var popupFieldValues = new List <SomeClass> { new SomeClass("First Class Value"), new SomeClass("Second Value"), new SomeClass("Another Value"), new SomeClass("Another Value with a very lonnnnnnnnnnnnnnnnnnnnnnnnng text to make sure this is really overflowing the popup field.") }; var maskFieldOptions = new List <string>(m_MaskFieldOptions); m_VisualElementContainer.Add(m_IntegerField = new IntegerField()); m_VisualElementContainer.Add(m_LongField = new LongField()); m_VisualElementContainer.Add(m_FloatField = new FloatField()); m_VisualElementContainer.Add(m_DoubleField = new DoubleField()); m_VisualElementContainer.Add(m_EnumField = new EnumField(EnumValues.Two)); m_VisualElementContainer.Add(m_TextField = new TextField()); m_VisualElementContainer.Add(m_PasswordField = new TextField() { isPasswordField = true, maskChar = '*' }); m_VisualElementContainer.Add(m_Vector3Field = new Vector3Field()); m_VisualElementContainer.Add(m_Vector3IntField = new Vector3IntField()); m_VisualElementContainer.Add(m_Vector2Field = new Vector2Field()); m_VisualElementContainer.Add(m_ColorField = new ColorField()); m_VisualElementContainer.Add(m_ObjectFieldCamera = new ObjectField() { objectType = typeof(Camera) }); m_VisualElementContainer.Add(m_ObjectFieldGameObject = new ObjectField() { objectType = typeof(GameObject) }); m_VisualElementContainer.Add(m_CurveField = new CurveField() { value = curveX }); m_VisualElementContainer.Add(m_CurveFieldMesh = new CurveField() { value = curveX, renderMode = CurveField.RenderMode.Mesh }); m_VisualElementContainer.Add(m_PopupField = new PopupField <SomeClass>(popupFieldValues, popupFieldValues[1])); m_VisualElementContainer.Add(m_RectField = new RectField()); m_VisualElementContainer.Add(m_BoundsField = new BoundsField()); m_VisualElementContainer.Add(m_ToggleField = new Toggle()); m_VisualElementContainer.Add(m_MaskField = new MaskField(maskFieldOptions, 6)); m_VisualElementContainer.Add(m_LayerField = new LayerField()); m_VisualElementContainer.Add(m_TagField = new TagField()); m_VisualElementContainer.Add(m_MinMaxSliderField = new MinMaxSlider(5, 10, 0, 125)); m_VisualElementContainer.Add(m_Slider = new Slider(2, 8)); m_VisualElementContainer.Add(m_SliderInt = new SliderInt(11, 23)); var buttonRow = new VisualElement() { style = { flexDirection = FlexDirection.Row, flexShrink = 0f, } }; buttonRow.Add(new Button() { text = k_ButtonLeftTitle, style = { flexGrow = 1 } }); buttonRow.Add(new Button() { text = k_ButtonRightTitle, style = { flexGrow = 1 } }); m_VisualElementContainer.Add(buttonRow); m_VisualElementContainer.Add(new Button() { text = k_ButtonTopTitle }); m_VisualElementContainer.Add(new Button() { text = k_ButtonBottomTitle }); m_VisualElementContainer.Add(m_ColorField1 = new ColorField()); m_VisualElementContainer.Add(m_LayerMaskField = new LayerMaskField(0)); m_VisualElementContainer.Add(m_MultiLineTextField = new TextField() { multiline = true }); m_VisualElementContainer.Add(m_SliderProgressBar = new SliderInt()); m_VisualElementContainer.Add(m_ProgressBar = new ProgressBar()); m_ProgressBar.title = nameof(ProgressBar); m_SliderProgressBar.lowValue = 0; m_SliderProgressBar.highValue = 100; m_SliderProgressBar.bindingPath = nameof(SliderProgressTestObject.exampleValue); m_ProgressBar.bindingPath = nameof(SliderProgressTestObject.exampleValue); m_SliderProgressBar.Bind(SliderProgressTestSO); m_ProgressBar.Bind(SliderProgressTestSO); // The progress bar by itself does not contain any margin in IMGUI... // In this example, we are artifically adding the textfield margin to it. (see below, in the IMGUI section, ProgressBar()) m_ProgressBar.style.marginBottom = 2f; m_VisualElementContainer.Add(m_GradientField = new GradientField()); RefreshUIElements(); }
static SettingsProvider UIElementSettingsProvider() { var provider = new SettingsProvider("Project/Hierarchy", SettingsScope.Project) { label = "Hierarchy", activateHandler = (searchContext, rootElement) => { var settings = GetAssets(); float TITLE_MARGIN_TOP = 14; float TITLE_MARGIN_BOTTOM = 8; float CONTENT_MARGIN_LEFT = 10; HorizontalLayout horizontalLayout = new HorizontalLayout(); horizontalLayout.style.backgroundColor = new Color(0, 0, 0, 0.2f); horizontalLayout.style.paddingTop = 4; horizontalLayout.style.paddingBottom = 10; rootElement.Add(horizontalLayout); Label hierarchyTitle = new Label("Hierarchy"); hierarchyTitle.StyleFontSize(20); hierarchyTitle.StyleMargin(10, 0, 2, 2); hierarchyTitle.StyleFont(FontStyle.Bold); horizontalLayout.Add(hierarchyTitle); Label importButton = new Label(); importButton.text = " Import"; importButton.style.unityFontStyleAndWeight = FontStyle.Italic; Color importExportButtonColor = new Color32(102, 157, 246, 255); importButton.style.color = importExportButtonColor; importButton.RegisterCallback <PointerUpEvent>(evt => instance.ImportFromJson()); horizontalLayout.Add(importButton); Label exportButton = new Label(); exportButton.text = "| Export"; exportButton.style.unityFontStyleAndWeight = FontStyle.Italic; exportButton.style.color = importExportButtonColor; exportButton.RegisterCallback <PointerUpEvent>(evt => instance.ExportToJson()); horizontalLayout.Add(exportButton); ScrollView scrollView = new ScrollView(); rootElement.Add(scrollView); VerticalLayout verticalLayout = new VerticalLayout(); verticalLayout.StylePadding(8, 8, 8, 8); scrollView.Add(verticalLayout); var Object = new Label("Object"); Object.StyleFont(FontStyle.Bold); Object.StyleMargin(0, 0, 0, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Object); var displayCustomObjectIcon = new Toggle("Display Custom Icon"); displayCustomObjectIcon.value = settings.displayCustomObjectIcon; displayCustomObjectIcon.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayCustomObjectIcon = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayCustomObjectIcon)); }); displayCustomObjectIcon.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayCustomObjectIcon); var View = new Label("View"); View.StyleFont(FontStyle.Bold); View.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(View); var displayRowBackground = new Toggle("Display RowBackground"); displayRowBackground.value = settings.displayRowBackground; displayRowBackground.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayRowBackground = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayRowBackground)); }); displayRowBackground.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayRowBackground); var displayTreeView = new Toggle("Display TreeView"); displayTreeView.value = settings.displayTreeView; displayTreeView.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayTreeView = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayTreeView)); }); displayTreeView.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayTreeView); var displayGrid = new Toggle("Display Grid"); displayGrid.value = settings.displayGrid; displayGrid.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayGrid = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayGrid)); }); displayGrid.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayGrid); var Components = new Label("Components"); Components.StyleFont(FontStyle.Bold); Components.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Components); var displayComponents = new Toggle("Display Components Icon"); displayComponents.value = settings.displayComponents; displayComponents.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayComponents = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayComponents)); }); displayComponents.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayComponents); var componentAlignment = new EnumField(settings.componentAlignment); componentAlignment.label = "Component Alignment"; componentAlignment.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.componentAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.componentAlignment)); }); componentAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentAlignment); var componentDisplayMode = new EnumField(settings.componentDisplayMode); componentDisplayMode.label = "Component Display Mode"; componentDisplayMode.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentDisplayMode); var componentListInput = new TextField("Components"); componentListInput.value = string.Join(" ", settings.components); componentListInput.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentListInput); componentListInput.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.components = evt.newValue.Split(' '); settings.OnSettingsChanged(nameof(settings.components)); }); componentDisplayMode.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.componentDisplayMode = (ComponentDisplayMode)evt.newValue; switch (settings.componentDisplayMode) { case ComponentDisplayMode.Specified: componentListInput.StyleDisplay(true); break; case ComponentDisplayMode.Ignore: componentListInput.StyleDisplay(true); break; case ComponentDisplayMode.All: componentListInput.StyleDisplay(false); break; case ComponentDisplayMode.ScriptOnly: componentListInput.StyleDisplay(false); break; } settings.OnSettingsChanged(nameof(settings.componentDisplayMode)); }); var componentSizeEnum = ComponentSize.Normal; switch (settings.componentSize) { case 12: componentSizeEnum = ComponentSize.Small; break; case 14: componentSizeEnum = ComponentSize.Normal; break; case 16: componentSizeEnum = ComponentSize.Large; break; } var componentSize = new EnumField(componentSizeEnum); componentSize.label = "Component Size"; componentSize.StyleMarginLeft(CONTENT_MARGIN_LEFT); componentSize.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); switch (evt.newValue) { case ComponentSize.Small: settings.componentSize = 12; break; case ComponentSize.Normal: settings.componentSize = 14; break; case ComponentSize.Large: settings.componentSize = 16; break; } settings.OnSettingsChanged(nameof(settings.componentSize)); }); verticalLayout.Add(componentSize); var componentSpacing = new IntegerField(); componentSpacing.label = "Component Spacing"; componentSpacing.value = settings.componentSpacing; componentSpacing.StyleMarginLeft(CONTENT_MARGIN_LEFT); componentSpacing.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.componentSpacing = evt.newValue; settings.OnSettingsChanged(nameof(settings.componentSpacing)); }); verticalLayout.Add(componentSpacing); var TagAndLayer = new Label("Tag And Layer"); TagAndLayer.StyleFont(FontStyle.Bold); TagAndLayer.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(TagAndLayer); var displayTag = new Toggle("Display Tag"); displayTag.value = settings.displayTag; displayTag.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayTag = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayTag)); }); displayTag.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayTag); var applyTagTargetAndChild = new Toggle("Tag Recursive Change"); applyTagTargetAndChild.value = settings.applyTagTargetAndChild; applyTagTargetAndChild.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.applyTagTargetAndChild = evt.newValue; settings.OnSettingsChanged(nameof(settings.applyTagTargetAndChild)); }); applyTagTargetAndChild.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(applyTagTargetAndChild); var tagAlignment = new EnumField(settings.tagAlignment); tagAlignment.label = "Tag Alignment"; tagAlignment.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.tagAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.tagAlignment)); }); tagAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(tagAlignment); var displayLayer = new Toggle("Display Layer"); displayLayer.value = settings.displayLayer; displayLayer.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.displayLayer = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayLayer)); }); displayLayer.style.marginTop = 8; displayLayer.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayLayer); var applyLayerTargetAndChild = new Toggle("Layer Recursive Change"); applyLayerTargetAndChild.value = settings.applyLayerTargetAndChild; applyLayerTargetAndChild.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.applyLayerTargetAndChild = evt.newValue; settings.OnSettingsChanged(nameof(settings.applyLayerTargetAndChild)); }); applyLayerTargetAndChild.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(applyLayerTargetAndChild); var layerAlignment = new EnumField(settings.layerAlignment); layerAlignment.label = "Layer Alignment"; layerAlignment.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.layerAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.layerAlignment)); }); layerAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(layerAlignment); var advanced = new Label("Advanced"); advanced.StyleFont(FontStyle.Bold); advanced.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(advanced); var separatorStartWith = new TextField(); separatorStartWith.label = "Separator StartWith"; separatorStartWith.StyleMarginLeft(CONTENT_MARGIN_LEFT); separatorStartWith.value = settings.separatorStartWith; separatorStartWith.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.separatorStartWith = evt.newValue == String.Empty ? "--->" : evt.newValue; settings.OnSettingsChanged(nameof(settings.separatorStartWith)); }); verticalLayout.Add(separatorStartWith); var headerDefaultTag = new TagField(); headerDefaultTag.label = "Separator Default Tag"; headerDefaultTag.value = settings.separatorDefaultTag; headerDefaultTag.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.separatorDefaultTag = evt.newValue; settings.OnSettingsChanged(nameof(settings.separatorDefaultTag)); }); headerDefaultTag.StyleMarginLeft(CONTENT_MARGIN_LEFT); headerDefaultTag.StyleMarginBottom(4); verticalLayout.Add(headerDefaultTag); IMGUIContainer instantBackgroundIMGUI = new IMGUIContainer(() => { EditorGUILayout.BeginHorizontal(); settings.useInstantBackground = EditorGUILayout.Toggle("Use Instant Background", settings.useInstantBackground); EditorGUILayout.BeginVertical("helpbox"); EditorGUILayout.PropertyField(new SerializedObject(settings).FindProperty(nameof(instantBackgroundColors)), GUIContent.none); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }); instantBackgroundIMGUI.StyleMarginTop(7); instantBackgroundIMGUI.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(instantBackgroundIMGUI); var onlyDisplayWhileMouseHovering = new Toggle("Display Hovering"); onlyDisplayWhileMouseHovering.tooltip = "Only display while mouse hovering"; onlyDisplayWhileMouseHovering.StyleMarginTop(7); onlyDisplayWhileMouseHovering.value = settings.onlyDisplayWhileMouseEnter; onlyDisplayWhileMouseHovering.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.onlyDisplayWhileMouseEnter = evt.newValue; settings.OnSettingsChanged(nameof(settings.onlyDisplayWhileMouseEnter)); }); onlyDisplayWhileMouseHovering.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(onlyDisplayWhileMouseHovering); var contentMaskEnumFlags = new EnumFlagsField(settings.contentDisplay); contentMaskEnumFlags.StyleDisplay(onlyDisplayWhileMouseHovering.value); contentMaskEnumFlags.label = "Content Mask"; onlyDisplayWhileMouseHovering.RegisterValueChangedCallback((evt) => { contentMaskEnumFlags.StyleDisplay(evt.newValue); }); contentMaskEnumFlags.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); settings.contentDisplay = (ContentDisplay)evt.newValue; settings.OnSettingsChanged(nameof(settings.contentDisplay)); }); contentMaskEnumFlags.style.marginLeft = CONTENT_MARGIN_LEFT; verticalLayout.Add(contentMaskEnumFlags); var Theme = new Label("Theme"); Theme.StyleFont(FontStyle.Bold); Theme.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Theme); if (EditorApplication.isPlayingOrWillChangePlaymode) { EditorHelpBox themeWarningPlaymode = new EditorHelpBox("This setting only available on edit mode.", MessageType.Info); verticalLayout.Add(themeWarningPlaymode); } else { EditorHelpBox selectionColorHelpBox = new EditorHelpBox( "Theme selection color require editor assembly recompile to take affect.\nBy selecting any script, right click -> Reimport. it will force the editor to recompile.", MessageType.Info); selectionColorHelpBox.StyleDisplay(false); verticalLayout.Add(selectionColorHelpBox); ColorField colorRowEven = new ColorField("Row Even"); colorRowEven.value = settings.usedTheme.colorRowEven; colorRowEven.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorRowEven.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorRowEven = evt.newValue; } else { settings.personalTheme.colorRowEven = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorRowEven); ColorField colorRowOdd = new ColorField("Row Odd"); colorRowOdd.value = settings.usedTheme.colorRowOdd; colorRowOdd.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorRowOdd.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorRowOdd = evt.newValue; } else { settings.personalTheme.colorRowOdd = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorRowOdd); ColorField colorGrid = new ColorField("Grid Color"); colorGrid.value = settings.usedTheme.colorGrid; colorGrid.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorGrid.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorGrid = evt.newValue; } else { settings.personalTheme.colorGrid = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorGrid); ColorField colorTreeView = new ColorField("TreeView"); colorTreeView.value = settings.usedTheme.colorTreeView; colorTreeView.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorTreeView.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorTreeView = evt.newValue; } else { settings.personalTheme.colorTreeView = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorTreeView); ColorField colorLockIcon = new ColorField("Lock Icon"); colorLockIcon.value = settings.usedTheme.colorLockIcon; colorLockIcon.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorLockIcon.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorLockIcon = evt.newValue; } else { settings.personalTheme.colorLockIcon = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorLockIcon); ColorField tagColor = new ColorField("Tag Text"); tagColor.value = settings.usedTheme.tagColor; tagColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); tagColor.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.tagColor = evt.newValue; } else { settings.personalTheme.tagColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(tagColor); ColorField layerColor = new ColorField("Layer Text"); layerColor.value = settings.usedTheme.layerColor; layerColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); layerColor.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.layerColor = evt.newValue; } else { settings.personalTheme.layerColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(layerColor); ColorField colorHeaderTitle = new ColorField("Header Title"); colorHeaderTitle.value = settings.usedTheme.colorHeaderTitle; colorHeaderTitle.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorHeaderTitle.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorHeaderTitle = evt.newValue; } else { settings.personalTheme.colorHeaderTitle = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorHeaderTitle); ColorField colorHeaderBackground = new ColorField("Header Background"); colorHeaderBackground.value = settings.usedTheme.colorHeaderBackground; colorHeaderBackground.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorHeaderBackground.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorHeaderBackground = evt.newValue; } else { settings.personalTheme.colorHeaderBackground = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorHeaderBackground); ColorField comSelBGColor = new ColorField("Component Selection"); comSelBGColor.value = settings.usedTheme.comSelBGColor; comSelBGColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); comSelBGColor.RegisterValueChangedCallback((evt) => { Undo.RecordObject(settings, "Change Settings"); if (EditorGUIUtility.isProSkin) { settings.professionalTheme.comSelBGColor = evt.newValue; } else { settings.personalTheme.comSelBGColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(comSelBGColor); } Undo.undoRedoPerformed -= OnUndoRedoPerformed; Undo.undoRedoPerformed += OnUndoRedoPerformed; }, deactivateHandler = () => Undo.undoRedoPerformed -= OnUndoRedoPerformed, keywords = new HashSet <string>(new[] { "Hierarchy" }) }; return(provider); }
public void CopyContent(TagField field) { if (field is TagTextField) this.content = (field as TagTextField).Content; }
public void OnEnable() { // Each editor window contains a root VisualElement object VisualElement root = rootVisualElement; root.style.backgroundColor = new Color(0.125f, 0.10f, 0.1126f); unlit = unlit ?? new ColorField("Unlit"); lit = lit ?? new ColorField("Lit"); hold = hold ?? new ColorField("Hold"); teintName = new TextField("Material Teint name (Hold)"); emissionName = new TextField("Material Emission name (Hover)"); hoverChange = hoverChange ?? new Toggle("Write Hover"); holdChange = holdChange ?? new Toggle("Write Hold"); addReshapeLogicChange = addReshapeLogicChange ?? new Toggle("Write Reshape Logic"); tagName = tagName ?? new TagField("Tag"); objectName = new TextField("Object name filter"); baseObject = new ObjectField("Basis Object: Pas op, niet voeren!"); baseObject.objectType = typeof(Transform); // A stylesheet can be added to a VisualElement. // The style will be applied to the VisualElement and all of its children. var styleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Scripts/Interactivity/Editor/Windows/AddHoverable.uss"); root.styleSheets.Add(styleSheet); // VisualElements objects can contain other VisualElement following a tree hierarchy. VisualElement label = new Label("Ыуат ряк, Select your colours."); button = new ToolbarButton(); var buttonRect = new Box(); button.Add(buttonRect); button.Add(new Label() { text = "GO" }); button.clickable.clicked += () => ExecuteFunctionality(); buttonRect.style.backgroundColor = new Color(0.14f, 0.13f, 0.12f, 0.95f); buttonRect.style.opacity = 0.25f; button.style.color = new Color(0.04f, 0.07f, 0.43f); root.Add(label); root.Add(unlit); root.Add(lit); root.Add(hold); root.Add(teintName); root.Add(emissionName); root.Add(hoverChange); root.Add(holdChange); root.Add(tagName); root.Add(objectName); root.Add(addReshapeLogicChange); root.Add(baseObject); root.Add(button); }
static SettingsProvider UIElementSettingsProvider() { var provider = new SettingsProvider("Project/Hierarchy", SettingsScope.Project) { label = "Hierarchy", activateHandler = (searchContext, rootElement) => { Editor editor = Editor.CreateEditor(GetAssets()); var settings = editor.target as HierarchySettings; float TITLE_MARGIN_TOP = 14; float TITLE_MARGIN_BOTTOM = 8; float CONTENT_MARGIN_LEFT = 10; Label hierarchyTitle = new Label("Hierarchy"); hierarchyTitle.StyleFontSize(20); hierarchyTitle.StyleMargin(10, 0, 2, 2); hierarchyTitle.StyleFont(FontStyle.Bold); rootElement.Add(hierarchyTitle); ScrollView scrollView = new ScrollView(); rootElement.Add(scrollView); VerticalLayout verticalLayout = new VerticalLayout(); verticalLayout.StylePadding(8, 8, 8, 8); scrollView.Add(verticalLayout); var Object = new Label("Object"); Object.StyleFont(FontStyle.Bold); Object.StyleMargin(0, 0, 0, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Object); var displayCustomObjectIcon = new Toggle("Display Custom Icon"); displayCustomObjectIcon.value = settings.displayCustomObjectIcon; displayCustomObjectIcon.RegisterValueChangedCallback((evt) => { settings.displayCustomObjectIcon = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayCustomObjectIcon)); }); displayCustomObjectIcon.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayCustomObjectIcon); var View = new Label("View"); View.StyleFont(FontStyle.Bold); View.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(View); var displayRowBackground = new Toggle("Display RowBackground"); displayRowBackground.value = settings.displayRowBackground; displayRowBackground.RegisterValueChangedCallback((evt) => { settings.displayRowBackground = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayRowBackground)); }); displayRowBackground.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayRowBackground); var displayTreeView = new Toggle("Display TreeView"); displayTreeView.value = settings.displayTreeView; displayTreeView.RegisterValueChangedCallback((evt) => { settings.displayTreeView = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayTreeView)); }); displayTreeView.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayTreeView); var displayGrid = new Toggle("Display Grid"); displayGrid.value = settings.displayGrid; displayGrid.RegisterValueChangedCallback((evt) => { settings.displayGrid = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayGrid)); }); displayGrid.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayGrid); var Components = new Label("Components"); Components.StyleFont(FontStyle.Bold); Components.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Components); var displayComponents = new Toggle("Display Components Icon"); displayComponents.value = settings.displayComponents; displayComponents.RegisterValueChangedCallback((evt) => { settings.displayComponents = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayComponents)); }); displayComponents.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayComponents); var componentAlignment = new EnumField(settings.componentAlignment); componentAlignment.label = "Component Alignment"; componentAlignment.RegisterValueChangedCallback((evt) => { settings.componentAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.componentAlignment)); }); componentAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentAlignment); var componentDisplayMode = new EnumField(settings.componentDisplayMode); componentDisplayMode.label = "Component Display Mode"; componentDisplayMode.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentDisplayMode); var componentListInput = new TextField("Components"); componentListInput.value = string.Join(" ", settings.components); componentListInput.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(componentListInput); componentListInput.RegisterValueChangedCallback((evt) => { settings.components = evt.newValue.Split(' '); settings.OnSettingsChanged(nameof(settings.components)); }); componentDisplayMode.RegisterValueChangedCallback((evt) => { settings.componentDisplayMode = (ComponentDisplayMode)evt.newValue; switch (settings.componentDisplayMode) { case ComponentDisplayMode.Below: componentListInput.StyleDisplay(true); break; case ComponentDisplayMode.Ignore: componentListInput.StyleDisplay(true); break; case ComponentDisplayMode.All: componentListInput.StyleDisplay(false); break; case ComponentDisplayMode.ScriptOnly: componentListInput.StyleDisplay(false); break; } settings.OnSettingsChanged(nameof(settings.componentDisplayMode)); }); var componentSizeEnum = ComponentSize.Normal; switch (settings.componentSize) { case 12: componentSizeEnum = ComponentSize.Small; break; case 14: componentSizeEnum = ComponentSize.Normal; break; case 16: componentSizeEnum = ComponentSize.Large; break; } var componentSize = new EnumField(componentSizeEnum); componentSize.label = "Component Size"; componentSize.StyleMarginLeft(CONTENT_MARGIN_LEFT); componentSize.RegisterValueChangedCallback((evt) => { switch (evt.newValue) { case ComponentSize.Small: settings.componentSize = 12; break; case ComponentSize.Normal: settings.componentSize = 14; break; case ComponentSize.Large: settings.componentSize = 16; break; } settings.OnSettingsChanged(nameof(settings.componentSize)); }); verticalLayout.Add(componentSize); var componentSpacing = new IntegerField(); componentSpacing.label = "Component Spacing"; componentSpacing.value = settings.componentSpacing; componentSpacing.StyleMarginLeft(CONTENT_MARGIN_LEFT); componentSpacing.RegisterValueChangedCallback((evt) => { settings.componentSpacing = evt.newValue; settings.OnSettingsChanged(nameof(settings.componentSpacing)); }); verticalLayout.Add(componentSpacing); var TagAndLayer = new Label("Tag And Layer"); TagAndLayer.StyleFont(FontStyle.Bold); TagAndLayer.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(TagAndLayer); var displayTag = new Toggle("Display Tag"); displayTag.value = settings.displayTag; displayTag.RegisterValueChangedCallback((evt) => { settings.displayTag = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayTag)); }); displayTag.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayTag); var applyTagTargetAndChild = new Toggle("Tag Recursive Change"); applyTagTargetAndChild.value = settings.applyTagTargetAndChild; applyTagTargetAndChild.RegisterValueChangedCallback((evt) => { settings.applyTagTargetAndChild = evt.newValue; settings.OnSettingsChanged(nameof(settings.applyTagTargetAndChild)); }); applyTagTargetAndChild.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(applyTagTargetAndChild); var tagAlignment = new EnumField(settings.tagAlignment); tagAlignment.label = "Tag Alignment"; tagAlignment.RegisterValueChangedCallback((evt) => { settings.tagAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.tagAlignment)); }); tagAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(tagAlignment); var displayLayer = new Toggle("Display Layer"); displayLayer.value = settings.displayLayer; displayLayer.RegisterValueChangedCallback((evt) => { settings.displayLayer = evt.newValue; settings.OnSettingsChanged(nameof(settings.displayLayer)); }); displayLayer.style.marginTop = 8; displayLayer.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(displayLayer); var applyLayerTargetAndChild = new Toggle("Layer Recursive Change"); applyLayerTargetAndChild.value = settings.applyLayerTargetAndChild; applyLayerTargetAndChild.RegisterValueChangedCallback((evt) => { settings.applyLayerTargetAndChild = evt.newValue; settings.OnSettingsChanged(nameof(settings.applyLayerTargetAndChild)); }); applyLayerTargetAndChild.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(applyLayerTargetAndChild); var layerAlignment = new EnumField(settings.layerAlignment); layerAlignment.label = "Layer Alignment"; layerAlignment.RegisterValueChangedCallback((evt) => { settings.layerAlignment = (ElementAlignment)evt.newValue; settings.OnSettingsChanged(nameof(settings.layerAlignment)); }); layerAlignment.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(layerAlignment); var advanced = new Label("Advanced"); advanced.StyleFont(FontStyle.Bold); advanced.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(advanced); var headerPrefix = new TextField(); headerPrefix.label = "Header Prefix"; headerPrefix.StyleMarginLeft(CONTENT_MARGIN_LEFT); headerPrefix.value = settings.headerPrefix; headerPrefix.RegisterValueChangedCallback((evt) => { settings.headerPrefix = evt.newValue == String.Empty ? "$h" : evt.newValue; settings.OnSettingsChanged(nameof(settings.headerPrefix)); }); verticalLayout.Add(headerPrefix); var headerDefaultTag = new TagField(); headerDefaultTag.label = "Header Default Tag"; headerDefaultTag.value = settings.headerDefaultTag; headerDefaultTag.RegisterValueChangedCallback((evt) => { settings.headerDefaultTag = evt.newValue; settings.OnSettingsChanged(nameof(settings.headerDefaultTag)); }); headerDefaultTag.StyleMarginLeft(CONTENT_MARGIN_LEFT); headerDefaultTag.StyleMarginBottom(4); verticalLayout.Add(headerDefaultTag); var onlyDisplayWhileMouseHovering = new Toggle("Display Hovering"); onlyDisplayWhileMouseHovering.tooltip = "Only display while mouse hovering"; onlyDisplayWhileMouseHovering.value = settings.onlyDisplayWhileMouseEnter; onlyDisplayWhileMouseHovering.RegisterValueChangedCallback((evt) => { settings.onlyDisplayWhileMouseEnter = evt.newValue; settings.OnSettingsChanged(nameof(settings.onlyDisplayWhileMouseEnter)); }); onlyDisplayWhileMouseHovering.StyleMarginLeft(CONTENT_MARGIN_LEFT); verticalLayout.Add(onlyDisplayWhileMouseHovering); var contentMaskEnumFlags = new EnumFlagsField(settings.contentDisplay); contentMaskEnumFlags.StyleDisplay(onlyDisplayWhileMouseHovering.value); contentMaskEnumFlags.label = "Content Mask"; onlyDisplayWhileMouseHovering.RegisterValueChangedCallback((evt) => { contentMaskEnumFlags.StyleDisplay(evt.newValue); }); contentMaskEnumFlags.RegisterValueChangedCallback((evt) => { settings.contentDisplay = (ContentDisplay)evt.newValue; settings.OnSettingsChanged(nameof(settings.contentDisplay)); }); contentMaskEnumFlags.style.marginLeft = CONTENT_MARGIN_LEFT; verticalLayout.Add(contentMaskEnumFlags); var Theme = new Label("Theme"); Theme.StyleFont(FontStyle.Bold); Theme.StyleMargin(0, 0, TITLE_MARGIN_TOP, TITLE_MARGIN_BOTTOM); verticalLayout.Add(Theme); if (EditorApplication.isPlayingOrWillChangePlaymode) { EditorHelpBox themeWarningPlaymode = new EditorHelpBox("This setting only available on edit mode.", MessageType.Info); verticalLayout.Add(themeWarningPlaymode); } else { EditorHelpBox selectionColorHelpBox = new EditorHelpBox( "Theme selection color require editor assembly recompile to take affect.\nBy selecting any script, right click -> Reimport. it will force the editor to recompile.", MessageType.Info); selectionColorHelpBox.StyleDisplay(false); verticalLayout.Add(selectionColorHelpBox); ColorField colorRowEven = new ColorField("Row Even"); colorRowEven.value = settings.usedTheme.colorRowEven; colorRowEven.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorRowEven.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorRowEven = evt.newValue; } else { settings.personalTheme.colorRowEven = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorRowEven); ColorField colorRowOdd = new ColorField("Row Odd"); colorRowOdd.value = settings.usedTheme.colorRowOdd; colorRowOdd.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorRowOdd.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorRowOdd = evt.newValue; } else { settings.personalTheme.colorRowOdd = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorRowOdd); ColorField colorGrid = new ColorField("Grid Color"); colorGrid.value = settings.usedTheme.colorGrid; colorGrid.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorGrid.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorGrid = evt.newValue; } else { settings.personalTheme.colorGrid = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorGrid); ColorField colorTreeView = new ColorField("TreeView"); colorTreeView.value = settings.usedTheme.colorTreeView; colorTreeView.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorTreeView.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorTreeView = evt.newValue; } else { settings.personalTheme.colorTreeView = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorTreeView); ColorField colorLockIcon = new ColorField("Lock Icon"); colorLockIcon.value = settings.usedTheme.colorLockIcon; colorLockIcon.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorLockIcon.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorLockIcon = evt.newValue; } else { settings.personalTheme.colorLockIcon = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorLockIcon); ColorField tagColor = new ColorField("Tag Text"); tagColor.value = settings.usedTheme.tagColor; tagColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); tagColor.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.tagColor = evt.newValue; } else { settings.personalTheme.tagColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(tagColor); ColorField layerColor = new ColorField("Layer Text"); layerColor.value = settings.usedTheme.layerColor; layerColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); layerColor.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.layerColor = evt.newValue; } else { settings.personalTheme.layerColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(layerColor); ColorField colorHeaderTitle = new ColorField("Header Title"); colorHeaderTitle.value = settings.usedTheme.colorHeaderTitle; colorHeaderTitle.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorHeaderTitle.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorHeaderTitle = evt.newValue; } else { settings.personalTheme.colorHeaderTitle = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorHeaderTitle); ColorField colorHeaderBackground = new ColorField("Header Background"); colorHeaderBackground.value = settings.usedTheme.colorHeaderBackground; colorHeaderBackground.StyleMarginLeft(CONTENT_MARGIN_LEFT); colorHeaderBackground.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.colorHeaderBackground = evt.newValue; } else { settings.personalTheme.colorHeaderBackground = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(colorHeaderBackground); ColorField comSelBGColor = new ColorField("Component Selection"); comSelBGColor.value = settings.usedTheme.comSelBGColor; comSelBGColor.StyleMarginLeft(CONTENT_MARGIN_LEFT); comSelBGColor.RegisterValueChangedCallback((evt) => { if (EditorGUIUtility.isProSkin) { settings.professionalTheme.comSelBGColor = evt.newValue; } else { settings.personalTheme.comSelBGColor = evt.newValue; } settings.OnSettingsChanged(); }); verticalLayout.Add(comSelBGColor); } }, keywords = new HashSet <string>(new[] { "Hierarchy" }) }; return(provider); }
public override void CopyContent(TagField field) { base.CopyContent(field); if(field is CommId3Frame) { this.shortDesc = (field as CommId3Frame).ShortDescription; this.lang = (field as CommId3Frame).Langage; } }
public abstract void CopyContent(TagField field);
public IReadOnlyCollection <Tag> GetTags(TagField field) => throw new NotImplementedException();
public override void CopyContent(TagField field) { if(field is TextId3Frame) { this.content = (field as TextId3Frame).Content; Encoding = (field as TextId3Frame).Encoding; } }
BuilderStyleRow CreateAttributeRow(UxmlAttributeDescription attribute) { var attributeType = attribute.GetType(); // Generate field label. var fieldLabel = BuilderNameUtilities.ConvertDashToHuman(attribute.name); BindableElement fieldElement; if (attribute is UxmlStringAttributeDescription) { // Hard-coded if (attribute.name.Equals("value") && currentVisualElement is EnumField enumField) { var uiField = new EnumField("Value"); if (null != enumField.value) { uiField.Init(enumField.value, enumField.includeObsoleteValues); } else { uiField.SetValueWithoutNotify(null); } uiField.RegisterValueChangedCallback(evt => PostAttributeValueChange(uiField, uiField.value.ToString())); fieldElement = uiField; } else if (attribute.name.Equals("value") && currentVisualElement is TagField tagField) { var uiField = new TagField("Value"); uiField.RegisterValueChangedCallback(evt => PostAttributeValueChange(uiField, uiField.value.ToString())); fieldElement = uiField; } else { var uiField = new TextField(fieldLabel); if (attribute.name.Equals("name") || attribute.name.Equals("view-data-key")) { uiField.RegisterValueChangedCallback(e => { OnValidatedAttributeValueChange(e, BuilderNameUtilities.attributeRegex, BuilderConstants.AttributeValidationSpacialCharacters); }); } else if (attribute.name.Equals("binding-path")) { uiField.RegisterValueChangedCallback(e => { OnValidatedAttributeValueChange(e, BuilderNameUtilities.bindingPathAttributeRegex, BuilderConstants.BindingPathAttributeValidationSpacialCharacters); }); } else { uiField.RegisterValueChangedCallback(OnAttributeValueChange); } if (attribute.name.Equals("text") || attribute.name.Equals("label")) { uiField.multiline = true; uiField.AddToClassList(BuilderConstants.InspectorMultiLineTextFieldClassName); } fieldElement = uiField; } } else if (attribute is UxmlFloatAttributeDescription) { var uiField = new FloatField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attribute is UxmlDoubleAttributeDescription) { var uiField = new DoubleField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attribute is UxmlIntAttributeDescription) { if (attribute.name.Equals("value") && currentVisualElement is LayerField) { var uiField = new LayerField("Value"); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attribute.name.Equals("value") && currentVisualElement is LayerMaskField) { var uiField = new LayerMaskField("Value"); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else { var uiField = new IntegerField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } } else if (attribute is UxmlLongAttributeDescription) { var uiField = new LongField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attribute is UxmlBoolAttributeDescription) { var uiField = new Toggle(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attribute is UxmlColorAttributeDescription) { var uiField = new ColorField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else if (attributeType.IsGenericType && !attributeType.GetGenericArguments()[0].IsEnum && attributeType.GetGenericArguments()[0] is Type) { var desiredType = attributeType.GetGenericArguments()[0]; var uiField = new TextField(fieldLabel) { isDelayed = true }; var completer = new FieldSearchCompleter <TypeInfo>(uiField); uiField.RegisterCallback <AttachToPanelEvent, FieldSearchCompleter <TypeInfo> >((evt, c) => { // When possible, the popup should have the same width as the input field, so that the auto-complete // characters will try to match said input field. c.popup.anchoredControl = ((VisualElement)evt.target).Q(className: "unity-text-field__input"); }, completer); completer.matcherCallback += (str, info) => info.value.IndexOf(str, StringComparison.OrdinalIgnoreCase) >= 0; completer.itemHeight = 36; completer.dataSourceCallback += () => { return(TypeCache.GetTypesDerivedFrom(desiredType) .Where(t => !t.IsGenericType) // Remove UIBuilder types from the list .Where(t => t.Assembly != GetType().Assembly) .Select(GetTypeInfo)); }; completer.getTextFromDataCallback += info => info.value; completer.makeItem = () => s_TypeNameItemPool.Get(); completer.destroyItem = e => { if (e is BuilderAttributeTypeName typeItem) { s_TypeNameItemPool.Release(typeItem); } }; completer.bindItem = (v, i) => { if (v is BuilderAttributeTypeName l) { l.SetType(completer.results[i].type, completer.textField.text); } }; uiField.RegisterValueChangedCallback(e => OnValidatedTypeAttributeChange(e, desiredType)); fieldElement = uiField; uiField.RegisterCallback <DetachFromPanelEvent, FieldSearchCompleter <TypeInfo> >((evt, c) => { c.popup.RemoveFromHierarchy(); }, completer); uiField.userData = completer; } else if (attributeType.IsGenericType && attributeType.GetGenericArguments()[0].IsEnum) { var propInfo = attributeType.GetProperty("defaultValue"); var defaultEnumValue = propInfo.GetValue(attribute, null) as Enum; if (defaultEnumValue.GetType().GetCustomAttribute <FlagsAttribute>() == null) { // Create and initialize the EnumField. var uiField = new EnumField(fieldLabel); uiField.Init(defaultEnumValue); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } else { // Create and initialize the EnumField. var uiField = new EnumFlagsField(fieldLabel); uiField.Init(defaultEnumValue); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } } else { var uiField = new TextField(fieldLabel); uiField.RegisterValueChangedCallback(OnAttributeValueChange); fieldElement = uiField; } // Create row. var styleRow = new BuilderStyleRow(); styleRow.Add(fieldElement); // Link the field. fieldElement.SetProperty(BuilderConstants.InspectorLinkedStyleRowVEPropertyName, styleRow); fieldElement.SetProperty(BuilderConstants.InspectorLinkedAttributeDescriptionVEPropertyName, attribute); // Set initial value. RefreshAttributeField(fieldElement); // Setup field binding path. fieldElement.bindingPath = attribute.name; fieldElement.tooltip = attribute.name; // Context menu. fieldElement.AddManipulator(new ContextualMenuManipulator(BuildAttributeFieldContextualMenu)); return(styleRow); }
public override void CopyContent(TagField field) { if(field is ApeTagBinaryField) { this.content = (field as ApeTagBinaryField).Content; } }
public static IReadOnlyCollection <Tag> Get(TagField field) => field switch {
public override void CopyContent(TagField field) { if(field is GenericId3Frame) this.data = (field as GenericId3Frame).Data; }
void PublishPost(NSObject sender) { // Prevents multiple posting, locks as soon as a post is made PostButton.Enabled = false; UIActivityIndicatorView indicator = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.Gray); indicator.StartAnimating(); PostButton.CustomView = indicator; // Hides the keyboards and dispatches a UI update to show the upload progress HiddenText.EndEditing(true); TagField.EndEditing(true); ProgressBar.Hidden = false; // Creates post record type and initizalizes all of its values CKRecord newRecord = new CKRecord(Post.RecordType); newRecord [Post.FontKey] = (NSString)ImageLabel.Font.Name; newRecord [Post.ImageRefKey] = new CKReference(ImageRecord.Record.Id, CKReferenceAction.DeleteSelf); newRecord [Post.TextKey] = (NSString)HiddenText.Text; string[] tags = TagField.Text.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); newRecord [Post.TagsKey] = NSArray.FromObjects(tags); Post newPost = new Post(newRecord); newPost.ImageRecord = ImageRecord; // Only upload image record if it is not on server, otherwise just upload the new post record CKRecord[] recordsToSave = ImageRecord.IsOnServer ? new CKRecord[] { newRecord } : new CKRecord[] { newRecord, ImageRecord.Record }; // TODO: https://trello.com/c/A9T8Spyp second param is null CKModifyRecordsOperation saveOp = new CKModifyRecordsOperation(recordsToSave, new CKRecordID[0]); saveOp.PerRecordProgress = (CKRecord record, double progress) => { // Image record type is probably going to take the longest to upload. Reflect it's progress in the progress bar if (record.RecordType == Image.RecordType) { InvokeOnMainThread(() => { var val = (float)(progress * 0.95); ProgressBar.SetProgress(val, true); }); } }; // When completed it notifies the tableView to add the post we just uploaded, displays error if it didn't work saveOp.Completed = (CKRecord[] savedRecords, CKRecordID[] deletedRecordIDs, NSError operationError) => { Error errorResponse = HandleError(operationError); switch (errorResponse) { case Error.Success: // Tells delegate to update so it can display our new post InvokeOnMainThread(() => { DismissViewController(true, null); MainController.Submit(newPost); }); break; case Error.Retry: CKErrorInfo errorInfo = new CKErrorInfo(operationError.UserInfo); nint retryAfter = errorInfo.RetryAfter.HasValue ? errorInfo.RetryAfter.Value : 3; Console.WriteLine("Error: {0}. Recoverable, retry after {1} seconds", operationError.Description, retryAfter); Task.Delay((int)retryAfter * 1000).ContinueWith(_ => PublishPost(sender)); break; case Error.Ignore: Console.WriteLine("Error saving record: {0}", operationError.Description); string errorTitle = "Error"; string dismissButton = "Okay"; string errorMessage = operationError.Code == (long)CKErrorCode.NotAuthenticated ? "You must be logged in to iCloud in order to post" : "Unrecoverable error with the upload, check console logs"; InvokeOnMainThread(() => { UIAlertController alert = UIAlertController.Create(errorTitle, errorMessage, UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create(dismissButton, UIAlertActionStyle.Cancel, null)); PostButton.Enabled = true; PresentViewController(alert, true, null); ProgressBar.Hidden = true; PostButton.CustomView = null; }); break; default: throw new NotImplementedException(); } }; CKContainer.DefaultContainer.PublicCloudDatabase.AddOperation(saveOp); }
public IfpTagBlock(IfpNode ifpNode) { int size; if (ifpNode.HeaderSize > ifpNode.TagBlockSize) { size = ifpNode.HeaderSize; } else { size = ifpNode.TagBlockSize; } AnalyzeFieldSet(ifpNode.Nodes, size); int offset = 0, previousOffset = 0; if (ifpNode.Alignment > 0) { alignment = ifpNode.Alignment; } bool skipId = false; foreach (var node in ifpNode.Nodes) { Field field = null; if (node.FieldOffset >= offset) { offset = node.FieldOffset; } else if (node.FieldOffset > 0) { continue; } if (node.Type == IfpNodeType.Tag) { int nodeIndex = ifpNode.Nodes.IndexOf(node); if (ifpNode.Nodes.Count > nodeIndex && ifpNode.Nodes[nodeIndex + 1].Type == IfpNodeType.TagId) { skipId = true; continue; } } else if (node.Type == IfpNodeType.TagId && skipId) { skipId = false; field = new TagReferenceField(node.Name); } else { switch (node.Type) { case IfpNodeType.TagBlock: field = new IfpBlockField(node); break; case IfpNodeType.UnusedArray: field = new PadField(node.Name, node.Length); break; case IfpNodeType.Byte: case IfpNodeType.SignedByte: field = new CharIntegerField(node.Name); break; case IfpNodeType.Short: case IfpNodeType.UnsignedShort: field = new ShortIntegerField(node.Name); break; case IfpNodeType.Int: case IfpNodeType.UnsignedInt: field = new LongIntegerField(node.Name); break; case IfpNodeType.Single: field = new RealField(node.Name); break; case IfpNodeType.Enumerator8: field = new CharEnumField(node.Name); break; case IfpNodeType.Enumerator16: field = new EnumField(node.Name); break; case IfpNodeType.Enumerator32: field = new LongEnumField(node.Name); break; case IfpNodeType.Bitfield8: field = new ByteFlagsField(node.Name); break; case IfpNodeType.Bitfield16: field = new WordFlagsField(node.Name); break; case IfpNodeType.Bitfield32: field = new LongFlagsField(node.Name); break; case IfpNodeType.String32: field = new StringField(node.Name); break; case IfpNodeType.String64: break; case IfpNodeType.Unicode128: break; case IfpNodeType.Unicode256: break; case IfpNodeType.Tag: field = new TagField(node.Name); break; case IfpNodeType.TagId: field = new TagIndexField(node.Name); break; case IfpNodeType.StringId: field = new StringIdField(node.Name); break; } } if (field != null) { if (node.Type == IfpNodeType.Enumerator8 || node.Type == IfpNodeType.Enumerator16 || node.Type == IfpNodeType.Enumerator32 || node.Type == IfpNodeType.Bitfield8 || node.Type == IfpNodeType.Bitfield16 || node.Type == IfpNodeType.Bitfield32) { var optionField = (OptionField)field; foreach (var optionNode in node.Nodes) { optionField.Options.Add(new Option(optionNode.Name, optionNode.Value)); } } if (previousOffset <= offset) { int length = offset - previousOffset; if (length > 0) { Fields.Add(new PadField("ifp padding", length)); } offset += field.Size; previousOffset = offset; Fields.Add(field); } } } if (offset < size) { Fields.Add(new PadField("ifp padding", size - offset)); } if (!string.IsNullOrEmpty(ifpNode.Label)) { var labelFields = Fields.Where(f => f.Name.Equals(ifpNode.Label, StringComparison.OrdinalIgnoreCase)); foreach (var labelField in labelFields) { this.labelFields.Add(labelField); } } }