Ejemplo n.º 1
0
QCreatable::QCreatable(plCreatable* pCre, int type, QWidget* parent)
          : QWidget(parent), fCreatable(pCre), fForceType(type)
{
    setAttribute(Qt::WA_DeleteOnClose);
    QIcon ico = pqGetTypeIcon(type);
    if (!ico.isNull())
        setWindowIcon(ico);
    hsKeyedObject* ko = hsKeyedObject::Convert(fCreatable, false);
    if (ko != NULL && ko->getKey().Exists()) {
        setWindowTitle(pqGetFriendlyClassName(type) +
                       ": " + ~ko->getKey()->getName());
    } else {
        setWindowTitle(pqGetFriendlyClassName(type));
    }
}
Ejemplo n.º 2
0
void QMultistageBehMod::stageContextMenu(const QPoint& pos)
{
    plMultistageBehMod* obj = plMultistageBehMod::Convert(fCreatable);

    QMenu menu(this);
    QAction* addObjItem = menu.addAction(tr("Add Stage..."));
    QAction* delObjItem = menu.addAction(tr("Remove Stage"));

    if (fStages->currentItem() == NULL)
        delObjItem->setEnabled(false);

    QAction* sel = menu.exec(fStages->viewport()->mapToGlobal(pos));
    if (sel == addObjItem) {
        plAnimStage* stage = new plAnimStage();
        int id = obj->getStages().getSize();
        QTreeWidgetItem* item = new QTreeWidgetItem(fStages,
            QStringList() << QString("%1").arg(id) << pqGetFriendlyClassName(stage->ClassIndex()));
        item->setIcon(0, pqGetTypeIcon(stage->ClassIndex()));
        obj->addStage(stage);
    } else if (sel == delObjItem) {
        int idx = fStages->indexOfTopLevelItem(fStages->currentItem());
        QTreeWidgetItem* item = fStages->takeTopLevelItem(idx);
        delete item;
        obj->delStage(idx);
    }
}
Ejemplo n.º 3
0
void QKeyList::addKey(plKey key)
{
    QTreeWidgetItem* item = new QTreeWidgetItem(this,
        QStringList() << ~key->getName() << pqGetFriendlyClassName(key->getType()));
    item->setIcon(0, pqGetTypeIcon(key->getType()));
    fKeys << key;
}
Ejemplo n.º 4
0
QCreatable* pqMakeCreatableForm(plCreatable* pCre, QWidget* parent, int forceType)
{
    int type = (forceType == -1) ? pCre->ClassIndex() : forceType;

    if ((type & kPRC_Type) != 0)
        return new QPrcEditor(pCre, parent);

    if ((type & kTargets_Type) != 0)
        return new QTargetList(pCre, parent);

    if ((type & kHex_Type) != 0)
        return new QHexViewer(pCre, parent);

    switch (type) {
    // Keyed Object types
    case k2WayWinAudible:
        return new QWinAudible(pCre, parent);
    case kAudible:
        return new QAudible(pCre, parent);
    case kAudibleNull:
        return new QAudible(pCre, parent);
    case kAudioInterface:
        return new QAudioInterface(pCre, parent);
    case kCollisionDetector:
        return new QCollisionDetector(pCre, parent);
    case kCoordinateInterface:
        return new QCoordinateInterface(pCre, parent);
    case kCubicEnvironmap:
        return new QCubicEnvironmap(pCre, parent);
    case kDetectorModifier:
        return new QDetectorModifier(pCre, parent);
    case kDirectShadowMaster:
        return new QShadowMaster(pCre, parent);
    case kDrawInterface:
        return new QDrawInterface(pCre, parent);
    case kDynamicTextMap:
        return new QDynamicTextMap(pCre, parent);
    case kFadeOpacityMod:
        return new QFadeOpacityMod(pCre, parent);
    case kInterfaceInfoModifier:
        return new QInterfaceInfoModifier(pCre, parent);
    case kGMaterial:
        return new QMaterial(pCre, parent);
    case kGUIButtonMod:
        return new QGUIButtonMod(pCre, parent);
    case kGUICheckBoxCtrl:
        return new QGUICheckBoxCtrl(pCre, parent);
    case kGUIClickMapCtrl:
        return new QGUIClickMapCtrl(pCre, parent);
    case kGUIControlMod:
        return new QGUIControlMod(pCre, parent);
    case kGUIDialogMod:
        return new QGUIDialogMod(pCre, parent);
    case kGUIDragBarCtrl:
        return new QGUIControlMod(pCre, parent);
    case kGUIDraggableMod:
        return new QGUIDraggableMod(pCre, parent);
    case kGUIDynDisplayCtrl:
        return new QGUIDynDisplayCtrl(pCre, parent);
    case kGUIEditBoxMod:
        return new QGUIControlMod(pCre, parent);
    case kGUIKnobCtrl:
        return new QGUIKnobCtrl(pCre, parent);
    case kGUIListBoxMod:
        return new QGUIListBoxMod(pCre, parent);
    case kGUIMenuItem:
        return new QGUIMenuItem(pCre, parent);
    case kGUIMultiLineEditCtrl:
        return new QGUIMultiLineEditCtrl(pCre, parent);
    case kGUIPopUpMenu:
        return new QGUIPopUpMenu(pCre, parent);
    case kGUIProgressCtrl:
        return new QGUIProgressCtrl(pCre, parent);
    case kGUIRadioGroupCtrl:
        return new QGUIRadioGroupCtrl(pCre, parent);
    case kGUISkin:
        return new QGUISkin(pCre, parent);
    case kGUITextBoxMod:
        return new QGUITextBoxMod(pCre, parent);
    case kGUIUpDownPairMod:
        return new QGUIUpDownPairMod(pCre, parent);
    case kImageLibMod:
        return new QImageLibMod(pCre, parent);
    case kLayer:
        return new QLayer(pCre, parent);
    case kLayerAnimation:
        return new QLayerAnimation(pCre, parent);
    case kLayerAVI:
        return new QLayerMovie(pCre, parent);
    case kLayerBink:
        return new QLayerMovie(pCre, parent);
    case kLayerDepth:
        return new QLayer(pCre, parent);
    case kLayerLinkAnimation:
        return new QLayerLinkAnimation(pCre, parent);
    case kLayerMovie:
        return new QLayerMovie(pCre, parent);
    case kLayerSDLAnimation:
        return new QLayerSDLAnimation(pCre, parent);
    case kMaintainersMarkerModifier:
        return new QMaintainersMarkerModifier(pCre, parent);
    case kMipmap:
        return new QMipmap(pCre, parent);
    case kMsgForwarder:
        return new QMsgForwarder(pCre, parent);
    case kMultistageBehMod:
        return new QMultistageBehMod(pCre, parent);
    case kOneShotMod:
        return new QOneShotMod(pCre, parent);
    case kPanicLinkRegion:
        return new QCollisionDetector(pCre, parent);
    case kPickingDetector:
        return new QDetectorModifier(pCre, parent);
    case kPointShadowMaster:
        return new QShadowMaster(pCre, parent);
    case kPythonFileMod:
        return new QPythonFileMod(pCre, parent);
    case kSceneNode:
        return new QSceneNode(pCre, parent);
    case kSceneObject:
        return new QSceneObject(pCre, parent);
    case kShadowMaster:
        return new QShadowMaster(pCre, parent);
    case kSimulationInterface:
        return new QSimulationInterface(pCre, parent);
    case kSound:
        return new QWinSound(pCre, parent);
    case kSoundBuffer:
        return new QSoundBuffer(pCre, parent);
    case kSpawnModifier:
        return new QSpawnModifier(pCre, parent);
    case kSubworldRegionDetector:
        return new QCollisionDetector(pCre, parent);
    case kSynchedObject:
        return new QSynchedObject(pCre, parent);
    case kWinAudible:
        return new QWinAudible(pCre, parent);
    case kWin32LinkSound:
        return new QWin32Sound(pCre, parent);
    case kWin32Sound:
        return new QWin32Sound(pCre, parent);
    case kWin32StaticSound:
        return new QWin32Sound(pCre, parent);
    case kWin32StreamingSound:
        return new QWin32Sound(pCre, parent);

    // Non-Keyed Object types
    case kAnimStage:
        return new QAnimStage(pCre, parent);
    case kAnimTimeConvert:
        return new QAnimTimeConvert(pCre, parent);
    case kATCEaseCurve:
        return new QATCEaseCurve(pCre, parent);
    case kConstAccelEaseCurve:
        return new QATCEaseCurve(pCre, parent);
    case kSplineEaseCurve:
        return new QATCEaseCurve(pCre, parent);

    // Preview meta-types
    case kPreviewMipmap:
        return new QMipmap_Preview(pCre, parent);
    case kPreviewSceneObject:
        return new QSceneObj_Preview(pCre, parent);

    default:
        if ((type & 0x1000) == 0) {
            return new QPrcEditor(pCre, parent);
        } else {
            QMessageBox msgBox(QMessageBox::Information, parent->tr("Oops"),
                            parent->tr("No previewer is currently available for %1")
                                      .arg(pqGetFriendlyClassName(type)),
                            QMessageBox::Ok, parent);
            msgBox.exec();
        }
        return NULL;
    }
}
Ejemplo n.º 5
0
/* QMultistageBehMod */
QMultistageBehMod::QMultistageBehMod(plCreatable* pCre, QWidget* parent)
                 : QCreatable(pCre, kMultistageBehMod, parent)
{
    plMultistageBehMod* obj = plMultistageBehMod::Convert(fCreatable);

    fSynchObjLink = new QCreatableLink(this, false);
    fSynchObjLink->setText(tr("Synch Flags"));
    fSynchObjLink->setCreatable(obj);
    fSynchObjLink->setForceType(kSynchedObject);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    QGridLayout* layFlags = new QGridLayout(grpFlags);
    layFlags->setVerticalSpacing(0);
    layFlags->setHorizontalSpacing(8);
    fFreezePhys = new QCheckBox(tr("Freeze Physics"), grpFlags);
    fFreezePhys->setChecked(obj->getFreezePhys());
    fSmartSeek = new QCheckBox(tr("Smart Seek"), grpFlags);
    fSmartSeek->setChecked(obj->getSmartSeek());
    fReverseControls = new QCheckBox(tr("Reverse Controls on Release"), grpFlags);
    fReverseControls->setChecked(obj->getReverseFBControlsOnRelease());
    layFlags->addWidget(fFreezePhys, 0, 0);
    layFlags->addWidget(fSmartSeek, 1, 0);
    layFlags->addWidget(fReverseControls, 2, 0);

    QTabWidget* listTabs = new QTabWidget(this);

    fStages = new QTreeWidget(listTabs);
    fStages->setColumnCount(2);
    fStages->setUniformRowHeights(true);
    fStages->setRootIsDecorated(false);
    fStages->headerItem()->setText(0, tr("Idx"));
    fStages->headerItem()->setText(1, tr("Type"));
    fStages->setContextMenuPolicy(Qt::CustomContextMenu);
    for (size_t i=0; i<obj->getStages().getSize(); i++) {
        plAnimStage* stage = obj->getStages()[i];
        QTreeWidgetItem* item = new QTreeWidgetItem(fStages,
            QStringList() << QString("%1").arg(i) << pqGetFriendlyClassName(stage->ClassIndex()));
        item->setIcon(0, pqGetTypeIcon(stage->ClassIndex()));
    }

    fReceivers = new QKeyList(obj->getKey(), listTabs);
    for (size_t i=0; i<obj->getReceivers().getSize(); i++)
        fReceivers->addKey(obj->getReceivers()[i]);

    listTabs->addTab(fStages, tr("Animation Stages"));
    listTabs->addTab(fReceivers, tr("Receivers"));

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fSynchObjLink, 0, 0);
    layout->addWidget(grpFlags, 1, 0);
    layout->addWidget(listTabs, 2, 0);
    fStages->resizeColumnToContents(1);
    fStages->resizeColumnToContents(0);
    fReceivers->adjustColumns();

    connect(fStages, SIGNAL(customContextMenuRequested(const QPoint&)),
            this, SLOT(stageContextMenu(const QPoint&)));
    connect(fStages, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
            this, SLOT(activateStageItem(QTreeWidgetItem*, int)));
}