Exemple #1
0
  protected void drawWidget(QPainter painter) {

    BurningApp burn = (BurningApp) parent;

    float width = size().width();
    float slid_width = burn.getCurrentWidth();
    float step = width / DIVISIONS;

    float till = (width / MAX_CAPACITY) * slid_width;
    float full = (width / MAX_CAPACITY) * FULL_CAPACITY;

    if (slid_width > FULL_CAPACITY) {

      painter.setPen(yellowColor);
      painter.setBrush(yellowColor);
      painter.drawRect(new QRectF(0, 0, full, PANEL_HEIGHT));
      painter.setPen(redColor);
      painter.setBrush(redColor);
      painter.drawRect(new QRectF(full + 1, 0, till - full, PANEL_HEIGHT));

    } else {
      if (slid_width > 0) {
        painter.setPen(yellowColor);
        painter.setBrush(yellowColor);
        painter.drawRect(new QRectF(0, 0, till, PANEL_HEIGHT));
      }
    }

    painter.setPen(new QColor(90, 90, 90));
    painter.setBrush(QBrush.NoBrush);
    painter.drawRect(0, 0, size().width() - 1, PANEL_HEIGHT - 1);

    QFont newFont = font();
    newFont.setPointSize(7);
    painter.setFont(newFont);

    for (int i = 1; i <= num.length; i++) {
      painter.drawLine(new QLineF(i * step, 1, i * step, LINE_WIDTH));

      QFontMetrics metrics = new QFontMetrics(newFont);

      int w = metrics.width(num[i - 1]);
      painter.drawText(new QPointF(i * step - w / 2, DISTANCE), num[i - 1]);
    }
  }