summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-06-17 06:52:03 -0400
committerJasper St. Pierre <jstpierre@mecheye.net>2013-06-25 00:58:31 -0400
commitc5c86d17dc5f8fcb4421a9e745b443ea33f143c4 (patch)
tree34e78d0d70a8ac249b4b5e8ce8e9f50beef0bbb5 /Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp
parent62281fbfde78317c7a1cf0b325d0b909983e61e7 (diff)
InputConfigDiag: Use "..." for complicated expressions
The full expression is quite often too big for a simple button label, so encourage people to use the full editor to edit it.
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp')
-rw-r--r--Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp
index 2023debd56..91c275e71b 100644
--- a/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp
+++ b/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp
@@ -209,6 +209,7 @@ public:
virtual ~ExpressionNode() {}
virtual ControlState GetValue() { return 0; }
virtual void SetValue(ControlState state) {}
+ virtual bool IsComplicated() { return false; }
virtual operator std::string() { return ""; }
};
@@ -230,6 +231,11 @@ public:
control->ToOutput()->SetState(value);
}
+ virtual bool IsComplicated()
+ {
+ return false;
+ }
+
virtual operator std::string()
{
return "`" + (std::string)qualifier + "`";
@@ -276,6 +282,11 @@ public:
rhs->SetValue(value);
}
+ virtual bool IsComplicated()
+ {
+ return true;
+ }
+
virtual operator std::string()
{
return OpName(op) + "(" + (std::string)(*lhs) + ", " + (std::string)(*rhs) + ")";
@@ -318,6 +329,11 @@ public:
}
}
+ virtual bool IsComplicated()
+ {
+ return true;
+ }
+
virtual operator std::string()
{
return OpName(op) + "(" + (std::string)(*inner) + ")";
@@ -361,6 +377,7 @@ public:
expr = new Expression();
expr->expr = expr_node;
expr->num_controls = CountNumControls();
+ expr->is_complicated = expr_node->IsComplicated();
*expr_out = expr;
return EXPRESSION_PARSE_SUCCESS;