aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/macgui/macwindow.cpp13
-rw-r--r--graphics/macgui/macwindow.h3
-rw-r--r--graphics/macgui/macwindowborder.cpp2
-rw-r--r--graphics/macgui/macwindowborder.h1
4 files changed, 11 insertions, 8 deletions
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index 7ad5666866..3c9372a745 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -186,7 +186,7 @@ void MacWindow::drawBorder() {
ManagedSurface *g = &_borderSurface;
prepareBorderSurface(g);
- if (_borders)
+ if (!_macBorder.empty())
drawBorderFromSurface(g);
else
drawSimpleBorder(g);
@@ -203,12 +203,11 @@ void MacWindow::prepareBorderSurface(ManagedSurface *g) {
}
void MacWindow::drawBorderFromSurface(ManagedSurface *g) {
- assert(_borders);
TransparentSurface srf;
srf.create(_borderSurface.w, _borderSurface.h, _borders->format);
- _macBorder.blitBorderInto(_borderSurface, false);
+ _macBorder.blitBorderInto(_borderSurface, _active);
_borderSurface.transBlitFrom(srf, _borderSurface.format.ARGBToColor(0, 255, 255, 255));
}
@@ -302,10 +301,12 @@ void MacWindow::setHighlight(WindowClick highlightedPart) {
_borderIsDirty = true;
}
- void MacWindow::setBorders(TransparentSurface *source) {
+ void MacWindow::setBorder(TransparentSurface *source, bool active) {
_borders = new TransparentSurface(*source);
- if (_borders)
- _macBorder.addInactiveBorder(_borders);
+ if (active)
+ _macBorder.addActiveBorder(_borders);
+ else
+ _macBorder.addInactiveBorder(_borders);
}
diff --git a/graphics/macgui/macwindow.h b/graphics/macgui/macwindow.h
index 1181190300..bffeaf7104 100644
--- a/graphics/macgui/macwindow.h
+++ b/graphics/macgui/macwindow.h
@@ -138,7 +138,7 @@ public:
bool processEvent(Common::Event &event);
bool hasAllFocus() { return _beingDragged || _beingResized; }
- void setBorders(TransparentSurface *source);
+ void setBorder(TransparentSurface *source, bool active);
private:
void drawBorder();
@@ -155,7 +155,6 @@ private:
ManagedSurface _borderSurface;
ManagedSurface _composeSurface;
- NinePatchBitmap *_bmp;
TransparentSurface *_borders;
MacWindowBorder _macBorder;
diff --git a/graphics/macgui/macwindowborder.cpp b/graphics/macgui/macwindowborder.cpp
index 7e64f1d87c..cbb2ef0571 100644
--- a/graphics/macgui/macwindowborder.cpp
+++ b/graphics/macgui/macwindowborder.cpp
@@ -15,6 +15,8 @@ MacWindowBorder::~MacWindowBorder() {
delete _inactiveBorder;
}
+bool MacWindowBorder::empty() { return !(_activeBorder || _inactiveBorder); }
+
void MacWindowBorder::addActiveBorder(TransparentSurface *source) {
// Assumes NinePatchBitmap invariants hold
_activeBorder = new NinePatchBitmap(source, false);
diff --git a/graphics/macgui/macwindowborder.h b/graphics/macgui/macwindowborder.h
index c956add76d..0c98e23156 100644
--- a/graphics/macgui/macwindowborder.h
+++ b/graphics/macgui/macwindowborder.h
@@ -62,6 +62,7 @@ public:
MacWindowBorder();
~MacWindowBorder();
+ bool empty();
void addActiveBorder(TransparentSurface *source);
void addInactiveBorder(TransparentSurface *source);
void blitBorderInto(ManagedSurface &destination, bool active);