#include "Label.hpp" #include "Window.hpp" #include "pango/pango-layout.h" #include namespace Raven { void Label::on_init() { // the label will inherit the background color properties from the parent if (parent()) { set_do_background_fill(parent()->do_background_fill()); set_background_fill_color(parent()->background_fill_color()); } set_did_init(true); } void Label::on_paint() { do_generic_paint(); auto painter = window()->painter(); auto text_color = styles()->label_text_color(); auto text_geometry = current_geometry().max_geometry(); bool set_size = current_geometry().max_width() != -1 && current_geometry().max_height() != -1; painter.source_rgb(text_color); painter.set_pango_font_description(styles()->controls_font_description()); auto point = painter.text(text_geometry, m_text, PaintTextAlign::Left, PANGO_ELLIPSIZE_NONE, set_size); resize(point); painter.fill(); } }