#include #include #include #include "pui.h" void Label::OnPaint(const PUi *pui) const { // if (this->dirty) { /* Update bounding box */ FTBBox box = pui->font->BBox(this->text); FTPoint p = box.Upper() - box.Lower(); float cx = p.X(); float cy = p.Y(); // } float ox = -.5f; float oy = 0; glPushMatrix(); glColor4f(colour.r, colour.g, colour.b, colour.a); glTranslatef(x + w * 0.5f, y + h * 0.5f + 10, 0); glScalef(.6f, -.6f, 1); glTranslatef(cx * ox, cy * oy, 0); pui->font->Render(this->text); glPopMatrix(); } void Label::SetLabel(const char *str) { if (strcmp(str, this->text)) { strncpy(this->text, str, sizeof this->text); this->dirty = true; } }