Пример #1
0
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.BeginProperty(position, label, property);


            float objectFieldHeight = EditorStyles.objectField.CalcHeight(label, position.width);
            Rect  objectFieldRect   = new Rect(position.x, position.y, position.width, objectFieldHeight);

            EditorGUI.ObjectField(objectFieldRect, property, label);
            height = objectFieldHeight;

            Object       target = property.serializedObject.targetObject;
            IntComponent comp   = (IntComponent)fieldInfo.GetValue(target);

            if (comp != null)
            {
                height += EditorGUIUtility.standardVerticalSpacing;

                GUIContent valueLabel       = new GUIContent(comp.ToString());
                float      valueLabelHeight = EditorStyles.label.CalcHeight(valueLabel, position.width);
                Rect       valueLabelRect   = new Rect(position.x, position.y + height,
                                                       position.width, valueLabelHeight);
                EditorGUI.LabelField(valueLabelRect, valueLabel);
                height += valueLabelHeight;
            }

            EditorGUI.EndProperty();
            property.serializedObject.ApplyModifiedProperties();
        }
Пример #2
0
    public void CardSelected(IntComponent intComponent)
    {
        GameObject card = Instantiate(cardPrefab, Camera.main.ScreenToWorldPoint(Input.mousePosition), Quaternion.identity);

        card.GetComponent <CardDefenseCard>().startPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        card.GetComponent <CardDefenseCard>().SetElement(intComponent.value);
        card.GetComponent <CardDefenseCard>().gameController = this;
        card.GetComponent <CardDefenseCard>().selected       = true;
        card.GetComponent <SpriteRenderer>().sprite          = SpriteForElement(intComponent.value);

        intComponent.GetComponent <Image>().enabled  = false;
        intComponent.GetComponent <Button>().enabled = false;
        selectedButton = intComponent.gameObject;
    }
        public EditValueWindow(KeyVal val)
        {
            var    hndl  = new WindowInteropHelper(this).EnsureHandle();
            IntPtr brush = CreateSolidBrush(uint.MinValue);

            SetClassLong(hndl, -10, brush);

            SetWindowTheme(hndl, "DarkMode_Explorer", IntPtr.Zero);

            int attrValue = 1; //TRUE

            DwmSetWindowAttribute(hndl, 20, ref attrValue, Marshal.SizeOf(typeof(int)));

            //DARK THEME ^

            currentKeyVal = val;

            InitializeComponent();
            ValueNameTextBox.Text = val.Name;

            if (val.DataTypeEnum == DataTypeEnum.RegUwpString)
            {
                var componentControl = new StringComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(250);
                ResizeMode = System.Windows.ResizeMode.CanResizeWithGrip;
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpBoolean)
            {
                var componentControl = new BooleanComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if ((int)val.DataTypeEnum >= (int)DataTypeEnum.RegUwpByte &&
                     (int)val.DataTypeEnum <= (int)DataTypeEnum.RegUwpDouble)    //byte, int16, uint16, int32, uint32, int64, uint64, double, single
            {
                var componentControl = new IntComponent(val.DataTypeEnum);
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpDateTimeOffset)
            {
                var componentControl = new DateTimeOffsetComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpChar)
            {
                var componentControl = new CharComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpGuid)
            {
                var componentControl = new GuidComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpRect)
            {
                var componentControl = new RectComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else if (val.DataTypeEnum == DataTypeEnum.RegUwpPoint || val.DataTypeEnum == DataTypeEnum.RegUwpSize)
            {
                var componentControl = new PointSizeComponent(val.DataTypeEnum);
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(154);
            }
            else
            {
                unimplementedTxt.Visibility = System.Windows.Visibility.Visible;
            }

            Title = $"Edit value [type: {val.DataTypeEnum}]";

            valueDataSet?.SetValueData(val.Data);
            if (valueDataSet != null)
            {
                valueDataSet.PropertyChanged += ValueDataSet_PropertyChanged;
            }
        }
        private void ValueTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var    hndl  = new WindowInteropHelper(this).EnsureHandle();
            IntPtr brush = CreateSolidBrush(uint.MinValue);

            SetClassLong(hndl, -10, brush);

            SetWindowTheme(hndl, "DarkMode_Explorer", IntPtr.Zero);

            int attrValue = 1; //TRUE

            DwmSetWindowAttribute(hndl, 20, ref attrValue, Marshal.SizeOf(typeof(int)));

            //DARK THEME ^

            var val = (DataTypeEnum)ValueTypeComboBox.SelectedItem;

            if (valueDataSet != null)
            {
                valueDataSet.PropertyChanged -= ValueDataSet_PropertyChanged;
                valueDataSet = null;
                ContainerGrid.Children.Clear();

                //TODO: additional check when "if key !exists" is implemented
                OkButton.IsEnabled = true;
            }

            if (val == DataTypeEnum.RegUwpString)
            {
                var componentControl = new StringComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(250);
                ResizeMode = ResizeMode.CanResizeWithGrip;
            }
            else if (val == DataTypeEnum.RegUwpBoolean)
            {
                var componentControl = new BooleanComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if ((int)val >= (int)DataTypeEnum.RegUwpByte &&
                     (int)val <= (int)DataTypeEnum.RegUwpDouble)    //byte, int16, uint16, int32, uint32, int64, uint64, double, single
            {
                var componentControl = new IntComponent(val);
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if (val == DataTypeEnum.RegUwpDateTimeOffset)
            {
                var componentControl = new DateTimeOffsetComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if (val == DataTypeEnum.RegUwpChar)
            {
                var componentControl = new CharComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if (val == DataTypeEnum.RegUwpGuid)
            {
                var componentControl = new GuidComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if (val == DataTypeEnum.RegUwpRect)
            {
                var componentControl = new RectComponent();
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }
            else if (val == DataTypeEnum.RegUwpPoint || val == DataTypeEnum.RegUwpSize)
            {
                var componentControl = new PointSizeComponent(val);
                ContainerGrid.Children.Add(componentControl);
                valueDataSet = componentControl;
                SetMinHeightAndHeight(210);
                ResizeMode = ResizeMode.NoResize;
            }

            valueDataSet.PropertyChanged += ValueDataSet_PropertyChanged;
        }