void KstBindCubicBezier::setLineStyle(KJS::ExecState *exec, const KJS::Value& value) {
  unsigned w = 0;
  if (value.type() != KJS::NumberType || !value.toUInt32(w)) {
    KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
    exec->setException(eobj);
    return;
  }
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstWriteLocker wl(d);
    switch (w) {
      case 0:
        d->setPenStyle(Qt::SolidLine);
        break;
      case 1:
        d->setPenStyle(Qt::DashLine);
        break;
      case 2:
        d->setPenStyle(Qt::DotLine);
        break;
      case 3:
        d->setPenStyle(Qt::DashDotLine);
        break;
      case 4:
        d->setPenStyle(Qt::DashDotDotLine);
        break;
      default:
        return;
    }
    KstApp::inst()->paintAll(P_PAINT);
  }
}
KJS::Value KstBindCubicBezier::d(KJS::ExecState *exec) const {
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstReadLocker rl(d);
    return KJS::Object(new KstBindPoint(exec, d->pointD().x(), d->pointD().y()));
  }
  return KJS::Null();
}
KJS::Value KstBindCubicBezier::width(KJS::ExecState *exec) const {
  Q_UNUSED(exec)
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstReadLocker rl(d);
    return KJS::Number(d->width());
  }
  return KJS::Number(0);
}
Beispiel #4
0
	void DemoKeeper::updateSpline()
	{
		std::vector<MyGUI::FloatPoint> points;
		for (int i = 0; i < PointsCount; ++i)
		{
			points.push_back(MyGUI::FloatPoint(point[i]->getLeft() + 8.0f, point[i]->getTop() + 8.0f));
		}
		makeBezier(points, bezierQuality);
		mPolygonalSkin->setPoints(mLinePoints);
	}
void KstBindCubicBezier::setWidth(KJS::ExecState *exec, const KJS::Value& value) {
  unsigned w = 0;
  if (value.type() != KJS::NumberType || !value.toUInt32(w)) {
    KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
    exec->setException(eobj);
    return;
  }
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstWriteLocker wl(d);
    d->setWidth(w);
    KstApp::inst()->paintAll(P_PAINT);
  }
}
void KstBindCubicBezier::setD(KJS::ExecState *exec, const KJS::Value& value) {
  KstBindPoint *imp = 0L;
  if (value.type() != KJS::ObjectType || !(imp = dynamic_cast<KstBindPoint*>(value.toObject(exec).imp()))) {
    KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
    exec->setException(eobj);
    return;
  }
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstWriteLocker wl(d);
    d->setPointD(QPoint(int(imp->_x), int(imp->_y))); // FIXME: Point is the wrong
                                                 // type to use here.  It's
                                                 // a double, for one...
    KstApp::inst()->paintAll(P_PAINT);
  }
}
KJS::Value KstBindCubicBezier::capStyle(KJS::ExecState *exec) const {
  Q_UNUSED(exec)
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstReadLocker rl(d);
    switch (d->capStyle()) {
      case Qt::FlatCap:
        return KJS::Number(0);
      case Qt::SquareCap:
        return KJS::Number(1);
      case Qt::RoundCap:
        return KJS::Number(2);
      default:
        break;
    }
  }
  return KJS::Number(0);
}
KJS::Value KstBindCubicBezier::lineStyle(KJS::ExecState *exec) const {
  Q_UNUSED(exec)
  KstViewBezierPtr d = makeBezier(_d);
  if (d) {
    KstReadLocker rl(d);
    switch (d->penStyle()) {
      case Qt::SolidLine:
        return KJS::Number(0);
      case Qt::DashLine:
        return KJS::Number(1);
      case Qt::DotLine:
        return KJS::Number(2);
      case Qt::DashDotLine:
        return KJS::Number(3);
      case Qt::DashDotDotLine:
        return KJS::Number(4);
      default:
        break;
    }
  }
  return KJS::Number(0);
}