VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Facing North Widget

The FacingNorthWidget allows the user to select an entity that will be used to test this conditional It will then emit a signal that contains the MyConditionalExpression that is to be sent to the back-end


Header file:

/******************************************************************************
** Copyright (c) 2015 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
//\file DtBaseEntityConditionalExpressionDialog.h
//\brief Contains DtBaseEntityConditionalExpressionDialog class.
#pragma once
namespace vrfAddConditionalExample
{
//\brief Class that is used as a template for task/set dialogs
class DtNorthConditionalCreator : public makVrf::DtVrfConditionalExpressionCreator
{
public:
virtual QString title() const ;
virtual bool canEditType(int) const;
};
class DtNorthConditionalLogic : public makVrf::DtBaseEntityConditionalExpressionLogic
{
public:
public:
const std::vector<makVrv::DtSimEntry*>& data);
virtual void setupConditional(const DtSimCondExpr*, const std::vector<makVrv::DtSimEntry*>& data);
};
class DtNorthConditional : public makVrf::DtBaseEntityConditionalExpressionDialog
{
public:
//CTOR
DtNorthConditional(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
//DTOR
protected:
virtual QWidget* expressionExtension();
virtual QString value() const;
virtual void setValue(const QString&);
virtual void setupConditional(const DtSimCondExpr* expr, const std::vector<makVrv::DtSimEntry*>& data);
};
}

Implementation:

/******************************************************************************
** Copyright (c) 2016 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
#include "../addConditionalSim/conditionalExpression.h"
using namespace makVrf;
namespace vrfAddConditionalExample
{
//\brief Class that is used as a template for task/set dialogs
DtConditionalExpressionInterface* DtNorthConditionalCreator::create(makVrv::DtDe& de, QWidget* parent)
{
return new DtNorthConditional(de, parent, theConditionalCreationFlags);
}
QString DtNorthConditionalCreator::title() const
{
return QObject::tr("Facing North");
}
bool DtNorthConditionalCreator::canEditType(int t) const
{
return (MyConditionalExpression().type() == t);
}
DtNorthConditionalLogic::DtNorthConditionalLogic(makVrv::DtDe& de, DtConditionalExpressionInterface* iFace)
{
}
DtNorthConditionalLogic::~DtNorthConditionalLogic()
{
}
void DtNorthConditionalLogic::createConditional(DtConditionalExpressionView* parentView,
const std::vector<makVrv::DtSimEntry*>& data)
{
myInterface->signal_conditionComplete();
}
DtSimCondExpr* DtNorthConditionalLogic::conditionalExpression() const
{
MyConditionalExpression* expr = new MyConditionalExpression;
if (useNameSelected() && !useSelf())
{
if (!selectedName().isValid())
{
delete expr;
return 0;
}
expr->setEntity(selectedName());
}
expr->setModifier(createModifier().toLatin1().constData());
return expr;
}
void DtNorthConditionalLogic::setupConditional(const DtSimCondExpr* cond,
const std::vector<makVrv::DtSimEntry*>& data)
{
const MyConditionalExpression* ce = dynamic_cast<const MyConditionalExpression*>(cond);
if (ce)
{
if (!setupFromModifier(ce->modifier().c_str()))
{
setSelectedName(ce->entity());
}
}
}
DtNorthConditional::DtNorthConditional(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags)
{
setWindowTitle(tr("Facing North"));
myLogic = new DtNorthConditionalLogic(de, this);
}
DtNorthConditional::~DtNorthConditional()
{
}
QString DtNorthConditional::value() const
{
return "";
}
void DtNorthConditional::setValue(const QString& s)
{
}
QWidget* DtNorthConditional::expressionExtension()
{
return NULL;
}
void DtNorthConditional::setupConditional(const DtSimCondExpr* expr, const std::vector<makVrv::DtSimEntry*>& data)
{
myLogic->setupConditional(expr, data);
}
}

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)