From 5a908c7973160741c78cbaffc37b1e212a2ebb84 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 13 May 2016 11:37:22 -0700 Subject: [PATCH 1/4] Working on edit button for printer --- ActionBar/PrinterActionRow.cs | 41 +++++++++++++++++- ControlElements/TextImageButtonFactory.cs | 2 +- MatterControlApplication.cs | 27 ++++++++++++ PartPreviewWindow/View3D/View3DWidget.cs | 2 +- .../SettingsControlSelectors.cs | 4 +- .../{icon_edit_32x32.png => icon_edit.png} | Bin Submodules/agg-sharp | 2 +- 7 files changed, 71 insertions(+), 7 deletions(-) rename StaticData/Icons/{icon_edit_32x32.png => icon_edit.png} (100%) diff --git a/ActionBar/PrinterActionRow.cs b/ActionBar/PrinterActionRow.cs index b79fd220f..74c013ebc 100644 --- a/ActionBar/PrinterActionRow.cs +++ b/ActionBar/PrinterActionRow.cs @@ -152,12 +152,49 @@ namespace MatterHackers.MatterControl.ActionBar this.AddChild(connectPrinterButton); this.AddChild(disconnectPrinterButton); - this.AddChild(selectActivePrinterButton); + + FlowLayoutWidget printerSelectorAndEditButton = new FlowLayoutWidget() + { + HAnchor = HAnchor.ParentLeftRight, + }; + printerSelectorAndEditButton.AddChild(selectActivePrinterButton); + Button editButton = TextImageButtonFactory.GetThemedEditButton(); + editButton.VAnchor = VAnchor.ParentCenter; + editButton.Click += EditButton_Click; + printerSelectorAndEditButton.AddChild(editButton); + this.AddChild(printerSelectorAndEditButton); + this.AddChild(resetConnectionButton); //this.AddChild(CreateOptionsMenu()); } - protected override void AddHandlers() + private void EditButton_Click(object sender, EventArgs e) + { + Button editButton = sender as Button; + if (editButton != null) + { + editButton.Closed += (s, e2) => + { + editButton.Click -= EditButton_Click; + }; + + Task.Run((Action)AutomationTest); + } + } + + private void AutomationTest() + { + AutomationRunner test = new AutomationRunner("C:/TestImages"); + test.Wait(2); + test.ClickByName("SettingsAndControls"); + test.Wait(2); + test.ClickImage("BackButton.png"); + + //ImageIO.SaveImageData("test.png", test.GetCurrentScreen()); + } + + + protected override void AddHandlers() { ActiveSliceSettings.ActivePrinterChanged.RegisterEvent(onActivePrinterChanged, ref unregisterEvents); PrinterConnectionAndCommunication.Instance.EnableChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents); diff --git a/ControlElements/TextImageButtonFactory.cs b/ControlElements/TextImageButtonFactory.cs index eb9c15cf1..e79469087 100644 --- a/ControlElements/TextImageButtonFactory.cs +++ b/ControlElements/TextImageButtonFactory.cs @@ -228,7 +228,7 @@ namespace MatterHackers.MatterControl public static Button GetThemedEditButton() { - ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png", 16, 16); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit.png", 16, 16); Button editButton; if (ActiveTheme.Instance.IsDarkTheme) diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index 6bfc226fb..e866bf164 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -590,6 +590,7 @@ namespace MatterHackers.MatterControl if (firstDraw) { + DrawAfter += ShowNamesUnderMouse; firstDraw = false; foreach (string arg in commandLineArgs) { @@ -757,6 +758,32 @@ namespace MatterHackers.MatterControl #endif } + bool showNamesUnderMouse = false; + public override void OnKeyDown(KeyEventArgs keyEvent) + { + if (keyEvent.KeyCode == Keys.F2) + { + Task.Run((Action)AutomationTest); + } + else if (keyEvent.KeyCode == Keys.F1) + { + showNamesUnderMouse = !showNamesUnderMouse; + } + + base.OnKeyDown(keyEvent); + } + + private void AutomationTest() + { + AutomationRunner test = new AutomationRunner(); + test.ClickByName("Library Tab", 5); + test.ClickByName("Queue Tab", 5); + test.ClickByName("Queue Item SkeletonArm_Med", 5); + test.ClickByName("3D View Edit", 5); + test.Wait(.2); + test.DragByName("SkeletonArm_Med_IObject3D", 5); + test.DropByName("SkeletonArm_Med_IObject3D", 5, offset: new Point2D(0, -40)); + } public static void CheckKnownAssemblyConditionalCompSymbols() { MatterControlApplication.AssertDebugNotDefined(); diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index 52fbb6eb5..cc3f06cf4 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -212,7 +212,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow addButton.Enabled = false; } - ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png", 14, 14); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit.png", 14, 14); if (!ActiveTheme.Instance.IsDarkTheme) { diff --git a/SlicerConfiguration/SettingsControlSelectors.cs b/SlicerConfiguration/SettingsControlSelectors.cs index e7df459c2..481f25de4 100644 --- a/SlicerConfiguration/SettingsControlSelectors.cs +++ b/SlicerConfiguration/SettingsControlSelectors.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration editButton = TextImageButtonFactory.GetThemedEditButton(); editButton.VAnchor = VAnchor.ParentCenter; - editButton.Margin = new BorderDouble(right: 6); + editButton.Margin = new BorderDouble(left: 6); editButton.Click += (sender, e) => { if (layerType == NamedSettingsLayers.Material) @@ -145,8 +145,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } }; - container.AddChild(editButton); container.AddChild(dropDownList); + container.AddChild(editButton); return container; } diff --git a/StaticData/Icons/icon_edit_32x32.png b/StaticData/Icons/icon_edit.png similarity index 100% rename from StaticData/Icons/icon_edit_32x32.png rename to StaticData/Icons/icon_edit.png diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 8ef10cd1b..1cefd7402 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 8ef10cd1bc7fd51122ee3c518f0a20a375ab82a9 +Subproject commit 1cefd740213b2b8e071c579e45546d7fcbdabe8a From ce13f6f59cde542d271ca75c8de5edd8ca9ce411 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 13 May 2016 14:23:33 -0700 Subject: [PATCH 2/4] Put in a hack for the printer edit button. --- ActionBar/PrinterActionRow.cs | 26 +++++++++++++++------- CustomWidgets/PartThumbnailWidget.cs | 3 +++ MatterControlApplication.cs | 1 + SlicerConfiguration/SliceSettingsWidget.cs | 9 ++++++-- StaticData/SliceSettings/Layouts.txt | 6 ++--- StaticData/Translations/Master.txt | 6 +++++ 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/ActionBar/PrinterActionRow.cs b/ActionBar/PrinterActionRow.cs index 74c013ebc..566aaed64 100644 --- a/ActionBar/PrinterActionRow.cs +++ b/ActionBar/PrinterActionRow.cs @@ -29,11 +29,13 @@ either expressed or implied, of the FreeBSD Project. using MatterHackers.Agg; using MatterHackers.Agg.UI; +using MatterHackers.GuiAutomation; using MatterHackers.Localizations; using MatterHackers.MatterControl.PrinterCommunication; using MatterHackers.MatterControl.PrinterControls.PrinterConnections; using MatterHackers.MatterControl.SlicerConfiguration; using System; +using System.Threading.Tasks; namespace MatterHackers.MatterControl.ActionBar { @@ -171,6 +173,7 @@ namespace MatterHackers.MatterControl.ActionBar private void EditButton_Click(object sender, EventArgs e) { Button editButton = sender as Button; + editButton.ToolTipText = "Edit Printer Settings".Localize(); if (editButton != null) { editButton.Closed += (s, e2) => @@ -184,17 +187,24 @@ namespace MatterHackers.MatterControl.ActionBar private void AutomationTest() { - AutomationRunner test = new AutomationRunner("C:/TestImages"); - test.Wait(2); - test.ClickByName("SettingsAndControls"); - test.Wait(2); - test.ClickImage("BackButton.png"); - - //ImageIO.SaveImageData("test.png", test.GetCurrentScreen()); + AutomationRunner testRunner = new AutomationRunner(inputType: AutomationRunner.InputType.Simulated); + if (testRunner.NameExists("SettingsAndControls")) + { + testRunner.ClickByName("SettingsAndControls", 5); + testRunner.Wait(.5); + } + testRunner.ClickByName("SETTINGS Tab"); + testRunner.ClickByName("Printer Tab"); + testRunner.ClickByName("Connection Tab", 5); + testRunner.MoveToByName("Printer Name Edit", 5); + testRunner.MoveToByName("Auto Connect Checkbox", 5); + testRunner.MoveToByName("Baud Rate Edit", 5); + testRunner.MoveToByName("Printer Name Edit", 5); + testRunner.Dispose(); } - protected override void AddHandlers() + protected override void AddHandlers() { ActiveSliceSettings.ActivePrinterChanged.RegisterEvent(onActivePrinterChanged, ref unregisterEvents); PrinterConnectionAndCommunication.Instance.EnableChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents); diff --git a/CustomWidgets/PartThumbnailWidget.cs b/CustomWidgets/PartThumbnailWidget.cs index a3b2a0264..4de44fd80 100644 --- a/CustomWidgets/PartThumbnailWidget.cs +++ b/CustomWidgets/PartThumbnailWidget.cs @@ -45,6 +45,7 @@ using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using MatterHackers.Localizations; +using MatterHackers.Agg.ImageProcessing; namespace MatterHackers.MatterControl { @@ -115,7 +116,9 @@ namespace MatterHackers.MatterControl if (noThumbnailImage.Width == 0) { StaticData.Instance.LoadIcon(noThumbnailFileName, noThumbnailImage); + noThumbnailImage.InvertLightness(); StaticData.Instance.LoadIcon(buildingThumbnailFileName, buildingThumbnailImage); + buildingThumbnailImage.InvertLightness(); } this.thumbnailImage = new ImageBuffer(buildingThumbnailImage); diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index e866bf164..28275cebb 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -52,6 +52,7 @@ using System.Threading; using System.Threading.Tasks; using MatterHackers.GCodeVisualizer; using Gaming.Game; +using MatterHackers.GuiAutomation; namespace MatterHackers.MatterControl { diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 11562745c..9c5fe909c 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -687,7 +687,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration var intEditWidget = new MHNumberEdit(currentValue, pixelWidth: intEditWidth, tabIndex: tabIndexForItem++) { ToolTipText = settingData.HelpText, - SelectAllOnFocus = true + SelectAllOnFocus = true, + Name = settingData.PresentationName + " Edit", }; intEditWidget.ActuallNumberEdit.EditComplete += (sender, e) => { @@ -1045,8 +1046,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration case OrganizerSettingsData.DataEditTypes.STRING: { - var stringEdit = new MHTextEditWidget(sliceSettingValue, pixelWidth: 120, tabIndex: tabIndexForItem++); + var stringEdit = new MHTextEditWidget(sliceSettingValue, pixelWidth: 120, tabIndex: tabIndexForItem++) + { + Name = settingData.PresentationName + " Edit", + }; stringEdit.ToolTipText = settingData.HelpText; + stringEdit.ActualTextEditWidget.EditComplete += (sender, e) => { SaveSetting(settingData.SlicerConfigName, ((TextEditWidget)sender).Text); diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index 35bcf5d8f..896ee3011 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -11,7 +11,7 @@ Simple Connection Description MatterControl.PrinterName - Connection + Details MatterControl.AutoConnect MatterControl.BaudRate MatterControl.ComPort @@ -72,7 +72,7 @@ Intermediate Connection Description MatterControl.PrinterName - Connection + Details MatterControl.AutoConnect MatterControl.BaudRate MatterControl.ComPort @@ -272,7 +272,7 @@ Advanced Connection Description MatterControl.PrinterName - Connection + Details MatterControl.AutoConnect MatterControl.BaudRate MatterControl.ComPort diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index e45cad4a7..005618e29 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -4849,3 +4849,9 @@ Translated:Connection Info English:Camera Monitoring Translated:Camera Monitoring +English:Details +Translated:Details + +English:Edit Printer Settings +Translated:Edit Printer Settings + From ba33eb1d37378b874dd2efe2b3fa4450e65ee2cc Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 13 May 2016 14:24:00 -0700 Subject: [PATCH 3/4] Made automation able to show the software mouse whenever desired. --- Submodules/agg-sharp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 1cefd7402..b5a4de982 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 1cefd740213b2b8e071c579e45546d7fcbdabe8a +Subproject commit b5a4de982723c0e453a77579e1b4903f1c0bca7c From 8f94679671e6bd4e65fa2462dae48ea5dc0faf09 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Sun, 15 May 2016 11:52:40 -0700 Subject: [PATCH 4/4] A bit more work on printer editing. --- ActionBar/PrinterActionRow.cs | 18 ++++++++++-------- ControlElements/TextImageButtonFactory.cs | 14 ++++++++------ MatterControlApplication.cs | 1 - .../SettingsControlSelectors.cs | 2 ++ StaticData/Translations/Master.txt | 6 ++++++ Submodules/agg-sharp | 2 +- 6 files changed, 27 insertions(+), 16 deletions(-) diff --git a/ActionBar/PrinterActionRow.cs b/ActionBar/PrinterActionRow.cs index 566aaed64..1c2334855 100644 --- a/ActionBar/PrinterActionRow.cs +++ b/ActionBar/PrinterActionRow.cs @@ -173,7 +173,7 @@ namespace MatterHackers.MatterControl.ActionBar private void EditButton_Click(object sender, EventArgs e) { Button editButton = sender as Button; - editButton.ToolTipText = "Edit Printer Settings".Localize(); + editButton.ToolTipText = "Edit Current Printer Settings".Localize(); if (editButton != null) { editButton.Closed += (s, e2) => @@ -193,13 +193,15 @@ namespace MatterHackers.MatterControl.ActionBar testRunner.ClickByName("SettingsAndControls", 5); testRunner.Wait(.5); } - testRunner.ClickByName("SETTINGS Tab"); - testRunner.ClickByName("Printer Tab"); - testRunner.ClickByName("Connection Tab", 5); - testRunner.MoveToByName("Printer Name Edit", 5); - testRunner.MoveToByName("Auto Connect Checkbox", 5); - testRunner.MoveToByName("Baud Rate Edit", 5); - testRunner.MoveToByName("Printer Name Edit", 5); + testRunner.ClickByName("Slice Settings Tab", .1); + testRunner.ClickByName("Slice Settings Tab", .1); + testRunner.ClickByName("Slice Settings Tab", .1); + testRunner.ClickByName("Printer Tab", .2); + testRunner.ClickByName("Connection Tab", .1); + testRunner.MoveToByName("Printer Name Edit", .1); + testRunner.MoveToByName("Auto Connect Checkbox", .1); + testRunner.MoveToByName("Baud Rate Edit", .1); + testRunner.MoveToByName("Printer Name Edit", .1); testRunner.Dispose(); } diff --git a/ControlElements/TextImageButtonFactory.cs b/ControlElements/TextImageButtonFactory.cs index e79469087..b5f4972b0 100644 --- a/ControlElements/TextImageButtonFactory.cs +++ b/ControlElements/TextImageButtonFactory.cs @@ -233,15 +233,17 @@ namespace MatterHackers.MatterControl Button editButton; if (ActiveTheme.Instance.IsDarkTheme) { - editButton = new Button(0, 0, new ButtonViewThreeImage(SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White), - SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Gray), - normalImage)); + editButton = new Button(0, 0, new ButtonViewThreeImage( + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(.8).GetAsRGBA_Bytes()), + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(.9).GetAsRGBA_Bytes()), + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(1).GetAsRGBA_Bytes()))); } else { - editButton = new Button(0, 0, new ButtonViewThreeImage(normalImage, - SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Gray), - SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White))); + editButton = new Button(0, 0, new ButtonViewThreeImage( + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(.4).GetAsRGBA_Bytes()), + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(.2).GetAsRGBA_Bytes()), + SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.White.AdjustLightness(0).GetAsRGBA_Bytes()))); } return editButton; diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index 28275cebb..e13fecb09 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -591,7 +591,6 @@ namespace MatterHackers.MatterControl if (firstDraw) { - DrawAfter += ShowNamesUnderMouse; firstDraw = false; foreach (string arg in commandLineArgs) { diff --git a/SlicerConfiguration/SettingsControlSelectors.cs b/SlicerConfiguration/SettingsControlSelectors.cs index 481f25de4..0f8863def 100644 --- a/SlicerConfiguration/SettingsControlSelectors.cs +++ b/SlicerConfiguration/SettingsControlSelectors.cs @@ -92,6 +92,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration editButton = TextImageButtonFactory.GetThemedEditButton(); + editButton.ToolTipText = "Edit Selected Setting".Localize(); + editButton.VAnchor = VAnchor.ParentCenter; editButton.Margin = new BorderDouble(left: 6); editButton.Click += (sender, e) => diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index 005618e29..15d60e969 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -4855,3 +4855,9 @@ Translated:Details English:Edit Printer Settings Translated:Edit Printer Settings +English:Edit Selected Setting +Translated:Edit Selected Setting + +English:Edit Current Printer Settings +Translated:Edit Current Printer Settings + diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index b5a4de982..fe5151864 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit b5a4de982723c0e453a77579e1b4903f1c0bca7c +Subproject commit fe51518649cfd8207cccab18ee9f1dc262eb71b5