/// <summary> /// Load and initialise the toolbar. /// </summary> public void Load() { bool hasSearchField = false; int buttonHeight = Height - 12; int buttonWidth = Height - 6; SuspendLayout(); Controls.Clear(); foreach (CRToolbarItem button in CRToolbarItemCollection.DefaultCollection.Buttons) { switch (button.Type) { case CRToolbarItemType.Search: if (!hasSearchField) { CRSearchField searchField = new CRSearchField { Size = new Size(buttonWidth, buttonHeight), Text = String.Empty, Visible = true }; button.Control = searchField; searchField.Tag = button; searchField.MouseDown += ToolbarOnMouseDown; searchField.MouseMove += CustomisationOnMouseMove; Controls.Add(searchField); // Can only have one search field hasSearchField = true; } break; case CRToolbarItemType.Button: { CRRoundButton newButton = new CRRoundButton { Image = button.Image, Name = button.Name, Text = String.Empty, Size = new Size(buttonWidth, buttonHeight), ImageScaling = true, Enabled = (button.ID == ActionID.Script || Customising) }; newButton.Click += OnToolbarItemClick; newButton.MouseDown += ToolbarOnMouseDown; newButton.MouseMove += CustomisationOnMouseMove; button.Control = newButton; Controls.Add(newButton); newButton.Tag = button; // Add a tooltip for this button ToolTip newToolTip = new ToolTip(); newToolTip.SetToolTip(newButton, button.Tooltip); break; } case CRToolbarItemType.FlexibleSpace: case CRToolbarItemType.Space: { PictureBox pictureBox = new PictureBox { Name = button.Name, Size = new Size(buttonWidth, buttonHeight), Visible = Customising }; button.Control = pictureBox; pictureBox.Tag = button; pictureBox.MouseDown += ToolbarOnMouseDown; pictureBox.MouseMove += CustomisationOnMouseMove; Controls.Add(pictureBox); break; } } } Relayout(); ResumeLayout(true); }