PixelPaint: Make CloneTool change cursor temporarily while selecting

This just provides some nice visual feedback when you are in the
middle of selecting a color. An eyedropper might not be the ideal
choice here, but among the cursors we already have it is the
best one.
This commit is contained in:
Mustafa Quraish 2021-09-12 16:57:25 -04:00 committed by Andreas Kling
parent 11263beaca
commit f28b2a875a
Notes: sideshowbarker 2024-07-18 04:00:23 +09:00
2 changed files with 10 additions and 0 deletions

View file

@ -52,6 +52,13 @@ void CloneTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color const& color, Gfx::Int
BrushTool::draw_line(bitmap, color, start, end); BrushTool::draw_line(bitmap, color, start, end);
} }
Gfx::StandardCursor CloneTool::cursor()
{
if (m_is_selecting_location)
return Gfx::StandardCursor::Eyedropper;
return Gfx::StandardCursor::Crosshair;
}
void CloneTool::on_mousemove(Layer* layer, MouseEvent& event) void CloneTool::on_mousemove(Layer* layer, MouseEvent& event)
{ {
auto& image_event = event.image_event(); auto& image_event = event.image_event();
@ -112,6 +119,7 @@ void CloneTool::on_keydown(GUI::KeyEvent& event)
Tool::on_keydown(event); Tool::on_keydown(event);
if (event.key() == KeyCode::Key_Alt && !m_is_selecting_location) { if (event.key() == KeyCode::Key_Alt && !m_is_selecting_location) {
m_is_selecting_location = true; m_is_selecting_location = true;
m_editor->update_tool_cursor();
return; return;
} }
} }
@ -120,6 +128,7 @@ void CloneTool::on_keyup(GUI::KeyEvent& event)
{ {
if (m_is_selecting_location && event.key() == KeyCode::Key_Alt) { if (m_is_selecting_location && event.key() == KeyCode::Key_Alt) {
m_is_selecting_location = false; m_is_selecting_location = false;
m_editor->update_tool_cursor();
return; return;
} }
} }

View file

@ -16,6 +16,7 @@ public:
virtual ~CloneTool() override = default; virtual ~CloneTool() override = default;
virtual GUI::Widget* get_properties_widget() override; virtual GUI::Widget* get_properties_widget() override;
virtual Gfx::StandardCursor cursor() override;
protected: protected:
virtual void draw_point(Gfx::Bitmap& bitmap, Gfx::Color const& color, Gfx::IntPoint const& point) override; virtual void draw_point(Gfx::Bitmap& bitmap, Gfx::Color const& color, Gfx::IntPoint const& point) override;