
#include <QPainter>

#include "cannonfield.h"

CannonField::CannonField(QWidget *parent)
  : QWidget(parent)
{
  currentAngle = 45;
  currentForce = 0;
  setPalette(QPalette(QColor(250,250,200)));
}

void CannonField::setAngle(int angle)
{
  if(angle < 5)
    angle = 5;
  if(angle > 70)
    angle = 70;
  if(currentAngle == angle)
    return;
  currentAngle = angle;
  update(cannonRect());
  emit angleChanged(currentAngle);
}

void CannonField::setForce(int force)
{
  if(force < 0)
    force = 0;
  if(currentForce == force)
    return;
  currentForce = force;
  update(cannonRect());
  emit forceChanged(currentForce);
}

void CannonField::paintEvent(QPaintEvent*)
{
  QPainter painter(this);
  
  painter.setPen(Qt::NoPen);
  painter.setBrush(Qt::blue);
  
  painter.translate(rect().width(), rect().height());
  painter.drawEllipse(QRect(-35, -35, 70, 70));
  painter.rotate(currentAngle);
  painter.drawRect(QRect(-33, -4, -15, 8));
//  painter.drawRect(QRect(33, -4, 10+(currentForce/5), 8));
}

QRect CannonField::cannonRect() const
{
  QRect result(0, 0, 50, 50);
  result.moveBottomRight(rect().bottomRight());
  return result;
}

