mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
ide: IconDes improvements
This commit is contained in:
parent
237ab0ea97
commit
9a3d83e177
4 changed files with 21 additions and 24 deletions
|
|
@ -349,7 +349,7 @@ private:
|
||||||
void Upscale();
|
void Upscale();
|
||||||
|
|
||||||
void PlaceDlg(TopWindow& dlg);
|
void PlaceDlg(TopWindow& dlg);
|
||||||
void Couple(TopWindow& dlg, EditDouble& level, SliderCtrl& slider, double max, double init = 0);
|
void Couple(TopWindow& dlg, EditDouble& level, SliderCtrl& slider, double max, double init = 0, double offset = 0);
|
||||||
void Couple(TopWindow& dlg, EditInt& level, SliderCtrl& slider, int max, int init = 0);
|
void Couple(TopWindow& dlg, EditInt& level, SliderCtrl& slider, int max, int init = 0);
|
||||||
Image ImageStart();
|
Image ImageStart();
|
||||||
void ImageSet(const Image& m);
|
void ImageSet(const Image& m);
|
||||||
|
|
|
||||||
|
|
@ -32,20 +32,15 @@ LAYOUT(FilePropertiesLayout, 176, 68)
|
||||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(104, 64).TopPosZ(36, 24))
|
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(104, 64).TopPosZ(36, 24))
|
||||||
END_LAYOUT
|
END_LAYOUT
|
||||||
|
|
||||||
LAYOUT(SharpenLayout, 220, 68)
|
LAYOUT(SharpenLayout, 148, 152)
|
||||||
ITEM(Upp::Label, dv___0, SetLabel(t_("Level")).LeftPosZ(8, 32).TopPosZ(8, 19))
|
ITEM(Upp::Button, ok, SetLabel(t_("OK")).LeftPosZ(8, 64).TopPosZ(120, 24))
|
||||||
ITEM(Upp::EditDoubleSpin, level, SetInc(0.05).Min(-2).Max(2).NotNull(true).LeftPosZ(44, 64).TopPosZ(8, 19))
|
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(76, 64).TopPosZ(120, 24))
|
||||||
ITEM(Upp::Label, dv___2, SetLabel(t_("Radius")).LeftPosZ(128, 36).TopPosZ(8, 19))
|
ITEM(Upp::Label, dv___2, SetLabel(t_("Radius")).LeftPosZ(4, 64).TopPosZ(4, 19))
|
||||||
ITEM(Upp::EditIntSpin, passes, Min(1).Max(10).NotNull(true).LeftPosZ(168, 44).TopPosZ(8, 19))
|
ITEM(Upp::EditIntSpin, radius, Min(0).Max(255).LeftPosZ(76, 64).TopPosZ(4, 19))
|
||||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).LeftPosZ(80, 64).TopPosZ(36, 24))
|
ITEM(Upp::SliderCtrl, slider, LeftPosZ(4, 136).TopPosZ(28, 24))
|
||||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(148, 64).TopPosZ(36, 24))
|
ITEM(Upp::Label, dv___5, SetLabel(t_("Level")).LeftPosZ(4, 64).TopPosZ(60, 19))
|
||||||
END_LAYOUT
|
ITEM(Upp::EditDoubleSpin, level, SetInc(0.05).Min(0).Max(1).NotNull(true).LeftPosZ(76, 64).TopPosZ(60, 19))
|
||||||
|
ITEM(Upp::SliderCtrl, slider2, LeftPosZ(4, 136).TopPosZ(84, 24))
|
||||||
LAYOUT(ColorizeLayout, 148, 68)
|
|
||||||
ITEM(Upp::Label, dv___0, SetLabel(t_("Level")).LeftPosZ(8, 32).TopPosZ(8, 19))
|
|
||||||
ITEM(Upp::EditDoubleSpin, level, SetInc(0.05).Min(0).Max(1).NotNull(true).LeftPosZ(44, 64).TopPosZ(8, 19))
|
|
||||||
ITEM(Upp::Button, ok, SetLabel(t_("OK")).LeftPosZ(8, 64).TopPosZ(36, 24))
|
|
||||||
ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(76, 64).TopPosZ(36, 24))
|
|
||||||
END_LAYOUT
|
END_LAYOUT
|
||||||
|
|
||||||
LAYOUT(ImageDblLayout, 148, 96)
|
LAYOUT(ImageDblLayout, 148, 96)
|
||||||
|
|
|
||||||
|
|
@ -253,14 +253,14 @@ void IconDes::BlurSharpen()
|
||||||
WithSharpenLayout<TopWindow> dlg;
|
WithSharpenLayout<TopWindow> dlg;
|
||||||
CtrlLayoutOKCancel(dlg, "Blur/Sharpen");
|
CtrlLayoutOKCancel(dlg, "Blur/Sharpen");
|
||||||
PlaceDlg(dlg);
|
PlaceDlg(dlg);
|
||||||
dlg.level <<= 0;
|
|
||||||
dlg.level <<= dlg.Breaker();
|
Couple(dlg, dlg.level, dlg.slider2, 1);
|
||||||
dlg.passes <<= 1;
|
Couple(dlg, dlg.radius, dlg.slider, 10, 1);
|
||||||
dlg.passes <<= dlg.Breaker();
|
|
||||||
Image bk = ImageStart();
|
Image bk = ImageStart();
|
||||||
for(;;) {
|
for(;;) {
|
||||||
Image m = bk;
|
Image m = bk;
|
||||||
for(int q = 0; q < (int)~dlg.passes; q++)
|
for(int q = 0; q < (int)~dlg.radius; q++)
|
||||||
m = Sharpen(m, -int(256 * (double)~dlg.level));
|
m = Sharpen(m, -int(256 * (double)~dlg.level));
|
||||||
ImageSet(m);
|
ImageSet(m);
|
||||||
switch(dlg.Run()) {
|
switch(dlg.Run()) {
|
||||||
|
|
@ -349,14 +349,14 @@ void IconDes::Chroma()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconDes::Couple(TopWindow& dlg, EditDouble& level, SliderCtrl& slider, double max, double init)
|
void IconDes::Couple(TopWindow& dlg, EditDouble& level, SliderCtrl& slider, double max, double init, double offset)
|
||||||
{
|
{
|
||||||
level.Max(max);
|
level.Max(max);
|
||||||
level <<= init;
|
level <<= init;
|
||||||
slider.MinMax(0, 1000);
|
slider.MinMax(0, 1000);
|
||||||
slider <<= init * 1000 / max;
|
slider <<= init * 1000 / max;
|
||||||
slider << [=, &dlg, &level, &slider] { level <<= (int)~slider / 1000.0 * max; dlg.Break(); };
|
slider << [=, &dlg, &level, &slider] { level <<= (int)~slider / 1000.0 * max + offset; dlg.Break(); };
|
||||||
level << [=, &dlg, &level, &slider] { slider <<= Nvl(int((double)~level * 1000 / max), 500); dlg.Break(); };
|
level << [=, &dlg, &level, &slider] { slider <<= Nvl(int(((double)~level - offset) * 1000 / max), 500); dlg.Break(); };
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconDes::Couple(TopWindow& dlg, EditInt& level, SliderCtrl& slider, int max, int init)
|
void IconDes::Couple(TopWindow& dlg, EditInt& level, SliderCtrl& slider, int max, int init)
|
||||||
|
|
|
||||||
|
|
@ -73,12 +73,14 @@ Image Smoothen(const Image& img, double level)
|
||||||
|
|
||||||
void IconDes::Smoothen()
|
void IconDes::Smoothen()
|
||||||
{
|
{
|
||||||
WithColorizeLayout<TopWindow> dlg;
|
WithImageDblLayout<TopWindow> dlg;
|
||||||
CtrlLayoutOKCancel(dlg, "Smoothen");
|
CtrlLayoutOKCancel(dlg, "Smoothen");
|
||||||
PlaceDlg(dlg);
|
PlaceDlg(dlg);
|
||||||
|
dlg.txt = "Level";
|
||||||
dlg.level.MinMax(0, 1);
|
dlg.level.MinMax(0, 1);
|
||||||
dlg.level <<= 0.75;
|
dlg.level <<= 0.75;
|
||||||
dlg.level <<= dlg.Breaker();
|
dlg.level <<= dlg.Breaker();
|
||||||
|
Couple(dlg, dlg.level, dlg.slider, 1, 0.75);
|
||||||
Image bk = ImageStart();
|
Image bk = ImageStart();
|
||||||
for(;;) {
|
for(;;) {
|
||||||
ImageSet(::Smoothen(bk, 0.4 * minmax((double)~dlg.level + 0.01, 0.01, 1.1)));
|
ImageSet(::Smoothen(bk, 0.4 * minmax((double)~dlg.level + 0.01, 0.01, 1.1)));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue