void Popup::draw(NVGcontext* ctx) { refreshRelativePlacement(); if (!mVisible) return; int ds = mTheme->mWindowDropShadowSize, cr = mTheme->mWindowCornerRadius; /* Draw a drop shadow */ NVGpaint shadowPaint = nvgBoxGradient( ctx, mPos.x(), mPos.y(), mSize.x(), mSize.y(), cr*2, ds*2, mTheme->mDropShadow, mTheme->mTransparent); nvgBeginPath(ctx); nvgRect(ctx, mPos.x()-ds,mPos.y()-ds, mSize.x()+2*ds, mSize.y()+2*ds); nvgRoundedRect(ctx, mPos.x(), mPos.y(), mSize.x(), mSize.y(), cr); nvgPathWinding(ctx, NVG_HOLE); nvgFillPaint(ctx, shadowPaint); nvgFill(ctx); /* Draw window */ nvgBeginPath(ctx); nvgRoundedRect(ctx, mPos.x(), mPos.y(), mSize.x(), mSize.y(), cr); nvgMoveTo(ctx, mPos.x()-15,mPos.y()+mAnchorHeight); nvgLineTo(ctx, mPos.x()+1,mPos.y()+mAnchorHeight-15); nvgLineTo(ctx, mPos.x()+1,mPos.y()+mAnchorHeight+15); nvgFillColor(ctx, mTheme->mWindowPopup); nvgFill(ctx); Widget::draw(ctx); }
void GraphNode::draw(NVGcontext* ctx) { refreshRelativePlacement(); Window::draw(ctx); }