From 1afeb5166a6cda2cb178f5c68cabde3136d58663 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Tue, 29 Dec 2015 16:41:51 -0800 Subject: [PATCH] Removed some redundant icons Made touch scale the edit pencil icon. --- .../HTMLParser/ImageWidget_AsyncLoadOnDraw.cs | 4 +- ControlElements/ImageButtonFactory.cs | 50 ++++++++++++++++-- ControlElements/TextImageButtonFactory.cs | 25 +++++++-- .../SettingsControlSelectors.cs | 15 ++++-- StaticData/Icons/296.png | Bin 455 -> 0 bytes StaticData/Icons/icon_edit_black.png | Bin 334 -> 0 bytes StaticData/Icons/icon_edit_gray.png | Bin 442 -> 0 bytes StaticData/Icons/icon_edit_white_32x32.png | Bin 0 -> 586 bytes 8 files changed, 81 insertions(+), 13 deletions(-) delete mode 100644 StaticData/Icons/296.png delete mode 100644 StaticData/Icons/icon_edit_black.png delete mode 100644 StaticData/Icons/icon_edit_gray.png create mode 100644 StaticData/Icons/icon_edit_white_32x32.png diff --git a/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs b/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs index c142af3e6..c7c9ca0c0 100644 --- a/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs +++ b/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs @@ -84,7 +84,7 @@ namespace MatterHackers.MatterControl void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e) { - try // if we get a bad result we can get a target ivocation exception. In that case just don't show anything + try // if we get a bad result we can get a target invocation exception. In that case just don't show anything { byte[] raw = e.Result; Stream stream = new MemoryStream(raw); @@ -95,7 +95,7 @@ namespace MatterHackers.MatterControl { // The image sampler we use is a 2x2 filter so we need to scale by a max of 1/2 if we want to get good results. // So we scale as many times as we need to to get the Image to be the right size. - // If this were going to be a non-uniform scale we could do the x and y separatly to get better results. + // If this were going to be a non-uniform scale we could do the x and y separately to get better results. ImageBuffer halfImage = new ImageBuffer(unScaledImage.Width / 2, unScaledImage.Height / 2, 32, scalingBlender); halfImage.NewGraphics2D().Render(unScaledImage, 0, 0, 0, halfImage.Width / (double)unScaledImage.Width, halfImage.Height / (double)unScaledImage.Height); unScaledImage = halfImage; diff --git a/ControlElements/ImageButtonFactory.cs b/ControlElements/ImageButtonFactory.cs index 7661ce65b..bef906ba2 100644 --- a/ControlElements/ImageButtonFactory.cs +++ b/ControlElements/ImageButtonFactory.cs @@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project. */ using MatterHackers.Agg; +using MatterHackers.Agg.Image; using MatterHackers.Agg.ImageProcessing; using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; @@ -72,10 +73,51 @@ namespace MatterHackers.MatterControl disabledImageName = normalImageName; } - Agg.Image.ImageBuffer normalImage = StaticData.Instance.LoadIcon(normalImageName); - Agg.Image.ImageBuffer pressedImage = StaticData.Instance.LoadIcon(pressedImageName); - Agg.Image.ImageBuffer hoverImage = StaticData.Instance.LoadIcon(hoverImageName); - Agg.Image.ImageBuffer disabledImage = StaticData.Instance.LoadIcon(disabledImageName); + ImageBuffer normalImage = StaticData.Instance.LoadIcon(normalImageName); + ImageBuffer pressedImage = StaticData.Instance.LoadIcon(pressedImageName); + ImageBuffer hoverImage = StaticData.Instance.LoadIcon(hoverImageName); + ImageBuffer disabledImage = StaticData.Instance.LoadIcon(disabledImageName); + + if (!ActiveTheme.Instance.IsDarkTheme && invertImageColor) + { + InvertLightness.DoInvertLightness(normalImage); + InvertLightness.DoInvertLightness(pressedImage); + InvertLightness.DoInvertLightness(hoverImage); + InvertLightness.DoInvertLightness(disabledImage); + } + + if (ActiveTheme.Instance.IsTouchScreen) + { + //normalImage.NewGraphics2D().Line(0, 0, normalImage.Width, normalImage.Height, RGBA_Bytes.Violet); + RoundedRect rect = new RoundedRect(pressedImage.GetBounds(), 0); + pressedImage.NewGraphics2D().Render(new Stroke(rect, 3), ActiveTheme.Instance.PrimaryTextColor); + } + + ButtonViewStates buttonViewWidget = new ButtonViewStates( + new ImageWidget(normalImage), + new ImageWidget(hoverImage), + new ImageWidget(pressedImage), + new ImageWidget(disabledImage) + ); + + //Create button based on view container widget + Button imageButton = new Button(0, 0, buttonViewWidget); + imageButton.Margin = new BorderDouble(0); + imageButton.Padding = new BorderDouble(0); + return imageButton; + } + + public Button Generate(ImageBuffer normalImage, ImageBuffer hoverImage, ImageBuffer pressedImage = null, ImageBuffer disabledImage = null) + { + if (pressedImage == null) + { + pressedImage = hoverImage; + } + + if (disabledImage == null) + { + disabledImage = normalImage; + } if (!ActiveTheme.Instance.IsDarkTheme && invertImageColor) { diff --git a/ControlElements/TextImageButtonFactory.cs b/ControlElements/TextImageButtonFactory.cs index bd4daea42..ae1f8e727 100644 --- a/ControlElements/TextImageButtonFactory.cs +++ b/ControlElements/TextImageButtonFactory.cs @@ -33,6 +33,7 @@ using MatterHackers.Agg.ImageProcessing; using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; using MatterHackers.Agg.VertexSource; +using MatterHackers.ImageProcessing; using MatterHackers.VectorMath; using System; @@ -201,7 +202,13 @@ namespace MatterHackers.MatterControl public Button GenerateEditButton() { - Button editButton = new Button(0, 0, new ButtonViewThreeImage(LoadUpButtonImage("icon_edit_white.png"), LoadUpButtonImage("icon_edit_gray.png"), LoadUpButtonImage("icon_edit_black.png"))); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_white_32x32.png"); + int iconSize = (int)(16 * TextWidget.GlobalPointSizeScaleRatio); + normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize); + + Button editButton = new Button(0, 0, new ButtonViewThreeImage(normalImage, + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray), + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Black))); editButton.Margin = new BorderDouble(2, 2, 2, 0); editButton.VAnchor = Agg.UI.VAnchor.ParentTop; return editButton; @@ -211,7 +218,13 @@ namespace MatterHackers.MatterControl { FlowLayoutWidget groupLableAndEditControl = new FlowLayoutWidget(); - editButton = new Button(0, 0, new ButtonViewThreeImage(LoadUpButtonImage("icon_edit_white.png"), LoadUpButtonImage("icon_edit_gray.png"), LoadUpButtonImage("icon_edit_black.png"))); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_white_32x32.png"); + int iconSize = (int)(16 * TextWidget.GlobalPointSizeScaleRatio); + normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize); + + editButton = new Button(0, 0, new ButtonViewThreeImage(normalImage, + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray), + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Black))); editButton.Margin = new BorderDouble(2, 2, 2, 0); editButton.VAnchor = Agg.UI.VAnchor.ParentBottom; textWidget.VAnchor = Agg.UI.VAnchor.ParentBottom; @@ -225,7 +238,13 @@ namespace MatterHackers.MatterControl { FlowLayoutWidget groupLableAndEditControl = new FlowLayoutWidget(); - editButton = new Button(0, 0, new ButtonViewThreeImage(LoadUpButtonImage("icon_edit_white.png"), LoadUpButtonImage("icon_edit_gray.png"), LoadUpButtonImage("icon_edit_black.png"))); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_white_32x32.png"); + int iconSize = (int)(16 * TextWidget.GlobalPointSizeScaleRatio); + normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize); + + editButton = new Button(0, 0, new ButtonViewThreeImage(normalImage, + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray), + WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Black))); editButton.Margin = new BorderDouble(2, 2, 2, 0); editButton.VAnchor = Agg.UI.VAnchor.ParentBottom; TextWidget textLabel = new TextWidget(label, textColor: ActiveTheme.Instance.PrimaryTextColor, pointSize: 12); diff --git a/SlicerConfiguration/SettingsControlSelectors.cs b/SlicerConfiguration/SettingsControlSelectors.cs index 4b80980e8..1c9c8d426 100644 --- a/SlicerConfiguration/SettingsControlSelectors.cs +++ b/SlicerConfiguration/SettingsControlSelectors.cs @@ -29,7 +29,10 @@ either expressed or implied, of the FreeBSD Project. //#define DO_IN_PLACE_EDIT using MatterHackers.Agg; +using MatterHackers.Agg.Image; +using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; +using MatterHackers.ImageProcessing; using MatterHackers.Localizations; using MatterHackers.MatterControl.CustomWidgets; using MatterHackers.VectorMath; @@ -93,7 +96,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration container.HAnchor = HAnchor.ParentLeftRight; container.Padding = new BorderDouble(6, 0); - editButton = imageButtonFactory.Generate("icon_edit_white.png", "icon_edit_gray.png"); + ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_white_32x32.png"); + int iconSize = (int)(16 * TextWidget.GlobalPointSizeScaleRatio); + normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize); + + editButton = imageButtonFactory.Generate(normalImage, WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray)); editButton.VAnchor = VAnchor.ParentCenter; editButton.Margin = new BorderDouble(right: 6); @@ -252,7 +259,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { dropDownList.SelectedValue = ActivePrinterProfile.Instance.GetMaterialSetting(presetIndex).ToString(); } - catch(Exception e) + catch (Exception e) { Debug.Print(e.Message); GuiWidget.BreakInDebugger(); @@ -265,7 +272,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { dropDownList.SelectedValue = ActivePrinterProfile.Instance.ActiveQualitySettingsID.ToString(); } - catch(Exception e) + catch (Exception e) { Debug.Print(e.Message); GuiWidget.BreakInDebugger(); @@ -323,7 +330,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { SelectedLabel = MatterSliceInfo.DisplayName; } - catch(Exception e) + catch (Exception e) { Debug.Print(e.Message); GuiWidget.BreakInDebugger(); diff --git a/StaticData/Icons/296.png b/StaticData/Icons/296.png deleted file mode 100644 index a657ac3bbf139d2434e4437327685b1b50d375aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>l znEKA@_iHZ3y|=W@-g@ojU3Zm22K!GjN*Uc9Yq~rZciidlkQ8_xBUEAifyd{gEdR>m zMQkw)#&HvSBVNc9yn6b4*@;}9nrpAWSS&taQZSV%u2(sD2~*Dv{a5-QDw*FgU;7&K z>7F$A%bJ4+xL1j9Iu@#3bMZiRsJy{1PmY?C4pkxYCRLg&`*IZSuHu*cYrwKENn!3P ze(App(l#^wYBc9JT6f-!x5mC?<#z||3u_j59ozA(X^mJ0lbor()|-zl+>kn*gGH=|qX0<`e&a18W z7=>5rEuPcSQS8^Sr{l@oV*kLq|GueDkohD3k<}|DlI|y!qg!tGsFN555uYNNnbg=3z@sY)%kzyb;>GU15fZZrj#5 zAH=@Tz5Af?;X|I!_4AB*4!^l|aGmAVAih@>^uCPuAk_=I~hwJN*8hn6*T2`T^NDPdgtl++S*NXZgFweCZKdt=omm ldlpyPolKndXMY{z=@#SbQr%DO85kHCJYD@<);T3K0RZkgjk5p% diff --git a/StaticData/Icons/icon_edit_gray.png b/StaticData/Icons/icon_edit_gray.png deleted file mode 100644 index 33cd953cc0e3b1e2a206ab916215d11956a05177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>lg&|B(B-Rn(wHyWkdIZ)~=}?y&WrcnqS=1h`7NK zW>&Z0h*#X~a_3DgZ;oB&;rVR;{NWiM<5jP%CZx=Ga;G9cFRc06EEWF(!PlPGqO))5 zoLqcy#Y2mI4@BoZ(!fp30+#Pi>pc@G?Bv#CoaHf)!8#If%YZ(DKjgI>9~ z)vGpFbe*>d3~kM;hqQ#H2cBq_t-U5SGBTXwe6mU{91GC zd_~X0?sJZOUbSn&6UAvCrH_BuyK0xA@y&y}civ2vQ?J~@8#kk++}I*C^!rEg)jOKv zExP0wE{;kPQELrVp;e_U4oe~0&;(F^XKaiQ4}UZ148Ew+gBtgTT>d|}$H2hA;OXk;vd$@?2>|;-zwrP7 diff --git a/StaticData/Icons/icon_edit_white_32x32.png b/StaticData/Icons/icon_edit_white_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..e705bcbecf176d7ea8e6fd7a8b57c9ffe045a1a1 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O z`AMk?p1FzXsX?iUDV2pMQ*9U+7~gohIEGZ*O8WEvzx`ncCNZhm=Xs9QIppvhnd4By z*m0fVWBCrQ0FDbBs~J8TD!lvE&y~lpk0_DBv~oe|tt}!A zuRg~*{E<2NK_e^D?*!wt3r#LeS&}-X|68V&RBLXXGlAKG^`w%@zlZ;SI9gk_O6hTO zuJAv*phhtxDuVGy@rH;Hu*@*Zc)RCYD+ z2Hk0r`N%u#hnmCd@>SdCTx1Pf5Na~>0*lAyW!6USd{Xy8r+H literal 0 HcmV?d00001