Bladeren bron

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.
Mustafa Quraish 3 jaren geleden
bovenliggende
commit
f28b2a875a
2 gewijzigde bestanden met toevoegingen van 10 en 0 verwijderingen
  1. 9 0
      Userland/Applications/PixelPaint/CloneTool.cpp
  2. 1 0
      Userland/Applications/PixelPaint/CloneTool.h

+ 9 - 0
Userland/Applications/PixelPaint/CloneTool.cpp

@@ -52,6 +52,13 @@ void CloneTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color const& color, Gfx::Int
     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)
 {
     auto& image_event = event.image_event();
@@ -112,6 +119,7 @@ void CloneTool::on_keydown(GUI::KeyEvent& event)
     Tool::on_keydown(event);
     if (event.key() == KeyCode::Key_Alt && !m_is_selecting_location) {
         m_is_selecting_location = true;
+        m_editor->update_tool_cursor();
         return;
     }
 }
@@ -120,6 +128,7 @@ void CloneTool::on_keyup(GUI::KeyEvent& event)
 {
     if (m_is_selecting_location && event.key() == KeyCode::Key_Alt) {
         m_is_selecting_location = false;
+        m_editor->update_tool_cursor();
         return;
     }
 }

+ 1 - 0
Userland/Applications/PixelPaint/CloneTool.h

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