From 4f612935a68d450ad47f6366ef07b4032823653f Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 30 Apr 2005 21:47:46 +0000 Subject: Correctly draw window borders with GUI opacity in OpenGL mode. --- src/gui/window.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/gui/window.cpp') diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 62daa9cd..eacb3d6d 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -46,8 +46,7 @@ Window::Window(const std::string& caption, bool modal, Window *parent): // Load dialog title bar image ResourceManager *resman = ResourceManager::getInstance(); - dBorders = resman->getImage("graphics/gui/vscroll_grey.png"); - dBackground = resman->getImage("graphics/gui/bg_quad_dis.png"); + Image *dBorders = resman->getImage("graphics/gui/vscroll_grey.png"); border.grid[0] = dBorders->getSubImage(0, 0, 4, 4); border.grid[1] = dBorders->getSubImage(4, 0, 3, 4); @@ -59,6 +58,9 @@ Window::Window(const std::string& caption, bool modal, Window *parent): border.grid[7] = dBorders->getSubImage(4, 15, 3, 4); border.grid[8] = dBorders->getSubImage(7, 15, 4, 4); + dBorders->decRef(); + dBorders = NULL; + // Add chrome chrome = new gcn::Container(); chrome->setOpaque(false); @@ -72,12 +74,8 @@ Window::Window(const std::string& caption, bool modal, Window *parent): throw GCN_EXCEPTION("Window::Window. no windowContainer set"); } - // Load GUI alpha setting - guiAlpha = config.getValue("guialpha", 0.8f); - - // Set GUI alpha level - dBackground->setAlpha(guiAlpha); - dBorders->setAlpha(guiAlpha); + // Send GUI alpha changed for initialization + optionChanged("guialpha"); config.addListener("guialpha", this); } @@ -254,12 +252,14 @@ void Window::optionChanged(const std::string &name) { if (name == "guialpha") { - guiAlpha = config.getValue("guialpha", 0.8); + float guiAlpha = config.getValue("guialpha", 0.8); - if (dBackground->getAlpha() != guiAlpha) + for (int i = 0; i < 9; i++) { - dBackground->setAlpha(guiAlpha); - dBorders->setAlpha(guiAlpha); + if (border.grid[i]->getAlpha() != guiAlpha) + { + border.grid[i]->setAlpha(guiAlpha); + } } } } -- cgit v1.2.3-60-g2f50