Working to make the icons scale better on high res screens.

This commit is contained in:
larsbrubaker 2016-05-07 17:18:05 -07:00
parent 64584ba88b
commit 371561a6f7
34 changed files with 38 additions and 63 deletions

View file

@ -234,10 +234,7 @@ namespace MatterHackers.MatterControl.ActionBar
{
ImageButtonFactory imageButtonFactory = new ImageButtonFactory();
imageButtonFactory.InvertImageColor = false;
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png");
levelingImage.SetRecieveBlender(new BlenderPreMultBGRA());
int iconSize = (int)(16 * GuiWidget.DeviceScale);
levelingImage = ImageBuffer.CreateScaledImage(levelingImage, iconSize, iconSize);
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png", 16, 16);
Button autoLevelButton = imageButtonFactory.Generate(levelingImage, levelingImage);
autoLevelButton.Cursor = Cursors.Hand;
autoLevelButton.Margin = new Agg.BorderDouble(top: 3);

View file

@ -27,12 +27,15 @@ of the authors and should not be interpreted as representing official policies,
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;
using MatterHackers.Localizations;
using MatterHackers.MatterControl.PrinterControls.PrinterConnections;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.VectorMath;
using System;
namespace MatterHackers.MatterControl
@ -54,7 +57,8 @@ namespace MatterHackers.MatterControl
this.SelectedValue = ActiveSliceSettings.Instance.Id();
}
this.AddItem(InvertLightness.DoInvertLightness(StaticData.Instance.LoadIcon("icon_circle_plus.png")), "Add New Printer...", "new");
ImageBuffer plusImage = StaticData.Instance.LoadIcon("icon_plus.png", 32, 32);
this.AddItem(plusImage, "Add New Printer...", "new");
this.SelectionChanged += (s, e) =>
{

View file

@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project.
*/
using MatterHackers.Agg;
using MatterHackers.Agg.PlatformAbstract;
using MatterHackers.Agg.UI;
using MatterHackers.Localizations;
using MatterHackers.MatterControl.CustomWidgets;
@ -98,7 +99,7 @@ namespace MatterHackers.MatterControl
TextImageButtonFactory advancedControlsButtonFactory = new TextImageButtonFactory();
advancedControlsButtonFactory.fontSize = 14;
advancedControlsButtonFactory.invertImageLocation = false;
backButton = advancedControlsButtonFactory.Generate(LocalizedString.Get("Back"), "icon_arrow_left_32x32.png");
backButton = advancedControlsButtonFactory.Generate(LocalizedString.Get("Back"), StaticData.Instance.LoadIcon("icon_arrow_left_32x32.png", 32,32));
backButton.ToolTipText = "Switch to Queue, Library and History".Localize();
backButton.Margin = new BorderDouble(right: 3);
backButton.VAnchor = VAnchor.ParentBottom;

View file

@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project.
*/
using MatterHackers.Agg;
using MatterHackers.Agg.PlatformAbstract;
using MatterHackers.Agg.UI;
using MatterHackers.Localizations;
using MatterHackers.MatterControl.CustomWidgets;
@ -83,7 +84,7 @@ namespace MatterHackers.MatterControl
invertImageLocation = true
};
Button advancedControlsLinkButton = advancedControlsButtonFactory.Generate(LocalizedString.Get("Settings\n& Controls"), "icon_arrow_right_32x32.png");
Button advancedControlsLinkButton = advancedControlsButtonFactory.Generate(LocalizedString.Get("Settings\n& Controls"), StaticData.Instance.LoadIcon("icon_arrow_right_32x32.png", 32,32));
advancedControlsLinkButton.Name = "SettingsAndControls";
advancedControlsLinkButton.ToolTipText = "Switch to Settings, Controls and Options".Localize();
advancedControlsLinkButton.Margin = new BorderDouble(right: 3);

View file

