public:
///
ToolbarInfo() :
- state(ON), location(NOTSET) { }
+ state(ON), location(NOTSET), posx(0), posy(0) { }
///
- ToolbarInfo(int s, int loc) :
- state(static_cast<State>(s)), location(static_cast<Location>(loc)) { }
+ ToolbarInfo(int s, int loc, int x=0, int y=0) :
+ state(static_cast<State>(s)),
+ location(static_cast<Location>(loc)),
+ posx(x),
+ posy(y)
+ { }
public:
enum State {
Location location;
+ /// x-position of the toolbar
+ int posx;
+
+ /// y-position of the toolbar
+ int posy;
+
/// potentially, icons
};
+ typedef boost::tuple<std::string, ToolbarInfo> ToolbarItem;
+
/// info for each toolbar
- typedef std::map<std::string, ToolbarInfo> ToolbarMap;
+ typedef std::vector<ToolbarItem> ToolbarList;
+
public:
///
/// return reference to toolbar info, create a new one if needed
ToolbarInfo & load(std::string const & name);
+ /// toolbar begin
+ ToolbarList::const_iterator begin() { return toolbars.begin(); }
+
+ /// toolbar end
+ ToolbarList::const_iterator end() { return toolbars.end(); }
+
private:
/// toolbar information
- ToolbarMap toolbars;
+ ToolbarList toolbars;
};
+/// comparison operator to sort toolbars, the rules are:
+/// ON before OFF
+/// TOP < BOTTOM < LEFT < RIGHT
+/// Line at each side
+/// order in each line
+bool operator< (ToolbarSection::ToolbarItem const & a, ToolbarSection::ToolbarItem const & b);
+
class SessionInfoSection : SessionSection
{