]> git.lyx.org Git - lyx.git/blobdiff - src/session.h
* src/LaTeX.C
[lyx.git] / src / session.h
index f36730b6bb6f859e2a557d838f3ed7c6b319b4e4..4cf5dcb0808bd0c10c32f43d4bcd0f3f5c347941 100644 (file)
@@ -258,10 +258,14 @@ public:
        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 {
@@ -284,11 +288,20 @@ public:
 
                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:
        ///
@@ -300,11 +313,24 @@ 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
 {