summaryrefslogtreecommitdiff
path: root/library/modules
diff options
context:
space:
mode:
authorQuietust2012-08-21 15:28:11 -0500
committerQuietust2012-08-21 15:28:11 -0500
commit51ba2523446596f4cdf0f179702ecc3b1eefa965 (patch)
tree8b6e8a815685b449463d8815e15dab48c8f6be26 /library/modules
parent985d96c596ac190493f36c9764bfe5308dfecfe3 (diff)
downloaddfhack-51ba2523446596f4cdf0f179702ecc3b1eefa965.tar.gz
dfhack-51ba2523446596f4cdf0f179702ecc3b1eefa965.tar.bz2
dfhack-51ba2523446596f4cdf0f179702ecc3b1eefa965.tar.xz
Add Screen::drawBorder(string), duplicates DF's interfacest::drawborder()
Diffstat (limited to 'library/modules')
-rw-r--r--library/modules/Screen.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/library/modules/Screen.cpp b/library/modules/Screen.cpp
index 57b014ac..561ae2c5 100644
--- a/library/modules/Screen.cpp
+++ b/library/modules/Screen.cpp
@@ -151,6 +151,27 @@ bool Screen::fillRect(const Pen &pen, int x1, int y1, int x2, int y2)
return true;
}
+bool Screen::drawBorder(const std::string &title)
+{
+ if (!gps) return false;
+
+ int dimx = gps->dimx, dimy = gps->dimy;
+ Pen border(0xDB, 8);
+ Pen text(0, 0, 7);
+
+ for (int x = 0; x < dimx; x++)
+ {
+ doSetTile(border, x * dimy + 0);
+ doSetTile(border, x * dimy + dimy - 1);
+ }
+ for (int y = 0; y < dimy; y++)
+ {
+ doSetTile(border, 0 * dimy + y);
+ doSetTile(border, (dimx - 1) * dimy + y);
+ }
+ return paintString(text, (dimx - title.length()) / 2, 0, title);
+}
+
bool Screen::clear()
{
if (!gps) return false;