public MultiPanelPagesCollection(Control owner) : base(owner) { if (owner == null) throw new ArgumentNullException("owner", "Tried to create a MultiPanelPagesCollection with a null owner."); _owner = owner as MultiPanel; if (_owner == null) throw new ArgumentException("Tried to create a MultiPanelPagesCollection with a non-MultiPanel owner.", "owner"); }
public override void Initialize(IComponent component) { _mpanel = component as MultiPanel; if (_mpanel == null) { this.DisplayError(new ArgumentException("Tried to use the MultiPanelControlDesign with a class that does not inherit from MultiPanel.", "component")); return; } base.Initialize(component); IComponentChangeService iccs = (IComponentChangeService)this.GetService(typeof(IComponentChangeService)); if (iccs != null) { iccs.ComponentRemoved += new ComponentEventHandler(ComponentRemoved); } ISelectionService s = (ISelectionService)GetService(typeof(ISelectionService)); if (s != null) { s.SelectionChanged += new EventHandler(s_SelectionChanged); } }
/// <summary> /// Initializes the component. /// </summary> private void InitializeComponent(bool fillMode) { // Some fill must initialize before begin _colorTable = new[] { Color.FromArgb(0xff, 0, 0), Color.FromArgb(0xff, 0x80, 0x17), Color.FromArgb(0xff, 0xf7, 0x0), Color.FromArgb(0, 0xe8, 0), Color.FromArgb(0x19, 0x77, 0xff), Color.FromArgb(0xfc, 0x0c, 0x59), Color.FromArgb(0xff, 0xff, 0xff), Color.FromArgb(0, 0, 0) }; _isBasic = true; _mpnMain = new MultiPanel(); // Basic initialize _pgeBasic = new MultiPanelPage(); _tlpBasic = new TableLayoutPanel(); _llbSwitchAdvance = new LinkLabel(); _tlpBasicColorTable = new TableLayoutPanel(); _csbColor = new ColorSelectorButton[8]; _tlpBasicSizeBar = new TableLayoutPanel(); _tkbBasicSize = new MetroTrackBar(); _lbBasicSize = new Label(); _btnNoFillBasic = new MetroButton(); // Advance initialize _pgeAdvance = new MultiPanelPage(); _tlpAdvance = new TableLayoutPanel(); _llbSwitchBasic = new LinkLabel(); _tlpColorSelector = new TableLayoutPanel(); _clrWheel = new ColorWheel(); _colorEditor = new ColorEditor(); _colorEditorManager = new ColorEditorManager(); _cbxPenStyle = new ComboBox(); _tlpAdvanceSizeBar = new TableLayoutPanel(); _tkbAdvanceSize = new MetroTrackBar(); _txtSize = new TextBox(); _btnNoFillAdvance = new MetroButton(); _mpnMain.SuspendLayout(); // Basic suspend layout _pgeBasic.SuspendLayout(); _tlpBasic.SuspendLayout(); _tlpBasicColorTable.SuspendLayout(); if (!fillMode) { _tlpBasicSizeBar.SuspendLayout(); } // Advance suspend layout _pgeAdvance.SuspendLayout(); _tlpAdvance.SuspendLayout(); _tlpColorSelector.SuspendLayout(); if (!fillMode) { _tlpAdvanceSizeBar.SuspendLayout(); } SuspendLayout(); // // mpnMain // _mpnMain.BackColor = Color.Transparent; _mpnMain.Controls.Add(_pgeBasic); _mpnMain.Controls.Add(_pgeAdvance); _mpnMain.Dock = DockStyle.Fill; _mpnMain.Location = new Point(0, 0); _mpnMain.Margin = new Padding(3, 4, 3, 4); _mpnMain.Name = "_mpnMain"; _mpnMain.SelectedPage = _pgeBasic; _mpnMain.Size = new Size(210, 198); _mpnMain.TabIndex = 0; // // pgeBasic // _pgeBasic.BackColor = Color.Transparent; _pgeBasic.Controls.Add(_tlpBasic); _pgeBasic.Dock = DockStyle.Fill; _pgeBasic.Location = new Point(0, 0); _pgeBasic.Margin = new Padding(3, 4, 3, 4); _pgeBasic.Name = "_pgeBasic"; _pgeBasic.Size = new Size(210, 198); _pgeBasic.TabIndex = 0; _pgeBasic.Text = @"Basic"; // // tlpBasic // _tlpBasic.BackColor = Color.Transparent; _tlpBasic.ColumnCount = 1; _tlpBasic.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); _tlpBasic.Controls.Add(_llbSwitchAdvance, 0, 0); _tlpBasic.Controls.Add(_tlpBasicColorTable, 0, 1); if (fillMode) { _tlpBasic.Controls.Add(_btnNoFillBasic, 0, 2); } else { _tlpBasic.Controls.Add(_tlpBasicSizeBar, 0, 2); } _tlpBasic.Dock = DockStyle.Fill; _tlpBasic.Location = new Point(0, 0); _tlpBasic.Margin = new Padding(3, 4, 3, 4); _tlpBasic.Name = "_tlpBasic"; _tlpBasic.RowCount = 3; _tlpBasic.RowStyles.Add(new RowStyle()); _tlpBasic.RowStyles.Add(new RowStyle(SizeType.Absolute, 120F)); _tlpBasic.RowStyles.Add(new RowStyle(SizeType.Absolute, 26F)); _tlpBasic.Size = new Size(210, 198); _tlpBasic.TabIndex = 0; // // llbSwitchAdvance // _llbSwitchAdvance.LinkColor = Color.FromArgb(1, 123, 205); _llbSwitchAdvance.Location = new Point(3, 0); _llbSwitchAdvance.Name = @"_llbSwitchAdvance"; _llbSwitchAdvance.Size = new Size(204, 24); _llbSwitchAdvance.TabIndex = 0; _llbSwitchAdvance.TabStop = true; _llbSwitchAdvance.Text = @"Advance"; _llbSwitchAdvance.TextAlign = ContentAlignment.MiddleCenter; _llbSwitchAdvance.Click += _llbSwitchAdvance_Click; // // tlpBasicColorTable // _tlpBasicColorTable.ColumnCount = 4; _tlpBasicColorTable.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); _tlpBasicColorTable.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); _tlpBasicColorTable.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); _tlpBasicColorTable.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); _tlpBasicColorTable.Dock = DockStyle.Fill; _tlpBasicColorTable.Location = new Point(10, 34); _tlpBasicColorTable.Margin = new Padding(10); _tlpBasicColorTable.Name = "_tlpBasicColorTable"; _tlpBasicColorTable.RowCount = 2; _tlpBasicColorTable.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); _tlpBasicColorTable.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); _tlpBasicColorTable.Size = new Size(190, 100); _tlpBasicColorTable.TabIndex = 1; for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { // // colorSelectorButton // int id = i * 4 + j; _csbColor[id] = new ColorSelectorButton { BackColor = _colorTable[id], Dock = DockStyle.Fill, Location = new Point(10, 10), Margin = new Padding(10), Name = string.Format("csbColor{0}", id), Size = new Size(27, 30), TabIndex = id, Text = string.Format("Color{0}", id), UseVisualStyleBackColor = true, }; _csbColor[id].Click += ColorSizeControl_Click; _tlpBasicColorTable.Controls.Add(_csbColor[id], j, i); } } if (fillMode) { // // btnNoFillBasic // _btnNoFillBasic.BackColor = Color.White; _btnNoFillBasic.Dock = DockStyle.Fill; _btnNoFillBasic.HoverColor = Color.FromArgb(230, 230, 230); _btnNoFillBasic.Location = new Point(15, 230); _btnNoFillBasic.Margin = new Padding(15); _btnNoFillBasic.Name = "_btnNoFillBasic"; _btnNoFillBasic.PressColor = Color.FromArgb(77, 77, 77); _btnNoFillBasic.Size = new Size(180, 30); _btnNoFillBasic.TabIndex = 4; _btnNoFillBasic.Text = @"No Fill"; _btnNoFillBasic.UseVisualStyleBackColor = false; _btnNoFillBasic.Click += NoFillButton_Click; } else { // // tlpBasicSizeBar // _tlpBasicSizeBar.ColumnCount = 2; _tlpBasicSizeBar.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); _tlpBasicSizeBar.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F)); _tlpBasicSizeBar.Controls.Add(_tkbBasicSize, 0, 0); _tlpBasicSizeBar.Controls.Add(_lbBasicSize, 1, 0); _tlpBasicSizeBar.Dock = DockStyle.Fill; _tlpBasicSizeBar.Location = new Point(15, 159); _tlpBasicSizeBar.Margin = new Padding(15); _tlpBasicSizeBar.Name = "_tlpBasicSizeBar"; _tlpBasicSizeBar.RowCount = 1; _tlpBasicSizeBar.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); _tlpBasicSizeBar.Size = new Size(180, 24); _tlpBasicSizeBar.TabIndex = 2; // // tkbSize // _tkbBasicSize.Dock = DockStyle.Fill; _tkbBasicSize.Location = new Point(3, 3); _tkbBasicSize.Name = @"_tkbBasicSize"; _tkbBasicSize.Size = new Size(124, 18); _tkbBasicSize.TabIndex = 0; _tkbBasicSize.Text = @"metroTrackBar1"; // synchronize trackbar mutualy var synTrkBasic = new TrackBarSync(_tkbBasicSize, _lbBasicSize); synTrkBasic.Add(_tkbAdvanceSize); synTrkBasic.ValueChanged += synTrackBar_ValueChanged; _tkbBasicSize.Value = (int)_selectedWidth; // // lbSize // _lbBasicSize.Dock = DockStyle.Fill; _lbBasicSize.Location = new Point(133, 0); _lbBasicSize.Name = @"_lbBasicSize"; _lbBasicSize.Size = new Size(44, 24); _lbBasicSize.TabIndex = 1; _lbBasicSize.Text = ConvertWidthToString(_selectedWidth); _lbBasicSize.TextAlign = ContentAlignment.MiddleCenter; } // // _pgeAdvance // _pgeAdvance.Controls.Add(_tlpAdvance); _pgeAdvance.Dock = DockStyle.Fill; _pgeAdvance.Location = new Point(0, 0); _pgeAdvance.Margin = new Padding(3, 4, 3, 4); _pgeAdvance.Name = "_pgeAdvance"; _pgeAdvance.Size = new Size(210, 275 + 26); _pgeAdvance.TabIndex = 1; _pgeAdvance.Text = @"_pgeAdvance"; // // _tlpAdvance // _tlpAdvance.BackColor = Color.Transparent; _tlpAdvance.ColumnCount = 1; _tlpAdvance.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); _tlpAdvance.Controls.Add(_llbSwitchBasic, 0, 0); _tlpAdvance.Controls.Add(_tlpColorSelector, 0, 1); if (fillMode) { _tlpAdvance.Controls.Add(_btnNoFillAdvance, 0, 2); } else { _tlpAdvance.Controls.Add(_tlpAdvanceSizeBar, 0, 2); _tlpAdvance.Controls.Add(_cbxPenStyle, 0, 3); } _tlpAdvance.Dock = DockStyle.Fill; _tlpAdvance.Location = new Point(0, 0); _tlpAdvance.Margin = new Padding(3, 4, 3, 4); _tlpAdvance.Name = "_tlpAdvance"; _tlpAdvance.RowCount = 4; _tlpAdvance.RowStyles.Add(new RowStyle(SizeType.Absolute, 25F)); _tlpAdvance.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); _tlpAdvance.RowStyles.Add(new RowStyle(SizeType.Absolute, 60F)); if (!fillMode) { _tlpAdvance.RowStyles.Add(new RowStyle(SizeType.Absolute, 28F)); } _tlpAdvance.Size = new Size(210, 275 + 26); _tlpAdvance.TabIndex = 1; // // _llbSwitchBasic // _llbSwitchBasic.Dock = DockStyle.Fill; _llbSwitchBasic.LinkColor = Color.FromArgb(1, 123, 205); _llbSwitchBasic.Location = new Point(3, 0); _llbSwitchBasic.Name = "_llbSwitchBasic"; _llbSwitchBasic.Size = new Size(204, 25); _llbSwitchBasic.TabIndex = 0; _llbSwitchBasic.TabStop = true; _llbSwitchBasic.Text = @"Basic"; _llbSwitchBasic.TextAlign = ContentAlignment.MiddleCenter; _llbSwitchBasic.Click += _llbSwitchBasic_Click; // // _tlpColorSelector // _tlpColorSelector.ColumnCount = 1; _tlpColorSelector.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); _tlpColorSelector.Controls.Add(_clrWheel, 0, 0); _tlpColorSelector.Controls.Add(_colorEditor, 0, 1); _tlpColorSelector.Dock = DockStyle.Fill; _tlpColorSelector.Location = new Point(3, 28); _tlpColorSelector.Name = "_tlpColorSelector"; _tlpColorSelector.RowCount = 2; _tlpColorSelector.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); _tlpColorSelector.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F)); _tlpColorSelector.Size = new Size(204, 184); _tlpColorSelector.TabIndex = 3; // // _clrWheel // _clrWheel.Color = _selectedColor; _clrWheel.Dock = DockStyle.Fill; _clrWheel.Location = new Point(3, 3); _clrWheel.Name = "_clrWheel"; _clrWheel.Size = new Size(198, 138); _clrWheel.TabIndex = 0; // // _colorEditor // _colorEditor.Color = _selectedColor; _colorEditor.Dock = DockStyle.Fill; _colorEditor.TabIndex = 1; // // colorEditorManager // _colorEditorManager.ColorEditor = _colorEditor; _colorEditorManager.ColorWheel = _clrWheel; _colorEditorManager.ColorChanged += ColorEditorManager_ColorChanged; if (fillMode) { // // btnNoFillAdvance // _btnNoFillAdvance.BackColor = Color.White; _btnNoFillAdvance.Dock = DockStyle.Fill; _btnNoFillAdvance.HoverColor = Color.FromArgb(230, 230, 230); _btnNoFillAdvance.Location = new Point(15, 230); _btnNoFillAdvance.Margin = new Padding(15); _btnNoFillAdvance.Name = "_btnNoFillAdvance"; _btnNoFillAdvance.PressColor = Color.FromArgb(77, 77, 77); _btnNoFillAdvance.Size = new Size(180, 30); _btnNoFillAdvance.TabIndex = 4; _btnNoFillAdvance.Text = @"No Fill"; _btnNoFillAdvance.UseVisualStyleBackColor = false; _btnNoFillAdvance.Click += NoFillButton_Click; } else { // // _tlpAdvanceSizeBar // _tlpAdvanceSizeBar.ColumnCount = 2; _tlpAdvanceSizeBar.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); _tlpAdvanceSizeBar.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F)); _tlpAdvanceSizeBar.Controls.Add(_tkbAdvanceSize, 0, 0); _tlpAdvanceSizeBar.Controls.Add(_txtSize, 1, 0); _tlpAdvanceSizeBar.Dock = DockStyle.Fill; _tlpAdvanceSizeBar.Location = new Point(15, 230); _tlpAdvanceSizeBar.Margin = new Padding(15); _tlpAdvanceSizeBar.Name = "_tlpAdvanceSizeBar"; _tlpAdvanceSizeBar.RowCount = 1; _tlpAdvanceSizeBar.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); _tlpAdvanceSizeBar.Size = new Size(180, 30); _tlpAdvanceSizeBar.TabIndex = 2; // // _tkbAdvanceSize // _tkbAdvanceSize.Dock = DockStyle.Fill; _tkbAdvanceSize.Location = new Point(3, 3); _tkbAdvanceSize.Name = "_tkbAdvanceSize"; _tkbAdvanceSize.Size = new Size(124, 24); _tkbAdvanceSize.TabIndex = 0; _tkbAdvanceSize.Text = @"tkbAdvanceSize"; // synchronize trackbar mutualy var synTrkAdvance = new TrackBarSync(_tkbAdvanceSize, _txtSize); synTrkAdvance.Add(_tkbBasicSize); synTrkAdvance.ValueChanged += synTrackBar_ValueChanged; _tkbAdvanceSize.Value = (int)_selectedWidth; // // _txtSize // _txtSize.Dock = DockStyle.Fill; _txtSize.Location = new Point(133, 3); _txtSize.Name = "_txtSize"; _txtSize.Text = ConvertWidthToString(_selectedWidth); _txtSize.Size = new Size(44, 25); _txtSize.TabIndex = 1; _txtSize.CausesValidation = true; _txtSize.Validating += _txtSize_Validating; // // _cbxPenStyle // _cbxPenStyle.Dock = DockStyle.Fill; _cbxPenStyle.FormattingEnabled = true; _cbxPenStyle.DataSource = Enum.GetValues(typeof(DashStyle)); _cbxPenStyle.Location = new Point(3, 4); _cbxPenStyle.Margin = new Padding(15, 0, 15, 0); _cbxPenStyle.Name = "_cbxPenStyle"; _cbxPenStyle.Size = new Size(172, 25); _cbxPenStyle.TabIndex = 2; _cbxPenStyle.SelectedIndex = 0; _cbxPenStyle.SelectedIndexChanged += PenStyle_SelectedIndexChanged; } // // This Control // BackColor = Color.White; Controls.Add(_mpnMain); Font = new Font("Segoe UI Light", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 0); Margin = new Padding(3, 4, 3, 4); Name = "ColorToolControl"; Size = new Size(210, 198); _mpnMain.ResumeLayout(false); // Basic Resume Layout _pgeBasic.ResumeLayout(false); _tlpBasic.ResumeLayout(false); _tlpBasicColorTable.ResumeLayout(false); if (!fillMode) { _tlpBasicSizeBar.ResumeLayout(false); } // Advance Resume Layout _pgeAdvance.ResumeLayout(false); _tlpAdvance.ResumeLayout(false); _tlpColorSelector.ResumeLayout(false); if (!fillMode) { _tlpAdvanceSizeBar.ResumeLayout(false); _tlpAdvanceSizeBar.PerformLayout(); } ResumeLayout(false); }