using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using MatterHackers.Agg.Image; using MatterHackers.Agg; using MatterHackers.Agg.UI; using MatterHackers.VectorMath; using System.Globalization; using MatterHackers.MatterControl; using MatterHackers.MatterControl.PrintQueue; using MatterHackers.MatterControl.ActionBar; using MatterHackers.MatterControl.PrinterControls.PrinterConnections; namespace MatterHackers.MatterControl { public class ActionBarPlus : FlowLayoutWidget { public ActionBarPlus() : base(FlowDirection.TopToBottom) { this.Create(); } event EventHandler unregisterEvents; public void Create() { // These are used as descriptions to tell you what the code is doin,g but there is not code to see what is happening. // If you want to know what happens, you have to go read the functions. //SetDisplayAttributes(); //AddChildElements(); //AddHandlers(); // I think it is a better design to just write the comments and have the code here. // This way we have the six lines of functional code right here. We can read it and see what this constructor actually does. // Set Display Attributes this.HAnchor = HAnchor.ParentLeftRight; this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; // Add Child Elements this.AddChild(new ActionBar.PrinterActionRow()); this.AddChild(new PrintStatusRow()); // Add Handlers ActiveTheme.Instance.ThemeChanged.RegisterEvent(onThemeChanged, ref unregisterEvents); } public override void OnClosed(EventArgs e) { if (unregisterEvents != null) { unregisterEvents(this, null); } base.OnClosed(e); } private void onThemeChanged(object sender, EventArgs e) { this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; this.Invalidate(); } } class MessageActionRow : ActionRowBase { protected override void AddChildElements() { this.AddChild(HelpTextWidget.Instance); } protected override void Initialize() { this.Margin = new BorderDouble(0,3,0,0); } } }