From 0a4a162cf4f64bdb6ab76697cfe2197d7462b5f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Fri, 28 Feb 2014 21:03:56 +0200 Subject: [PATCH] libdeng2|RuleRectangle: Added midX/midY output rules --- .../libdeng2/include/de/widgets/rulerectangle.h | 2 ++ doomsday/libdeng2/src/widgets/rulerectangle.cpp | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/doomsday/libdeng2/include/de/widgets/rulerectangle.h b/doomsday/libdeng2/include/de/widgets/rulerectangle.h index 433248798c..fe4b683b79 100644 --- a/doomsday/libdeng2/include/de/widgets/rulerectangle.h +++ b/doomsday/libdeng2/include/de/widgets/rulerectangle.h @@ -54,6 +54,8 @@ class DENG2_PUBLIC RuleRectangle Rule const &bottom() const; Rule const &width() const; Rule const &height() const; + Rule const &midX() const; + Rule const &midY() const; /** * Sets one of the input rules of the rectangle. diff --git a/doomsday/libdeng2/src/widgets/rulerectangle.cpp b/doomsday/libdeng2/src/widgets/rulerectangle.cpp index 21379dc52f..859b7a8dfd 100644 --- a/doomsday/libdeng2/src/widgets/rulerectangle.cpp +++ b/doomsday/libdeng2/src/widgets/rulerectangle.cpp @@ -47,6 +47,8 @@ DENG2_PIMPL(RuleRectangle) // The output rules. IndirectRule *outputRules[MAX_OUTPUT_RULES]; + Rule *midX; + Rule *midY; Instance(Public *i) : Base(i) { @@ -61,11 +63,16 @@ DENG2_PIMPL(RuleRectangle) outputRules[i] = new IndirectRule; } + midX = holdRef(*outputRules[OutLeft] + *outputRules[OutWidth] / 2); + midY = holdRef(*outputRules[OutTop] + *outputRules[OutHeight] / 2); + debugName = QString("0x%1").arg(dintptr(thisPublic), 0, 16); } ~Instance() { + releaseRef(midX); + releaseRef(midY); releaseRef(normalizedAnchorX); releaseRef(normalizedAnchorY); @@ -241,6 +248,16 @@ Rule const &RuleRectangle::height() const return *d->outputRules[Instance::OutHeight]; } +Rule const &RuleRectangle::midX() const +{ + return *d->midX; +} + +Rule const &RuleRectangle::midY() const +{ + return *d->midY; +} + RuleRectangle &RuleRectangle::setInput(Rule::Semantic inputRule, Rule const &rule) { d->setInputRule(inputRule, rule);