void WInteractWidget::setDraggable(const std::string& mimeType, WWidget *dragWidget, bool isDragWidgetOnly, WObject *sourceObject) { if (dragWidget == 0) dragWidget = this; if (sourceObject == 0) sourceObject = this; if (isDragWidgetOnly) { dragWidget->hide(); } WApplication *app = WApplication::instance(); setAttributeValue("dmt", mimeType); setAttributeValue("dwid", dragWidget->id()); setAttributeValue("dsid", app->encodeObject(sourceObject)); if (!dragSlot_) { dragSlot_ = new JSlot(); dragSlot_->setJavaScript("function(o,e){" + app->javaScriptClass() + "._p_.dragStart(o,e);" + "}"); } mouseWentDown().connect(*dragSlot_); }