mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:27:43 +00:00
PixelPaint: Use the ValueSlider widget for Tool properties
Use the new ValueSlider and get rid of the temporary solution with tooltips :^)
This commit is contained in:
parent
07ad64da8c
commit
868be680c2
10 changed files with 23 additions and 57 deletions
|
@ -11,7 +11,7 @@
|
|||
#include <LibGUI/BoxLayout.h>
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
#include <LibGfx/Color.h>
|
||||
#include <LibGfx/Rect.h>
|
||||
|
||||
|
@ -126,15 +126,12 @@ GUI::Widget* BrushTool::get_properties_widget()
|
|||
size_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
size_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& size_slider = size_container.add<GUI::HorizontalSlider>();
|
||||
size_slider.set_fixed_height(20);
|
||||
auto& size_slider = size_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
size_slider.set_range(1, 100);
|
||||
size_slider.set_value(m_size);
|
||||
size_slider.set_tooltip(String::formatted("{}px", m_size));
|
||||
|
||||
size_slider.on_change = [&](int value) {
|
||||
m_size = value;
|
||||
size_slider.set_tooltip(String::formatted("{}px", value));
|
||||
};
|
||||
|
||||
auto& hardness_container = m_properties_widget->add<GUI::Widget>();
|
||||
|
@ -145,15 +142,12 @@ GUI::Widget* BrushTool::get_properties_widget()
|
|||
hardness_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
hardness_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& hardness_slider = hardness_container.add<GUI::HorizontalSlider>();
|
||||
hardness_slider.set_fixed_height(20);
|
||||
auto& hardness_slider = hardness_container.add<GUI::ValueSlider>(Orientation::Horizontal, "%");
|
||||
hardness_slider.set_range(1, 99);
|
||||
hardness_slider.set_value(m_hardness);
|
||||
hardness_slider.set_tooltip(String::formatted("{}%", m_hardness));
|
||||
|
||||
hardness_slider.on_change = [&](int value) {
|
||||
m_hardness = value;
|
||||
hardness_slider.set_tooltip(String::formatted("{}%", value));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <LibGUI/BoxLayout.h>
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
#include <LibGfx/Bitmap.h>
|
||||
#include <LibGfx/Rect.h>
|
||||
|
||||
|
@ -98,15 +98,12 @@ GUI::Widget* BucketTool::get_properties_widget()
|
|||
threshold_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
threshold_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& threshold_slider = threshold_container.add<GUI::HorizontalSlider>();
|
||||
threshold_slider.set_fixed_height(20);
|
||||
auto& threshold_slider = threshold_container.add<GUI::ValueSlider>(Orientation::Horizontal, "%");
|
||||
threshold_slider.set_range(0, 100);
|
||||
threshold_slider.set_value(m_threshold);
|
||||
threshold_slider.set_tooltip(String::formatted("{}%", m_threshold));
|
||||
|
||||
threshold_slider.on_change = [&](int value) {
|
||||
m_threshold = value;
|
||||
threshold_slider.set_tooltip(String::formatted("{}%", value));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/RadioButton.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
#include <LibGfx/Rect.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
@ -109,15 +109,12 @@ GUI::Widget* EllipseTool::get_properties_widget()
|
|||
thickness_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
thickness_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& thickness_slider = thickness_container.add<GUI::HorizontalSlider>();
|
||||
thickness_slider.set_fixed_height(20);
|
||||
auto& thickness_slider = thickness_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
thickness_slider.set_range(1, 10);
|
||||
thickness_slider.set_value(m_thickness);
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", m_thickness));
|
||||
|
||||
thickness_slider.on_change = [&](int value) {
|
||||
m_thickness = value;
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", value));
|
||||
};
|
||||
|
||||
auto& mode_container = m_properties_widget->add<GUI::Widget>();
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
#include <LibGfx/Bitmap.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
@ -28,7 +28,7 @@ EraseTool::~EraseTool()
|
|||
|
||||
Gfx::IntRect EraseTool::build_rect(Gfx::IntPoint const& pos, Gfx::IntRect const& widget_rect)
|
||||
{
|
||||
const int eraser_size = (m_base_eraser_size * m_thickness);
|
||||
const int eraser_size = m_thickness;
|
||||
const int eraser_radius = eraser_size / 2;
|
||||
const auto ex = pos.x();
|
||||
const auto ey = pos.y();
|
||||
|
@ -83,15 +83,12 @@ GUI::Widget* EraseTool::get_properties_widget()
|
|||
thickness_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
thickness_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& thickness_slider = thickness_container.add<GUI::HorizontalSlider>();
|
||||
thickness_slider.set_fixed_height(20);
|
||||
thickness_slider.set_range(1, 5);
|
||||
auto& thickness_slider = thickness_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
thickness_slider.set_range(1, 50);
|
||||
thickness_slider.set_value(m_thickness);
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", m_base_eraser_size * m_thickness));
|
||||
|
||||
thickness_slider.on_change = [&](int value) {
|
||||
m_thickness = value;
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", m_base_eraser_size * value));
|
||||
};
|
||||
|
||||
auto& checkbox_container = m_properties_widget->add<GUI::Widget>();
|
||||
|
|
|
@ -30,7 +30,6 @@ private:
|
|||
|
||||
bool m_use_secondary_color { false };
|
||||
int m_thickness { 1 };
|
||||
const int m_base_eraser_size { 10 };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
||||
|
@ -114,15 +114,12 @@ GUI::Widget* LineTool::get_properties_widget()
|
|||
thickness_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
thickness_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& thickness_slider = thickness_container.add<GUI::HorizontalSlider>();
|
||||
thickness_slider.set_fixed_height(20);
|
||||
auto& thickness_slider = thickness_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
thickness_slider.set_range(1, 10);
|
||||
thickness_slider.set_value(m_thickness);
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", m_thickness));
|
||||
|
||||
thickness_slider.on_change = [&](int value) {
|
||||
m_thickness = value;
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", value));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
||||
|
@ -77,15 +77,12 @@ GUI::Widget* PenTool::get_properties_widget()
|
|||
thickness_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
thickness_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& thickness_slider = thickness_container.add<GUI::HorizontalSlider>();
|
||||
thickness_slider.set_fixed_height(20);
|
||||
auto& thickness_slider = thickness_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
thickness_slider.set_range(1, 20);
|
||||
thickness_slider.set_value(m_thickness);
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", m_thickness));
|
||||
|
||||
thickness_slider.on_change = [&](int value) {
|
||||
m_thickness = value;
|
||||
thickness_slider.set_tooltip(String::formatted("{}px", value));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Model.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
||||
|
@ -153,16 +153,13 @@ GUI::Widget* RectangleSelectTool::get_properties_widget()
|
|||
feather_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
feather_label.set_fixed_size(80, 20);
|
||||
|
||||
const int feather_slider_max = 10000;
|
||||
auto& feather_slider = feather_container.add<GUI::HorizontalSlider>();
|
||||
feather_slider.set_fixed_height(20);
|
||||
const int feather_slider_max = 100;
|
||||
auto& feather_slider = feather_container.add<GUI::ValueSlider>(Orientation::Horizontal, "%");
|
||||
feather_slider.set_range(0, feather_slider_max);
|
||||
feather_slider.set_value((int)floorf(m_edge_feathering * (float)feather_slider_max));
|
||||
feather_slider.set_tooltip(String::formatted("{:.2}", (float)m_edge_feathering / (float)feather_slider_max));
|
||||
|
||||
feather_slider.on_change = [&](int value) {
|
||||
m_edge_feathering = (float)value / (float)feather_slider_max;
|
||||
feather_slider.set_tooltip(String::formatted("{:.2}", (float)value / (float)feather_slider_max));
|
||||
};
|
||||
|
||||
auto& mode_container = m_properties_widget->add<GUI::Widget>();
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
#include <LibGfx/Bitmap.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
@ -102,15 +102,12 @@ GUI::Widget* SprayTool::get_properties_widget()
|
|||
size_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
size_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& size_slider = size_container.add<GUI::HorizontalSlider>();
|
||||
size_slider.set_fixed_height(20);
|
||||
auto& size_slider = size_container.add<GUI::ValueSlider>(Orientation::Horizontal, "px");
|
||||
size_slider.set_range(1, 20);
|
||||
size_slider.set_value(m_thickness);
|
||||
size_slider.set_tooltip(String::formatted("{}", m_thickness));
|
||||
|
||||
size_slider.on_change = [&](int value) {
|
||||
m_thickness = value;
|
||||
size_slider.set_tooltip(String::formatted("{}", value));
|
||||
};
|
||||
|
||||
auto& density_container = m_properties_widget->add<GUI::Widget>();
|
||||
|
@ -121,15 +118,12 @@ GUI::Widget* SprayTool::get_properties_widget()
|
|||
density_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
density_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& density_slider = density_container.add<GUI::HorizontalSlider>();
|
||||
density_slider.set_fixed_height(30);
|
||||
auto& density_slider = density_container.add<GUI::ValueSlider>(Orientation::Horizontal, "%");
|
||||
density_slider.set_range(1, 100);
|
||||
density_slider.set_value(m_density);
|
||||
density_slider.set_tooltip(String::formatted("{}%", m_density));
|
||||
|
||||
density_slider.on_change = [&](int value) {
|
||||
m_density = value;
|
||||
density_slider.set_tooltip(String::formatted("{}%", value));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "ImageEditor.h"
|
||||
#include <LibGUI/BoxLayout.h>
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Slider.h>
|
||||
#include <LibGUI/ValueSlider.h>
|
||||
|
||||
namespace PixelPaint {
|
||||
|
||||
|
@ -43,15 +43,12 @@ GUI::Widget* ZoomTool::get_properties_widget()
|
|||
sensitivity_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
|
||||
sensitivity_label.set_fixed_size(80, 20);
|
||||
|
||||
auto& sensitivity_slider = sensitivity_container.add<GUI::HorizontalSlider>();
|
||||
sensitivity_slider.set_fixed_height(20);
|
||||
auto& sensitivity_slider = sensitivity_container.add<GUI::ValueSlider>(Orientation::Horizontal, "%");
|
||||
sensitivity_slider.set_range(1, 100);
|
||||
sensitivity_slider.set_value(100 * m_sensitivity);
|
||||
sensitivity_slider.set_tooltip(String::formatted("{:.2}", (double)m_sensitivity / 100.0));
|
||||
|
||||
sensitivity_slider.on_change = [&](int value) {
|
||||
m_sensitivity = (double)value / 100.0;
|
||||
sensitivity_slider.set_tooltip(String::formatted("{:.2}", (double)value / 100.0));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue