Serenity Operating System
at master 28 lines 645 B view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibGUI/Painter.h> 8#include <LibGUI/Widget.h> 9#include <LibGUI/Window.h> 10#include <LibGfx/Bitmap.h> 11 12namespace GUI { 13Painter::Painter(Gfx::Bitmap& bitmap) 14 : Gfx::Painter(bitmap) 15{ 16} 17 18Painter::Painter(Widget& widget) 19 : Painter(*widget.window()->back_bitmap()) 20{ 21 state().font = &widget.font(); 22 auto origin_rect = widget.window_relative_rect(); 23 state().translation = origin_rect.location(); 24 state().clip_rect = origin_rect.intersected(m_target->rect()); 25 m_clip_origin = state().clip_rect; 26} 27 28}