@ -48,7 +48,10 @@ namespace MatterHackers.MatterControl.ConfigurationPage
buttonRow.HAnchor = HAnchor.ParentLeftRight;
buttonRow.Margin = new BorderDouble(0, 4);
Button editButton = textImageButtonFactory.GenerateEditButton();
Button editButton = TextImageButtonFactory.GetThemedEditButton();
editButton.Margin = new BorderDouble(2, 2, 2, 0);
editButton.VAnchor = Agg.UI.VAnchor.ParentTop;
editButton.VAnchor = VAnchor.ParentCenter;
editButton.Click += (sender, e) =>
{
@ -77,10 +80,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage
UiThread.RunOnIdle(() => LevelWizardBase.ShowPrintLevelWizard(LevelWizardBase.RuningState.UserRequestedCalibration));
};
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png");
levelingImage.SetRecieveBlender(new BlenderPreMultBGRA());
int iconSize = (int)(24 * GuiWidget.DeviceScale);
levelingImage = ImageBuffer.CreateScaledImage(levelingImage, iconSize, iconSize);
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png", 24, 24);
if (!ActiveTheme.Instance.IsDarkTheme)
{

View file

@ -168,10 +168,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage
notificationSettingsLabel.TextColor = ActiveTheme.Instance.PrimaryTextColor;
notificationSettingsLabel.VAnchor = VAnchor.ParentCenter;
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png");
levelingImage.SetRecieveBlender(new BlenderPreMultBGRA());
int iconSize = (int)(24 * GuiWidget.DeviceScale);
levelingImage = ImageBuffer.CreateScaledImage(levelingImage, iconSize, iconSize);
ImageBuffer levelingImage = StaticData.Instance.LoadIcon("leveling_32x32.png", 24, 24);
if (!ActiveTheme.Instance.IsDarkTheme)
{

View file

@ -188,27 +188,6 @@ namespace MatterHackers.MatterControl
return textImageButton;
}
private ImageBuffer LoadUpButtonImage(string imageName)
{
ImageBuffer buffer = new ImageBuffer(10, 10, 32, new BlenderBGRA());
StaticData.Instance.LoadIcon(imageName, buffer);
if (!ActiveTheme.Instance.IsDarkTheme && AllowThemeToAdjustImage)
{
InvertLightness.DoInvertLightness(buffer);
}
return buffer;
}
public Button GenerateEditButton()
{
Button editButton = GetThemedEditButton();
editButton.Margin = new BorderDouble(2, 2, 2, 0);
editButton.VAnchor = Agg.UI.VAnchor.ParentTop;
return editButton;
}
public GuiWidget GenerateGroupBoxLabelWithEdit(TextWidget textWidget, out Button editButton)
{
FlowLayoutWidget groupLableAndEditControl = new FlowLayoutWidget();
@ -226,22 +205,20 @@ namespace MatterHackers.MatterControl
public static Button GetThemedEditButton()
{
ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png");
int iconSize = (int)(16 * GuiWidget.DeviceScale);
normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize);
ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png", 16, 16);
Button editButton;
if (!ActiveTheme.Instance.IsDarkTheme)
if (ActiveTheme.Instance.IsDarkTheme)
{
editButton = new Button(0, 0, new ButtonViewThreeImage(WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Black),
WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray),
editButton = new Button(0, 0, new ButtonViewThreeImage(SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Black),
SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Gray),
normalImage));
}
else
{
editButton = new Button(0, 0, new ButtonViewThreeImage(normalImage,
WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Gray),
WhiteToColor.CreateWhiteToColor(normalImage, RGBA_Bytes.Black)));
SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Gray),
SetToColor.CreateSetToColor(normalImage, RGBA_Bytes.Black)));
}
return editButton;
@ -280,7 +257,7 @@ namespace MatterHackers.MatterControl
return textImageCheckBoxButton;
}
public Button GenerateFromImages(string label, ImageBuffer normalImage, ImageBuffer hoverImage = null, ImageBuffer pressedImage = null, ImageBuffer disabledImage = null, bool centerText = false)
public Button Generate(string label, ImageBuffer normalImage, ImageBuffer hoverImage = null, ImageBuffer pressedImage = null, ImageBuffer disabledImage = null, bool centerText = false)
{
//Create button based on view container widget
ButtonViewStates buttonViewWidget = getButtonView(label, normalImage, hoverImage, pressedImage, disabledImage, centerText);
@ -382,7 +359,7 @@ namespace MatterHackers.MatterControl
disabledImage = new ImageBuffer(normalImage);
}
if (!ActiveTheme.Instance.IsDarkTheme
if (ActiveTheme.Instance.IsDarkTheme
&& AllowThemeToAdjustImage)
{
if (normalImage != null) InvertLightness.DoInvertLightness(normalImage);

View file

@ -99,9 +99,7 @@ namespace MatterHackers.Agg.UI
tabTitle.AutoExpandBoundsToText = true;
leftToRight.AddChild(tabTitle);
ImageBuffer popOutImageClick = StaticData.Instance.LoadIcon("icon_pop_out_32x32.png");
int iconSize = (int)(16 * GuiWidget.DeviceScale);
popOutImageClick = ImageBuffer.CreateScaledImage(popOutImageClick, iconSize, iconSize);
ImageBuffer popOutImageClick = StaticData.Instance.LoadIcon("icon_pop_out_32x32.png", 16, 16);
if (ActiveTheme.Instance.IsDarkTheme)
{
InvertLightness.DoInvertLightness(popOutImageClick);

View file

@ -212,16 +212,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
addButton.Enabled = false;
}
ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png");
int iconSize = (int)(14 * GuiWidget.DeviceScale);
normalImage = ImageBuffer.CreateScaledImage(normalImage, iconSize, iconSize);
ImageBuffer normalImage = StaticData.Instance.LoadIcon("icon_edit_32x32.png", 14, 14);
if (!ActiveTheme.Instance.IsDarkTheme)
{
InvertLightness.DoInvertLightness(normalImage);
}
Button enterEdittingButton = textImageButtonFactory.GenerateFromImages("Edit".Localize(), normalImage);
Button enterEdittingButton = textImageButtonFactory.Generate("Edit".Localize(), normalImage);
enterEdittingButton.Name = "3D View Edit";
enterEdittingButton.Margin = new BorderDouble(right: 4);
enterEdittingButton.Click += (sender, e) =>
@ -1148,7 +1146,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
FlowLayoutWidget rotateButtonContainer = new FlowLayoutWidget(FlowDirection.LeftToRight);
rotateButtonContainer.HAnchor = HAnchor.ParentLeftRight;
Button rotateXButton = textImageButtonFactory.Generate("", "icon_rotate_32x32.png");
ImageBuffer rotateImage = StaticData.Instance.LoadIcon("icon_rotate_32x32.png", 32, 32);
Button rotateXButton = textImageButtonFactory.Generate("", rotateImage);
TextWidget centeredX = new TextWidget("X", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor); centeredX.Margin = new BorderDouble(3, 0, 0, 0); centeredX.AnchorCenter(); rotateXButton.AddChild(centeredX);
rotateButtonContainer.AddChild(rotateXButton);
rotateControls.Add(rotateXButton);
@ -1166,7 +1165,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
};
Button rotateYButton = textImageButtonFactory.Generate("", "icon_rotate_32x32.png");
Button rotateYButton = textImageButtonFactory.Generate("", rotateImage);
TextWidget centeredY = new TextWidget("Y", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor); centeredY.Margin = new BorderDouble(3, 0, 0, 0); centeredY.AnchorCenter(); rotateYButton.AddChild(centeredY);
rotateButtonContainer.AddChild(rotateYButton);
rotateControls.Add(rotateYButton);
@ -1184,7 +1183,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
};
Button rotateZButton = textImageButtonFactory.Generate("", "icon_rotate_32x32.png");
Button rotateZButton = textImageButtonFactory.Generate("", rotateImage);
TextWidget centeredZ = new TextWidget("Z", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor); centeredZ.Margin = new BorderDouble(3, 0, 0, 0); centeredZ.AnchorCenter(); rotateZButton.AddChild(centeredZ);
rotateButtonContainer.AddChild(rotateZButton);
rotateControls.Add(rotateZButton);

