aboutsummaryrefslogtreecommitdiff
path: root/common/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/system.h')
-rw-r--r--common/system.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/common/system.h b/common/system.h
index c1dd846a52..776e76798a 100644
--- a/common/system.h
+++ b/common/system.h
@@ -439,6 +439,28 @@ public:
* and instead implement the functionality in the frontend.
*/
virtual void setShakePos(int shakeOffset) = 0;
+
+ /**
+ * Sets the area of the screen that has the focus. For example, when a character
+ * is speaking, they will have the focus. Allows for pan-and-scan style views
+ * where the backend could follow the speaking character or area of interest on
+ * the screen.
+ *
+ * The backend is responsible for clipping the rectangle and deciding how best to
+ * zoom the screen to show any shape and size rectangle the engine provides.
+ *
+ * @param rect A rectangle on the screen to be focused on
+ * @see clearFocusRectangle
+ */
+ virtual void setFocusRectangle(const Common::Rect& rect) {}
+
+ /**
+ * Clears the focus set by a call to setFocusRectangle(). This allows the engine
+ * to clear the focus during times when no particular area of the screen has the
+ * focus.
+ * @see setFocusRectangle
+ */
+ virtual void clearFocusRectangle() {}
//@}