예제 #1
0
        protected override void BuildPartUI(VisualElement container)
        {
            if (!(m_Model is BakeNodeModel))
            {
                return;
            }

            TemperatureAndTimeContainer = new VisualElement {
                name = PartName
            };
            TemperatureAndTimeContainer.AddToClassList(ussClassName);
            TemperatureAndTimeContainer.AddToClassList(m_ParentClassName.WithUssElement(PartName));

            TemperatureLabel = new EditableLabel {
                name = temperatureLabelName
            };
            TemperatureLabel.RegisterCallback <ChangeEvent <string> >(OnChangeTemperature);
            TemperatureLabel.AddToClassList(ussClassName.WithUssElement("temperature"));
            TemperatureLabel.AddToClassList(m_ParentClassName.WithUssElement("temperature"));
            TemperatureAndTimeContainer.Add(TemperatureLabel);

            DurationLabel = new EditableLabel {
                name = durationLabelName
            };
            DurationLabel.RegisterCallback <ChangeEvent <string> >(OnChangeTime);
            DurationLabel.AddToClassList(ussClassName.WithUssElement("temperature"));
            DurationLabel.AddToClassList(m_ParentClassName.WithUssElement("temperature"));
            TemperatureAndTimeContainer.Add(DurationLabel);

            container.Add(TemperatureAndTimeContainer);
        }
예제 #2
0
        public void BuildFsmVariableList(bool keepSelection = true)
        {
            if (this.target == null)
            {
                return;
            }
            string name = "";

            if (this.selectedFsmVariable != null)
            {
                name = this.selectedFsmVariable.Name;
            }
            this.fsmVariables = SkillVariable.GetFsmVariableList(this.owner);
            this.SortVariableList();
            this.listIsDirty = false;
            this.categoryLabels.Clear();
            while (this.categoryLabels.get_Count() < this.target.get_Categories().Length)
            {
                string        text          = this.target.get_Categories()[this.categoryLabels.get_Count()];
                EditableLabel editableLabel = new EditableLabel(this.window, text)
                {
                    ID           = this.categoryLabels.get_Count(),
                    EditCommited = new EditableLabel.EditCommitedCallback(this.CommitCategoryEdit),
                    ContextClick = new EditableLabel.ContextClickCallback(this.DoCategoryContextMenu),
                    Style        = EditorStyles.get_boldLabel()
                };
                this.categoryLabels.Add(editableLabel);
            }
            if (keepSelection && this.categoryTextField != null)
            {
                this.SelectVariable(name);
            }
            this.BuildFilteredList();
        }
