// Overwrite base class method to force center justification of tip text
long AFXTooltip::onPaint(FXObject *, FXSelector, void *ptr)
{
    FXEvent *ev=(FXEvent*)ptr;
    FXDCWindow dc(this,ev);
    FXint tw=0;
    const FXchar *beg,*end;
    register FXint tx,ty,xx;

    dc.setForeground(backColor);
    dc.fillRectangle(ev->rect.x,ev->rect.y,ev->rect.w,ev->rect.h);
    dc.setForeground(textColor);
    dc.setTextFont(font);
    dc.drawRectangle(0,0,width-1,height-1);

    if(!label.empty())
        tw=labelWidth(label);

    beg=label.text();
    if(beg)
    {
        tx=1+HSPACE;
        ty=1+VSPACE+font->getFontAscent();
        do
        {
            end=beg;
            while(*end!='\0' && *end!='\n') end++;
            xx=tx+(tw-font->getTextWidth(beg,end-beg))/2;
            dc.drawText(xx,ty,beg,end-beg);
            ty+=font->getFontHeight();
            beg=end+1;
        } while(*end!='\0');
    }
    return 1;
}


// Get width of multi-line label (from FXLabel)
FXint AFXTooltip::labelWidth(const FXString& text) const
{
    register FXuint beg,end;
    register FXint w,tw=0;
    beg=0;
    do
    {
        end=beg;
        while(text[end] && text[end]!='\n') end++;
        if((w=font->getTextWidth(&text[beg],end-beg))>tw) tw=w;
        beg=end+1;
    } while(text[end]);
    return tw;
}

