public RangeDropDownControl(HCItemProperty itemProperty) { InitializeComponent(); AddOkCancelButtons(out _, out _); this.itemProperty = itemProperty; rangeAttr = (RangeAttribute)itemProperty.Property.GetCustomAttributes(typeof(RangeAttribute)).FirstOrDefault(); if (rangeAttr == null) { rangeAttr = new RangeAttribute(0, 100); // default } SetupUIApplicableRange(); minTrackBar.ValueChanged += new EventHandler(anyTrackBar_ValueChanged); maxTrackBar.ValueChanged += new EventHandler(anyTrackBar_ValueChanged); object obj = ReferenceUtility.GetUnreferencedValue(itemProperty.GetValues()[0]); value = RangeConverter.ObjectToRange(obj); propertyItemForUndoSupport = itemProperty.GetItemInHierarchyToRestoreValues(); propertyItemForUndoSupport.SaveValuesToRestore(); UpdateTrackBarsAndTextBoxes(); EditorThemeUtility.ApplyDarkThemeToForm(this); }
public ScriptDropDownControl(HCItemProperty itemProperty) { InitializeComponent(); Resizable = true; SpecialHolder = true; //DoubleBuffered = true; ResizeRedraw = true; MinimumSize = Size; MaximumSize = new Size(Size.Width * 2, Size.Height * 2); AddOkCancelButtons(out _, out _); this.itemProperty = itemProperty; propertyItemForUndoSupport = itemProperty.GetItemInHierarchyToRestoreValues(); propertyItemForUndoSupport.SaveValuesToRestore(); try { scriptEditorControl.Initialize(new HCItemPropertyScriptAdapter(itemProperty)); } catch (Exception exc) { Log.Warning("Script editor control init failed: \n\n" + exc.ToString()); Enabled = false; } DarkThemeUtility.ApplyToForm(this); }
private void TrackBar_ValueChanged(object sender, EventArgs e) { if (trackBarDisableValueChangedEvent) { return; } //!!!!new if (!trackBarFocused) { return; } //begin modifying. save old values for undo if (!trackBarModifying) { trackBarItemInHierarchyToAddUndo = GetItemInHierarchyToRestoreValues(); trackBarItemInHierarchyToAddUndo.SaveValuesToRestore(); trackBarModifying = true; } var control = (IHCColorValuePowered)CreatedControlInsidePropertyItemControl; var trackBar = control.TrackBarPower; trackBarDisableValueChangedEvent = true; var netType = Property.Type.GetNetType(); var unrefType = ReferenceUtility.GetUnreferencedType(netType); var values = GetValues(); if (values == null) { return; } //!!!!multiselection var value = values[0]; var unrefValue = ReferenceUtility.GetUnreferencedValue(value); var color = (ColorValuePowered)unrefValue; try { var power = powerRange.GetValueFromTrackBar(false, trackBar.Value); color.Power = (float)power; SetValue(color, false); } catch { } trackBarDisableValueChangedEvent = false; }
public EnumDropDownControl(HCItemEnumDropDown itemProperty) { InitializeComponent(); this.itemProperty = itemProperty; propertyType = ReferenceUtility.GetUnreferencedType(itemProperty.Property.Type.GetNetType()); if (propertyType.IsEnum) { enumDataType = Enum.GetUnderlyingType(propertyType); isFlag = propertyType.IsDefined(typeof(FlagsAttribute), false); } currentValue = ReferenceUtility.GetUnreferencedValue(itemProperty.GetValues()[0]); propertyItemForUndoSupport = itemProperty.GetItemInHierarchyToRestoreValues(); propertyItemForUndoSupport.SaveValuesToRestore(); listViewEnum.Items.Clear(); listViewEnum.CheckBoxes = isFlag; foreach (var val in Enum.GetValues(propertyType)) { var info = new EnumInfo(val); var displayName = info.DisplayName; var description = info.Description; itemProperty.Owner.PerformOverridePropertyEnumItem(itemProperty, ref displayName, ref description); listViewEnum.Items.Add(new ListViewItem { Text = displayName, ToolTipText = description, Tag = info }); //listViewEnum.Items.Add( new ListViewItem //{ // Text = info.DisplayName, // ToolTipText = info.Description, // Tag = info //} ); } UpdateCheckState(); int itemCount = listViewEnum.Items.Count; var height = itemCount * (Font.Height + DpiHelper.Default.ScaleValue(4)) + 3; var width = ((IHCProperty)itemProperty.CreatedControl).EditorControl.Width; //TODO: bad incapsulation. why this control should know about EditorControl.Width ? Size = new Size(width, Math.Min(dropdownHeight, height)); if (EditorAPI.DarkTheme) { listViewEnum.BackColor = Color.FromArgb(54, 54, 54); listViewEnum.ForeColor = Color.FromArgb(240, 240, 240); } }
private void TrackBar_ValueChanged(object sender, EventArgs e) { if (trackBarDisableValueChangedEvent) { return; } if (!trackBarFocused) { return; } //begin modifying. save old values for undo if (!trackBarModifying) { trackBarItemInHierarchyToAddUndo = GetItemInHierarchyToRestoreValues(); trackBarItemInHierarchyToAddUndo.SaveValuesToRestore(); trackBarModifying = true; } var control = (IHCTextBoxNumeric)CreatedControlInsidePropertyItemControl; var trackBar = control.TrackBar; trackBarDisableValueChangedEvent = true; var netType = Property.Type.GetNetType(); var unrefType = ReferenceUtility.GetUnreferencedType(netType); try { double doubleValue = range.GetValueFromTrackBar(IsInteger(), trackBar.Value); //conversion by means string string str; if (IsInteger()) { str = Convert.ToInt64(doubleValue).ToString(); } else { str = doubleValue.ToString(); } var value = SimpleTypes.ParseValue(unrefType, str); SetValue(value, false); } catch { } trackBarDisableValueChangedEvent = false; }
public ColorValuePoweredSelectControl(HCItemProperty itemProperty) { InitializeComponent(); AddOkCancelButtons(out okButton, out cancelButton); this.itemProperty = itemProperty; powered = ReferenceUtility.GetUnreferencedType(itemProperty.Property.Type.GetNetType()) == typeof(ColorValuePowered); var values = itemProperty.GetValues(); if (values == null) { return; } //!!!!multiselection var value = values[0]; ColorValuePowered initValue; bool readOnly; { var netType = itemProperty.Property.Type.GetNetType(); bool isReferenceType = ReferenceUtility.IsReferenceType(netType); bool referenceSpecified = false; IReference iReference = null; if (isReferenceType && value != null) { iReference = (IReference)value; referenceSpecified = !string.IsNullOrEmpty(iReference.GetByReference); } readOnly = referenceSpecified; } if (powered) { initValue = (ColorValuePowered)ReferenceUtility.GetUnreferencedValue(value); } else { var c = (ColorValue)ReferenceUtility.GetUnreferencedValue(value); initValue = new ColorValuePowered(c.Red, c.Green, c.Blue, c.Alpha, 1); } //for( int n = 0; n < propertyOwners.Length; n++ ) //{ // ColorValue v = (ColorValue)property.GetValue( propertyOwners[ n ], null ); // if( n != 0 ) // { // if( value != v ) // { // value = new ColorValue( 1, 1, 1 ); // break; // } // } // else // value = v; //} bool noAlpha = itemProperty.Property.GetCustomAttributes(typeof(ColorValueNoAlphaAttribute), true).Length != 0; ApplicableRangeColorValuePowerAttribute powerRange = null; if (powered) { var array = itemProperty.Property.GetCustomAttributes(typeof(ApplicableRangeColorValuePowerAttribute), true); if (array.Length != 0) { powerRange = (ApplicableRangeColorValuePowerAttribute)array[0]; } } Init(initValue, noAlpha, powered, powerRange, readOnly); propertyItemForUndoSupport = itemProperty.GetItemInHierarchyToRestoreValues(); propertyItemForUndoSupport.SaveValuesToRestore(); EditorThemeUtility.ApplyDarkThemeToForm(this); }