예제 #3
0
        private void dgCellsLabel_Click(object sender, EventArgs e)
        {
            if (!(sender is Label lbl))
            {
                return;
            }
            MouseEventArgs?ev = e as MouseEventArgs;

            using EditableLabel editor = new EditableLabel
                  {
                      Location = lbl.PointToScreen(new Point(ev.X + 13, ev.Y + 5)),
                      Text     = lbl.Text
                  };

            if (editor.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            lbl.Text = editor.Text;
            if (!float.TryParse(lbl.Text, out float dummy))
            {
                return;
            }
            TempAttribMods
            .Modifier[listBoxTables.SelectedIndex]
            .Table[Convert.ToInt32(lbl.Name.Substring(6), null)][cbArchetype.SelectedIndex] =
                (float)Convert.ToDecimal(lbl.Text, null);
        }
        public IEnumerator EscapeCancelsEditing()
        {
            var editableLabel = new EditableLabel();

            editableLabel.SetValueWithoutNotify("My Text");
            string newValue = null;

            editableLabel.RegisterCallback <ChangeEvent <string> >(e => newValue = e.newValue);
            m_Window.rootVisualElement.Add(editableLabel);
            // Compute layout
            yield return(null);

            var label     = editableLabel.SafeQ(EditableLabel.labelName);
            var textField = editableLabel.SafeQ(EditableLabel.textFieldName);
            var center    = label.parent.LocalToWorld(label.layout.center);

            // Activate text field
            EventHelper.Click(center, clickCount: 2);

            // Type some text
            EventHelper.Type(k_SomeText);

            // Type Escape
            EventHelper.KeyPressed(KeyCode.Escape);

            Assert.IsNull(newValue);
            Assert.AreEqual(DisplayStyle.Flex, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.None, textField.resolvedStyle.display);
        }
예제 #5
0
        public TextBox()
        {
            Padding = "10px";

            _text = new EditableLabel();
            _text.ClipArea.OutlineThickness = -2;

            _textView = new Component()
            {
                AutosizeY = true,
                Expand    = true,
                Overflow  = OverflowType.Scroll,
                Children  = new List <Component>()
                {
                    _text
                }
            };

            Children = new List <Component>()
            {
                _textView
            };

            AutosizeY = true;
            Overflow  = OverflowType.Hidden;

            UpdateValue();

            Style             = "textbox_off_default";
            OverwriteChildren = false;
        }
예제 #6
0
        private void LoadLbl(EditableLabel label, int limit)
        {
            label.canChange = new Func <bool>(() => { return(!TimerMain.Enabled); });

            label.correct = new Func <string, string, string>((string x, string y) =>
            {
                if (x == "")
                {
                    return(x);
                }

                if (!int.TryParse(y, out int i))
                {
                    return(x);
                }

                if (i < 0)
                {
                    return("00");
                }
                if (i > limit)
                {
                    return(limit.ToString());
                }

                return(y);
            });

            label.TextChanged += (s, e) =>
            {
                CheckReset();
            };
        }
예제 #7
0
        public void DoCategoryContextMenu(EditableLabel label)
        {
            GenericMenu genericMenu = new GenericMenu();

            genericMenu.AddItem(new GUIContent(Strings.get_Menu_Rename_Category()), false, new GenericMenu.MenuFunction2(this.RenameCategory), label);
            genericMenu.AddItem(new GUIContent(Strings.get_Menu_Delete_Category()), false, new GenericMenu.MenuFunction2(this.DeleteCategory), label);
            genericMenu.ShowAsContext();
        }
예제 #8
0
 private void CommitCategoryEdit(EditableLabel label)
 {
     label.StopEditing();
     this.RegisterUndo(Strings.get_Label_Rename_Variable_Category());
     this.target.get_Categories()[label.ID] = label.Text;
     this.SetDirty(false);
     this.Reset();
 }
        public void SetValueWithoutNotifyDoesNotTriggerChangeCallback()
        {
            var  editableLabel = new EditableLabel();
            bool called        = false;

            editableLabel.RegisterCallback <ChangeEvent <string> >(e => called = true);
            m_Window.rootVisualElement.Add(editableLabel);
            editableLabel.SetValueWithoutNotify("Blah");

            Assert.IsFalse(called, "CollapsedButton called our callback.");
        }
예제 #10
0
        public EditableLabel AddNewEditableLabel()
        {
            var self = new EditableLabel();

            self.AutoSize = true;
            self.Name     = "editableLabel" + cLeft.ToString();
            self.Size     = new System.Drawing.Size(103, 53);
            self.Text     = "editableLabel" + cLeft.ToString();
            self.Left     = 0;
            self.Top      = cTop + panel3.AutoScrollPosition.Y;
            cTop         += 60;
            cLeft++;
            self.TabIndex = cLeft;
            this.panel3.Controls.Add(self);
            return(self);
        }
예제 #11
0
        private void DeleteCategory(object userdata)
        {
            EditableLabel editableLabel = (EditableLabel)userdata;
            string        text          = editableLabel.Text;

            using (List <SkillVariable> .Enumerator enumerator = this.fsmVariables.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    SkillVariable current = enumerator.get_Current();
                    if (current.Category == text)
                    {
                        current.SetCategory("");
                    }
                }
            }
            this.RemoveUnusedCategories();
            this.BuildFsmVariableList(true);
        }
        public IEnumerator DoubleClickOnEditableLabelShowsTextField()
        {
            var editableLabel = new EditableLabel();

            m_Window.rootVisualElement.Add(editableLabel);
            yield return(null);

            var label     = editableLabel.SafeQ(EditableLabel.labelName);
            var textField = editableLabel.SafeQ(EditableLabel.textFieldName);
            var center    = label.parent.LocalToWorld(label.layout.center);

            Assert.AreEqual(DisplayStyle.Flex, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.None, textField.resolvedStyle.display);

            EventHelper.Click(center, clickCount: 2);

            Assert.AreEqual(DisplayStyle.None, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.Flex, textField.resolvedStyle.display);
        }
    private static void IsEditingUpdate(DependencyObject obj, DependencyPropertyChangedEventArgs e)
    {
        EditableLabel self = obj as EditableLabel;

        if ((bool)e.NewValue)
        {
            self.m_lastValue          = self.Text;
            self.m_textBox.Visibility = Visibility.Visible;
            self.m_textBox.Focus();
            self.m_label.Visibility = Visibility.Collapsed;
        }
        else
        {
            self.m_textBox.Visibility = Visibility.Collapsed;
            self.m_label.Visibility   = Visibility.Visible;
            if (self.m_lastFocus != null)
            {
                self.m_lastFocus.Focus();
            }
        }
    }
예제 #14
0
        private void RenameCategory(object userdata)
        {
            EditableLabel editableLabel = (EditableLabel)userdata;

            editableLabel.StartEditing();
        }