#include #include #include namespace rack { namespace ui { void Tooltip::step() { // Wrap size to contents nvgSave(APP->window->vg); nvgTextLineHeight(APP->window->vg, 1.2); box.size.x = bndLabelWidth(APP->window->vg, -1, text.c_str()); box.size.y = bndLabelHeight(APP->window->vg, -1, text.c_str(), INFINITY); // Position near cursor. This assumes that the Tooltip is added to the root widget. box.pos = APP->scene->mousePos.plus(math::Vec(15, 15)); // Fit inside parent assert(parent); box = box.nudge(parent->box.zeroPos()); nvgRestore(APP->window->vg); Widget::step(); } void Tooltip::draw(const DrawArgs& args) { bndTooltipBackground(args.vg, 0.0, 0.0, box.size.x, box.size.y); nvgTextLineHeight(args.vg, 1.2); bndMenuLabel(args.vg, 0.0, 0.0, INFINITY, box.size.y, -1, text.c_str()); Widget::draw(args); } } // namespace ui } // namespace rack