mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8250 AppFwk : Introduce variadic macros
Use variadic macros to to support optional parameters in initialization macros
This commit is contained in:
@@ -50,56 +50,83 @@
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#define CAF_PDM_InitScriptableField( field, keyword, default, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword )
|
||||
#define CAF_PDM_InitScriptableField( field, keyword, default, uiName, ... ) \
|
||||
{ \
|
||||
std::vector<QString> arguments = { __VA_ARGS__ }; \
|
||||
QString iconResourceName; \
|
||||
QString toolTip; \
|
||||
QString whatsThis; \
|
||||
if ( arguments.size() > 0 ) iconResourceName = arguments[0]; \
|
||||
if ( arguments.size() > 1 ) toolTip = arguments[1]; \
|
||||
if ( arguments.size() > 2 ) whatsThis = arguments[2]; \
|
||||
\
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword ); \
|
||||
}
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldNoDefault( field, keyword, uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword )
|
||||
#define CAF_PDM_InitScriptableFieldNoDefault( field, keyword, uiName, ... ) \
|
||||
{ \
|
||||
std::vector<QString> arguments = { __VA_ARGS__ }; \
|
||||
QString iconResourceName; \
|
||||
QString toolTip; \
|
||||
QString whatsThis; \
|
||||
if ( arguments.size() > 0 ) iconResourceName = arguments[0]; \
|
||||
if ( arguments.size() > 1 ) toolTip = arguments[1]; \
|
||||
if ( arguments.size() > 2 ) whatsThis = arguments[2]; \
|
||||
\
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, keyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, keyword ); \
|
||||
}
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeyword( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword )
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeyword( field, keyword, scriptKeyword, default, uiName, ... ) \
|
||||
{ \
|
||||
std::vector<QString> arguments = { __VA_ARGS__ }; \
|
||||
QString iconResourceName; \
|
||||
QString toolTip; \
|
||||
QString whatsThis; \
|
||||
if ( arguments.size() > 0 ) iconResourceName = arguments[0]; \
|
||||
if ( arguments.size() > 1 ) toolTip = arguments[1]; \
|
||||
if ( arguments.size() > 2 ) whatsThis = arguments[2]; \
|
||||
\
|
||||
CAF_PDM_InitField( field, \
|
||||
keyword, \
|
||||
default, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword ); \
|
||||
}
|
||||
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeywordNoDefault( field, \
|
||||
keyword, \
|
||||
scriptKeyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
toolTip, \
|
||||
whatsThis ) \
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword )
|
||||
#define CAF_PDM_InitScriptableFieldWithScriptKeywordNoDefault( field, keyword, scriptKeyword, uiName, ... ) \
|
||||
{ \
|
||||
std::vector<QString> arguments = { __VA_ARGS__ }; \
|
||||
QString iconResourceName; \
|
||||
QString toolTip; \
|
||||
QString whatsThis; \
|
||||
if ( arguments.size() > 0 ) iconResourceName = arguments[0]; \
|
||||
if ( arguments.size() > 1 ) toolTip = arguments[1]; \
|
||||
if ( arguments.size() > 2 ) whatsThis = arguments[2]; \
|
||||
\
|
||||
CAF_PDM_InitFieldNoDefault( field, \
|
||||
keyword, \
|
||||
uiName, \
|
||||
iconResourceName, \
|
||||
caf::PdmAbstractFieldScriptingCapability::helpString( toolTip, scriptKeyword ), \
|
||||
whatsThis ); \
|
||||
caf::AddScriptingCapabilityToField( field, scriptKeyword ); \
|
||||
}
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
@@ -48,7 +48,15 @@
|
||||
|
||||
class QTextStream;
|
||||
|
||||
#define CAF_PDM_InitScriptableObject( uiName, iconResourceName, toolTip, whatsThis ) \
|
||||
#define CAF_PDM_InitScriptableObject( uiName, ... ) \
|
||||
std::vector<QString> arguments = { __VA_ARGS__ }; \
|
||||
QString iconResourceName; \
|
||||
QString toolTip; \
|
||||
QString whatsThis; \
|
||||
if ( arguments.size() > 0 ) iconResourceName = arguments[0]; \
|
||||
if ( arguments.size() > 1 ) toolTip = arguments[1]; \
|
||||
if ( arguments.size() > 2 ) whatsThis = arguments[2]; \
|
||||
\
|
||||
CAF_PDM_InitObject( uiName, iconResourceName, toolTip, whatsThis ); \
|
||||
caf::PdmObjectScriptingCapabilityRegister::registerScriptClassNameAndComment( classKeyword(), \
|
||||
classKeyword(), \
|
||||
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
m_proxyDouble.registerGetMethod( this, &SimpleObj::doubleMember );
|
||||
AddUiCapabilityToField( &m_proxyDouble );
|
||||
AddXmlCapabilityToField( &m_proxyDouble );
|
||||
CAF_PDM_InitFieldNoDefault( &m_proxyDouble, "ProxyDouble", "ProxyDouble", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_proxyDouble, "ProxyDouble", "ProxyDouble" );
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -190,9 +190,9 @@ public:
|
||||
"ScriptClassName_InheritedDemoObj",
|
||||
"Script comment test" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_texts, "Texts", "Some words", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_numbers, "Numbers", "Some words", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_testEnumField, "TestEnumValue", "An Enum", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_texts, "Texts", "Some words" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_numbers, "Numbers", "Some words" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_testEnumField, "TestEnumValue", "An Enum" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_simpleObjectsField,
|
||||
"SimpleObjects",
|
||||
"SimpleObjectsField",
|
||||
@@ -218,7 +218,7 @@ class MyPdmDocument : public caf::PdmDocument
|
||||
public:
|
||||
MyPdmDocument()
|
||||
{
|
||||
CAF_PDM_InitObject( "PdmObjectCollection", "", "", "" );
|
||||
CAF_PDM_InitObject( "PdmObjectCollection" );
|
||||
CAF_PDM_InitFieldNoDefault( &objects, "PdmObjects", "", "", "", "" )
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user