Implement more image forms

This commit is contained in:
Ben Olden-Cooligan 2022-11-08 08:00:19 -08:00
parent 5c78d79657
commit 3d601d0a53
7 changed files with 75 additions and 4 deletions

View File

@ -24,6 +24,8 @@ public class MacIconProvider : IIconProvider
{ "weather_sun", "sun.max" },
{ "contrast_with_sun", "sun.max" },
{ "color_management", "paintpalette" },
{ "color_wheel", "paintpalette" },
{ "color_gradient", "square.righthalf.filled" },
{ "contrast", "circle.righthalf.filled" },
{ "contrast_high", "circle.righthalf.filled" },
{ "sharpen", "rhombus" },

View File

@ -23,9 +23,9 @@ public class DesktopSubFormController : IDesktopSubFormController
public void ShowCropForm() => ShowImageForm<FCrop>();
public void ShowBrightnessContrastForm() => ShowImageForm2<BrightContForm>();
public void ShowHueSaturationForm() => ShowImageForm<FHueSaturation>();
public void ShowBlackWhiteForm() => ShowImageForm<FBlackWhite>();
public void ShowSharpenForm() => ShowImageForm<FSharpen>();
public void ShowHueSaturationForm() => ShowImageForm2<HueSatForm>();
public void ShowBlackWhiteForm() => ShowImageForm2<BlackWhiteForm>();
public void ShowSharpenForm() => ShowImageForm2<SharpenForm>();
public void ShowRotateForm() => ShowImageForm<FRotate>();
private void ShowImageForm<T>() where T : ImageForm

View File

@ -38,14 +38,17 @@ public class StubDesktopSubFormController : IDesktopSubFormController
public void ShowHueSaturationForm()
{
ShowImageForm<HueSatForm>();
}
public void ShowBlackWhiteForm()
{
ShowImageForm<BlackWhiteForm>();
}
public void ShowSharpenForm()
{
ShowImageForm<SharpenForm>();
}
public void ShowRotateForm()

View File

@ -0,0 +1,19 @@
namespace NAPS2.EtoForms.Ui;
public class BlackWhiteForm : ImageFormBase
{
private readonly SliderWithTextBox _thresholdSlider = new();
public BlackWhiteForm(Naps2Config config, ThumbnailController thumbnailController, IIconProvider iconProvider) :
base(config, thumbnailController)
{
_thresholdSlider.Icon = iconProvider.GetIcon("contrast_high");
Sliders = new[] { _thresholdSlider };
}
protected override IEnumerable<Transform> Transforms =>
new Transform[]
{
new BlackWhiteTransform(_thresholdSlider.Value)
};
}

View File

@ -0,0 +1,22 @@
namespace NAPS2.EtoForms.Ui;
public class HueSatForm : ImageFormBase
{
private readonly SliderWithTextBox _hueSlider = new();
private readonly SliderWithTextBox _saturationSlider = new();
public HueSatForm(Naps2Config config, ThumbnailController thumbnailController, IIconProvider iconProvider) :
base(config, thumbnailController)
{
_hueSlider.Icon = iconProvider.GetIcon("color_wheel");
_saturationSlider.Icon = iconProvider.GetIcon("color_gradient");
Sliders = new[] { _hueSlider, _saturationSlider };
}
protected override IEnumerable<Transform> Transforms =>
new Transform[]
{
new HueTransform(_hueSlider.Value),
new SaturationTransform(_saturationSlider.Value)
};
}

View File

@ -72,7 +72,7 @@ public abstract class ImageFormBase : EtoDialogBase
{
}
protected override void OnLoad(EventArgs e)
protected override void OnPreLoad(EventArgs e)
{
foreach (var slider in Sliders)
{
@ -90,6 +90,12 @@ public abstract class ImageFormBase : EtoDialogBase
C.OkButton(this, beforeClose: Apply)
)
);
base.OnPreLoad(e);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
_applyToSelected.Text = string.Format(UiStrings.ApplyToSelected, SelectedImages?.Count);

View File

@ -0,0 +1,19 @@
namespace NAPS2.EtoForms.Ui;
public class SharpenForm : ImageFormBase
{
private readonly SliderWithTextBox _sharpenSlider = new();
public SharpenForm(Naps2Config config, ThumbnailController thumbnailController, IIconProvider iconProvider) :
base(config, thumbnailController)
{
_sharpenSlider.Icon = iconProvider.GetIcon("sharpen");
Sliders = new[] { _sharpenSlider };
}
protected override IEnumerable<Transform> Transforms =>
new Transform[]
{
new SharpenTransform(_sharpenSlider.Value)
};
}