public IntegerTypeEditor() { InitializeComponent(); using (Graphics g = CreateGraphics()) { var textSize = g.MeasureString(TEXT, Font); m_textHeight = textSize.Height; m_textWidth = textSize.Width; m_minLabelWidth = MyMath.Ceiling(g.MeasureString(MIN_LABEL, Font).Width); m_maxLabelWidth = MyMath.Ceiling(g.MeasureString(MAX_LABEL, Font).Width); m_defaultLabelWidth = MyMath.Ceiling(g.MeasureString(DEFAULT_LABEL, Font).Width); } m_name = new MyTextBox(drawWindow1, NameArea, MyTextBox.InputFormEnum.Text); m_name.Colors.BorderPen = Colors.ControlBorder; m_name.RequestedAreaChanged += ResetSize; m_min = new MyNumericUpDown <int>(drawWindow1, MinNumericArea, false); m_min.RequestedAreaChanged += ResetSize; m_min.Colors.BorderPen = Colors.ControlBorder; m_min.Minimum = int.MinValue; m_min.Maximum = int.MaxValue; m_max = new MyNumericUpDown <int>(drawWindow1, MaxNumericArea, false); m_max.RequestedAreaChanged += ResetSize; m_max.Colors.BorderPen = Colors.ControlBorder; m_max.Minimum = int.MinValue; m_max.Maximum = int.MaxValue; m_default = new MyNumericUpDown <int>(drawWindow1, DefaultNumericArea, false); m_default.RequestedAreaChanged += ResetSize; m_default.Colors.BorderPen = Colors.ControlBorder; m_default.Minimum = int.MinValue; m_default.Maximum = int.MaxValue; drawWindow1.MouseDown += (a, args) => drawWindow1.Focus(); //TODO: is this redundant? drawWindow1.Paint += (a, args) => Paint(args.Graphics); drawWindow1.GotFocus += (a, b) => { forwardTab.TabStop = false; backwardTab.TabStop = false; }; forwardTab.GotFocus += (a, b) => { MyControls.ForwardFocus(); drawWindow1.Focus(); }; //Focus draw window so we dont keep giving focus to forwardTab backwardTab.GotFocus += (a, b) => { MyControls.BackwardFocus(); drawWindow1.Focus(); }; //Focus draw window so we dont keep giving focus to backwardTab this.Leave += (a, b) => { forwardTab.TabStop = true; backwardTab.TabStop = true; }; forwardTab.Size = Size.Empty; forwardTab.Location = new Point(-1, -1); backwardTab.Size = Size.Empty; backwardTab.Location = new Point(-1, -1); MyControls = new ControlSet(m_name, m_min, m_max, m_default); MyControls.RegisterCallbacks(drawWindow1); ResetSize(); }
public EnumerationTypeEditor() { InitializeComponent(); using (Graphics g = CreateGraphics()) { var textSize = g.MeasureString(TEXT, Font); m_textHeight = textSize.Height; m_textWidth = textSize.Width; } m_name = new MyTextBox(drawWindow1, NameArea, MyTextBox.InputFormEnum.Text); m_name.Colors.BorderPen = Colors.ControlBorder; m_default = new MyComboBox <Or <string, Guid> >(drawWindow1, DefaultArea, true); m_default.Colors.BorderPen = Colors.ControlBorder; m_default.Renderer = Colors.ContextMenu; drawWindow1.MouseDown += (a, args) => drawWindow1.Focus(); //TODO: is this redundant? drawWindow1.Paint += (a, args) => Paint(args.Graphics); drawWindow1.GotFocus += (a, b) => { forwardTab.TabStop = false; backwardTab.TabStop = false; }; forwardTab.GotFocus += (a, b) => { MyControls.ForwardFocus(); drawWindow1.Focus(); }; //Focus draw window so we dont keep giving focus to forwardTab backwardTab.GotFocus += (a, b) => { MyControls.BackwardFocus(); drawWindow1.Focus(); }; //Focus draw window so we dont keep giving focus to backwardTab this.Leave += (a, b) => { forwardTab.TabStop = true; backwardTab.TabStop = true; }; forwardTab.Size = Size.Empty; forwardTab.Location = new Point(-1, -1); backwardTab.Size = Size.Empty; backwardTab.Location = new Point(-1, -1); MyControls = new ControlSet(m_name, m_default, m_values); MyControls.RegisterCallbacks(drawWindow1); MyControls.RequestedAreaChanged += ResetSize; ResetSize(); this.PaddingChanged += (a, b) => ResetSize(); }