int ty = line.getBaseline() - y - height - (int)margin.top() - border.top - (int)padding.top() + line.y;
int ty = line.getBaseline() - y - height - (int)margin.top() - (int)border.top() - (int)padding.top() + line.y;
    void paint(Context c, LineBox line, int start, int width, int sides) {        if (width <= 0) return;        int ty = line.getBaseline() - y - height - (int)margin.top() - border.top - (int)padding.top() + line.y;        ty += (int) lm.getDescent();        c.translate(0, ty);        c.getGraphics().translate(0, ty);        // CLEAN: cast to int        Rectangle bounds = new Rectangle(start,                y + (int)margin.top(),                width,                height + border.top + (int)padding.top() + (int)padding.bottom() + border.bottom);        //first the background        if (background_color != null) {            // skip transparent background            if (!background_color.equals(BackgroundPainter.transparent)) {                //TODO. make conf controlled Uu.p("filling a background");                c.getGraphics().setColor(background_color);                c.getGraphics().fillRect(bounds.x, bounds.y, bounds.width, bounds.height);            }        }        //then the border        BorderPainter.paint(bounds, sides, style, c.getGraphics(), c.getCtx(), xOffset);        c.getGraphics().translate(0, -ty);        c.translate(0, -ty);        xOffset += width;    }