X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FToolbar.cc;h=59b92ee101637fb4aa44a4ffc0723f14260420ec;hb=89563281384c34886fb12b169d1bdf8d293f0b48;hp=12f778eba542523c8ebc4304e9e0bced9553ab9a;hpb=18499a6920309d6ddfe70767f8a90e2778a96ba7;p=chaz%2Fopenbox diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 12f778eb..59b92ee1 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -62,7 +62,10 @@ # endif // HAVE_SYS_TIME_H #endif // TIME_WITH_SYS_TIME -#include +#ifdef HAVE_SSTREAM +# include +#endif // HAVE_SSTREAM + #include Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn), @@ -154,14 +157,13 @@ Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn), mapToolbar(); } -int Toolbar::getX() const { - return ((m_hidden) ? frame.x_hidden : frame.x); -} - -int Toolbar::getY() const { - if (screen.hideToolbar()) return screen.size().h(); - else if (m_hidden) return frame.y_hidden; - else return frame.y; +Rect Toolbar::area() const { + int x = ((m_hidden) ? frame.x_hidden : frame.x); + int y; + if (screen.hideToolbar()) y = screen.size().h(); + else if (m_hidden) y = frame.y_hidden; + else y = frame.y; + return Rect(x, y, frame.width, frame.height); } unsigned int Toolbar::getExposedHeight() const { @@ -215,35 +217,30 @@ Toolbar::~Toolbar() { void Toolbar::setOnTop(bool b) { m_ontop = b; - std::ostrstream s; - s << "session.screen" << screen.getScreenNumber() << ".toolbar.onTop" << ends; + std::ostringstream s; + s << "session.screen" << screen.getScreenNumber() << ".toolbar.onTop"; config.setValue(s.str(), m_ontop ? "True" : "False"); - s.rdbuf()->freeze(0); } void Toolbar::setAutoHide(bool b) { m_autohide = b; - std::ostrstream s; - s << "session.screen" << screen.getScreenNumber() << ".toolbar.autoHide" << - ends; + std::ostringstream s; + s << "session.screen" << screen.getScreenNumber() << ".toolbar.autoHide"; config.setValue(s.str(), m_autohide ? "True" : "False"); - s.rdbuf()->freeze(0); } void Toolbar::setWidthPercent(int w) { m_width_percent = w; - std::ostrstream s; + std::ostringstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.widthPercent" - << ends; + ; config.setValue(s.str(), m_width_percent); - s.rdbuf()->freeze(0); } void Toolbar::setPlacement(int p) { m_placement = p; - std::ostrstream s; - s << "session.screen" << screen.getScreenNumber() << ".toolbar.placement" << - ends; + std::ostringstream s; + s << "session.screen" << screen.getScreenNumber() << ".toolbar.placement"; const char *placement; switch (m_placement) { case TopLeft: placement = "TopLeft"; break; @@ -254,7 +251,6 @@ void Toolbar::setPlacement(int p) { case BottomCenter: default: placement = "BottomCenter"; break; } config.setValue(s.str(), placement); - s.rdbuf()->freeze(0); } void Toolbar::save() { @@ -265,22 +261,22 @@ void Toolbar::save() { } void Toolbar::load() { - std::ostrstream rscreen, rname, rclass; + std::ostringstream rscreen, rname, rclass; std::string s; bool b; long l; - rscreen << "session.screen" << screen.getScreenNumber() << '.' << ends; + rscreen << "session.screen" << screen.getScreenNumber() << '.'; - rname << rscreen.str() << "toolbar.widthPercent" << ends; - rclass << rscreen.str() << "Toolbar.WidthPercent" << ends; + rname << rscreen.str() << "toolbar.widthPercent"; + rclass << rscreen.str() << "Toolbar.WidthPercent"; if (config.getValue(rname.str(), rclass.str(), l) && (l > 0 && l <= 100)) m_width_percent = l; else m_width_percent =66; rname.seekp(0); rclass.seekp(0); - rname << rscreen.str() << "toolbar.placement" << ends; - rclass << rscreen.str() << "Toolbar.Placement" << ends; + rname << rscreen.str() << "toolbar.placement"; + rclass << rscreen.str() << "Toolbar.Placement"; if (config.getValue(rname.str(), rclass.str(), s)) { if (0 == strncasecmp(s.c_str(), "TopLeft", s.length())) m_placement = TopLeft; @@ -298,24 +294,20 @@ void Toolbar::load() { m_placement = BottomCenter; rname.seekp(0); rclass.seekp(0); - rname << rscreen.str() << "toolbar.onTop" << ends; - rclass << rscreen.str() << "Toolbar.OnTop" << ends; + rname << rscreen.str() << "toolbar.onTop"; + rclass << rscreen.str() << "Toolbar.OnTop"; if (config.getValue(rname.str(), rclass.str(), b)) m_ontop = b; else m_ontop = false; rname.seekp(0); rclass.seekp(0); - rname << rscreen.str() << "toolbar.autoHide" << ends; - rclass << rscreen.str() << "Toolbar.AutoHide" << ends; + rname << rscreen.str() << "toolbar.autoHide"; + rclass << rscreen.str() << "Toolbar.AutoHide"; if (config.getValue(rname.str(), rclass.str(), b)) m_hidden = m_autohide = b; else m_hidden = m_autohide = false; - - rscreen.rdbuf()->freeze(0); - rname.rdbuf()->freeze(0); - rclass.rdbuf()->freeze(0); } void Toolbar::reconfigure() { @@ -398,7 +390,8 @@ void Toolbar::reconfigure() { if (tt) { char t[1025], *time_string = (char *) 0; int len = strftime(t, 1024, screen.strftimeFormat(), tt); - t[len++-1] = ' '; // add a space to the string for padding + t[len++] = 'A'; // add size to the string for padding + t[len++] = 'A'; // add size to the string for padding t[len] = '\0'; if (i18n->multibyte()) {