+void Toolbar::setOnTop(bool b) {
+ m_ontop = b;
+ ostrstream s;
+ s << "session.screen" << screen.getScreenNumber() << ".toolbar.onTop" << ends;
+ config.setValue(s.str(), m_ontop ? "True" : "False");
+}
+
+void Toolbar::setAutoHide(bool b) {
+ m_autohide = b;
+ ostrstream s;
+ s << "session.screen" << screen.getScreenNumber() << ".toolbar.autoHide" <<
+ ends;
+ config.setValue(s.str(), m_autohide ? "True" : "False");
+}
+
+void Toolbar::setWidthPercent(int w) {
+ m_width_percent = w;
+ ostrstream s;
+ s << "session.screen" << screen.getScreenNumber() << ".toolbar.widthPercent"
+ << ends;
+ config.setValue(s.str(), m_width_percent);
+}
+
+void Toolbar::setPlacement(int p) {
+ m_placement = p;
+ ostrstream s;
+ s << "session.screen" << screen.getScreenNumber() << ".toolbar.placement" <<
+ ends;
+ const char *placement;
+ switch (m_placement) {
+ case TopLeft: placement = "TopLeft"; break;
+ case BottomLeft: placement = "BottomLeft"; break;
+ case TopCenter: placement = "TopCenter"; break;
+ case TopRight: placement = "TopRight"; break;
+ case BottomRight: placement = "BottomRight"; break;
+ case BottomCenter: default: placement = "BottomCenter"; break;
+ }
+ config.setValue(s.str(), placement);
+}
+
+void Toolbar::save() {
+ setOnTop(m_ontop);
+ setAutoHide(m_autohide);
+ setWidthPercent(m_width_percent);
+ setPlacement(m_placement);
+}
+
+void Toolbar::load() {
+ std::ostrstream rscreen, rname, rclass;
+ std::string s;
+ bool b;
+ long l;
+ rscreen << "session.screen" << screen.getScreenNumber() << '.' << ends;
+
+ rname << rscreen.str() << "toolbar.widthPercent" << ends;
+ rclass << rscreen.str() << "Toolbar.WidthPercent" << ends;
+ if (config.getValue(rname.str(), rclass.str(), l) && (l > 0 && l <= 100))
+ m_width_percent = l;
+
+ rname.seekp(0); rclass.seekp(0);
+ rname << rscreen.str() << "toolbar.placement" << ends;
+ rclass << rscreen.str() << "Toolbar.Placement" << ends;
+ if (config.getValue(rname.str(), rclass.str(), s)) {
+ if (0 == strncasecmp(s.c_str(), "TopLeft", s.length()))
+ m_placement = TopLeft;
+ else if (0 == strncasecmp(s.c_str(), "BottomLeft", s.length()))
+ m_placement = BottomLeft;
+ else if (0 == strncasecmp(s.c_str(), "TopCenter", s.length()))
+ m_placement = TopCenter;
+ else if (0 == strncasecmp(s.c_str(), "TopRight", s.length()))
+ m_placement = TopRight;
+ else if ( 0 == strncasecmp(s.c_str(), "BottomRight", s.length()))
+ m_placement = BottomRight;
+ else if ( 0 == strncasecmp(s.c_str(), "BottomCenter", s.length()))
+ m_placement = BottomCenter;
+ }
+
+ rname.seekp(0); rclass.seekp(0);
+ rname << rscreen.str() << "toolbar.onTop" << ends;
+ rclass << rscreen.str() << "Toolbar.OnTop" << ends;
+ if (config.getValue(rname.str(), rclass.str(), b))
+ m_ontop = b;
+
+ rname.seekp(0); rclass.seekp(0);
+ rname << rscreen.str() << "toolbar.autoHide" << ends;
+ rclass << rscreen.str() << "Toolbar.AutoHide" << ends;
+ if (config.getValue(rname.str(), rclass.str(), b))
+ m_hidden = m_autohide = b;
+}
+
+void Toolbar::reconfigure() {
+ frame.bevel_w = screen.getBevelWidth();
+ frame.width = screen.size().w() * m_width_percent / 100;