View file

@ -43,6 +43,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MatterHackers.Agg.PlatformAbstract;
namespace MatterHackers.MatterControl.PrintQueue
{
@ -175,7 +176,7 @@ namespace MatterHackers.MatterControl.PrintQueue
buttonPanel1.Padding = new BorderDouble(0, 3);
buttonPanel1.MinimumSize = new Vector2(0, 46);
{
addToQueueButton = textImageButtonFactory.Generate(LocalizedString.Get("Add"), "icon_circle_plus.png");
addToQueueButton = textImageButtonFactory.Generate(LocalizedString.Get("Add"), StaticData.Instance.LoadIcon("icon_plus.png", 32, 32));
addToQueueButton.ToolTipText = "Add an .stl, .amf, .gcode or .zip file to the Queue".Localize();
buttonPanel1.AddChild(addToQueueButton);
addToQueueButton.Margin = new BorderDouble(0, 0, 3, 0);
@ -184,7 +185,7 @@ namespace MatterHackers.MatterControl.PrintQueue
// put in the creator button
{
createButton = textImageButtonFactory.Generate(LocalizedString.Get("Create"), "icon_creator_white_32x32.png");
createButton = textImageButtonFactory.Generate(LocalizedString.Get("Create"), StaticData.Instance.LoadIcon("icon_creator.png", 32, 32));
createButton.ToolTipText = "Choose a Create Tool to generate custom designs".Localize();
createButton.Name = "Design Tool Button";
buttonPanel1.AddChild(createButton);
@ -199,7 +200,7 @@ namespace MatterHackers.MatterControl.PrintQueue
if (OemSettings.Instance.ShowShopButton)
{
shopButton = textImageButtonFactory.Generate(LocalizedString.Get("Buy Materials"), "icon_shopping_cart_32x32.png");
shopButton = textImageButtonFactory.Generate(LocalizedString.Get("Buy Materials"), StaticData.Instance.LoadIcon("icon_shopping_cart_32x32.png", 32,32));
shopButton.ToolTipText = "Shop online for printing materials".Localize();
shopButton.Name = "Buy Materials Button";
buttonPanel1.AddChild(shopButton);

View file

@ -239,7 +239,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
menuItem.Selected += MenuItem_Selected;
}
MenuItem addNewPreset = dropDownList.AddItem(InvertLightness.DoInvertLightness(StaticData.Instance.LoadIcon("icon_circle_plus.png")), "Add New Setting...", "new");
MenuItem addNewPreset = dropDownList.AddItem(StaticData.Instance.LoadIcon("icon_plus.png", 32, 32), "Add New Setting...", "new");
addNewPreset.Selected += onNewItemSelect;
if (false)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

BIN
StaticData/Icons/424.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 809 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 809 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 1,014 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 951 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 969 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 1,013 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

After

Width:  |  Height:  |  Size: 520 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 B

After

Width:  |  Height:  |  Size: 694 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 740 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

After

Width:  |  Height:  |  Size: 989 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

After

Width:  |  Height:  |  Size: 742 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 999 B

After

Width:  |  Height:  |  Size: 1,008 B

Before After
Before After

@ -1 +1 @@
Subproject commit 0b49ea8a261eeb1193bdabdf04c628652d835dcc
Subproject commit 58f13d68ed9ada8122898c67a982f63d2805f856

@ -1 +1 @@
Subproject commit 772625e6147a994e8f6ed342377bbdbe958943d7
Subproject commit 7f9f7d561325a32c592ae5dabe5358fe3326a794