/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2021, Mustafa Quraish * Copyright (c) 2022, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #include "PenTool.h" #include "../ImageEditor.h" #include "../Layer.h" #include #include #include #include #include #include namespace PixelPaint { PenTool::PenTool() { set_size(1); } void PenTool::draw_point(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint point) { GUI::Painter painter(bitmap); painter.draw_line(point, point, color, size()); } void PenTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint start, Gfx::IntPoint end) { GUI::Painter painter(bitmap); painter.draw_line(start, end, color, size()); } NonnullRefPtr PenTool::get_properties_widget() { if (!m_properties_widget) { auto properties_widget = GUI::Widget::construct(); properties_widget->set_layout(); auto& size_container = properties_widget->add(); size_container.set_fixed_height(20); size_container.set_layout(); auto& size_label = size_container.add("Thickness:"_string); size_label.set_text_alignment(Gfx::TextAlignment::CenterLeft); size_label.set_fixed_size(80, 20); auto& size_slider = size_container.add(Orientation::Horizontal, "px"_string); size_slider.set_range(1, 20); size_slider.set_value(size()); size_slider.on_change = [this](int value) { set_size(value); }; set_primary_slider(&size_slider); m_properties_widget = properties_widget; } return *m_properties_widget; } }