KJS::Value KstBindEllipse::borderColor(KJS::ExecState *exec) const {
  KstViewEllipsePtr d = makeEllipse(_d);
  if (d) {
    KstReadLocker rl(d);
    return KJSEmbed::convertToValue(exec, d->borderColor());
  }
  return KJSEmbed::convertToValue(exec, QColor());
}
KJS::Value KstBindEllipse::borderWidth(KJS::ExecState *exec) const {
  Q_UNUSED(exec)
  KstViewEllipsePtr d = makeEllipse(_d);
  if (d) {
    KstReadLocker rl(d);
    return KJS::Number(d->borderWidth());
  }
  return KJS::Number(0);
}
Exemplo n.º 3
0
KstGfxEllipseMouseHandler::KstGfxEllipseMouseHandler()
: KstGfxMouseHandler() {
  // initial default settings before any sticky settings
  KstViewEllipsePtr defaultEllipse = new KstViewEllipse;
  defaultEllipse->setBorderWidth(2);
  defaultEllipse->setBorderColor(Qt::black);
  defaultEllipse->setForegroundColor(Qt::white);
  _defaultObject = KstViewObjectPtr(defaultEllipse);
}
void KstBindEllipse::setBorderWidth(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;
  }
  KstViewEllipsePtr d = makeEllipse(_d);
  if (d) {
    KstWriteLocker wl(d);
    d->setBorderWidth(w);
    KstApp::inst()->paintAll(KstPainter::P_PAINT);
  }
}
void KstBindEllipse::setBorderColor(KJS::ExecState *exec, const KJS::Value& value) {
  QVariant cv = KJSEmbed::convertToVariant(exec, value);
  if (!cv.canCast(QVariant::Color)) {
    KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
    exec->setException(eobj);
    return;
  }
  KstViewEllipsePtr d = makeEllipse(_d);
  if (d) {
    KstWriteLocker rl(d);
    d->setBorderColor(cv.toColor());
    KstApp::inst()->paintAll(KstPainter::P_PAINT);
  }
}
KJS::Object KstBindEllipse::construct(KJS::ExecState *exec, const KJS::List& args) {
  if (args.size() != 1) {
    KJS::Object eobj = KJS::Error::create(exec, KJS::SyntaxError);
    exec->setException(eobj);
    return KJS::Object();
  }

  KstViewObjectPtr view = extractViewObject(exec, args[0]);
  if (!view) {
    KstViewWindow *w = extractWindow(exec, args[0]);
    if (w) {
      view = w->view();
    } else {
      KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
      exec->setException(eobj);
      return KJS::Object();
    }
  }

  KstViewEllipsePtr b = new KstViewEllipse;
  view->appendChild(b.data());
  KstApp::inst()->paintAll(KstPainter::P_PAINT);
  return KJS::Object(new KstBindEllipse(exec, b));
}
KstBindEllipse::KstBindEllipse(KJS::ExecState *exec, KstViewEllipsePtr d, const char *name)
: KstBindViewObject(exec, d.data(), name ? name : "Ellipse") {
  KJS::Object o(this);
  addBindings(exec, o);
}