raven/src/Label.cpp

36 lines
690 B
C++
Raw Normal View History

#include "Label.hpp"
#include "Window.hpp"
2022-03-29 09:27:59 +03:00
#include "pango/pango-layout.h"
2022-06-11 15:52:23 +03:00
#include "Styles.hpp"
2022-05-08 19:31:31 +03:00
#include <iostream>
namespace Raven {
void Label::set_text(std::string text) {
m_text = text;
if (!fit_text(text)) {
repaint();
}
}
void Label::on_init() {
set_style_pure(&default_label_style);
set_did_init(true);
if (!fit_text(m_text)) {
reflow();
}
}
void Label::on_paint() {
2022-04-30 09:40:09 +03:00
auto painter = window()->painter();
2022-07-26 01:05:51 +03:00
auto geometry = rect().max_geometry();
2022-06-11 15:52:23 +03:00
painter.source_rgb(style()->foreground());
2022-07-26 01:05:51 +03:00
painter.text(geometry, m_text, PaintTextAlign::Left, PANGO_ELLIPSIZE_END, style()->font_description());
painter.fill();
}
}