]> git.lyx.org Git - lyx.git/blobdiff - src/session.h
hopefully fix tex2lyx linking.
[lyx.git] / src / session.h
index 36c78f57c56347c664af6efbf098304409e3058c..aa8d63a7951f2f4ab3d8b830e34c2266a000d26e 100644 (file)
@@ -195,7 +195,7 @@ public:
 public:
        /// constructor, set max_bookmarks
        /// allow 20 regular bookmarks
-       BookmarksSection() : max_bookmarks(20), bookmarks(0) {}
+       BookmarksSection() : bookmarks(0), max_bookmarks(20) {}
 
        /// Save the current position as bookmark
        /// if save==false, save to temp_bookmark
@@ -238,6 +238,65 @@ private:
 };
 
 
+class ToolbarSection : SessionSection
+{
+public:
+       /// information about a toolbar, not all information can be
+       /// saved/restored by all frontends, but this class provides
+       /// a superset of things that can be managed by session.
+       class ToolbarInfo
+       {
+       public:
+               ///
+               ToolbarInfo() :
+                       state(ON), location(NOTSET) { }
+               ///
+               ToolbarInfo(int s, int loc) :
+                       state(static_cast<State>(s)), location(static_cast<Location>(loc)) { }
+
+       public:
+               enum State {
+                       ON,
+                       OFF,
+                       AUTO
+               };
+
+               /// on/off/auto
+               State state;
+
+               /// location: this can be intepreted differently.
+               enum Location {
+                       TOP,
+                       BOTTOM,
+                       LEFT,
+                       RIGHT,
+                       NOTSET
+               };
+
+               Location location;
+
+               /// potentially, icons
+       };
+
+       /// info for each toolbar
+       typedef std::map<std::string, ToolbarInfo> ToolbarMap;
+
+public:
+       ///
+       void read(std::istream & is);
+
+       ///
+       void write(std::ostream & os) const;
+
+       /// return reference to toolbar info, create a new one if needed
+       ToolbarInfo & load(std::string const & name);
+
+private:
+       /// toolbar information
+       ToolbarMap toolbars;
+};
+
+
 class SessionInfoSection : SessionSection
 {
 public:
@@ -306,6 +365,12 @@ public:
        ///
        BookmarksSection const & bookmarks() const { return bookmarks_; }
 
+       ///
+       ToolbarSection & toolbars() { return toolbars_; }
+
+       ///
+       ToolbarSection const & toolbars() const { return toolbars_; }
+
        ///
        SessionInfoSection & sessionInfo() { return session_info; }
 
@@ -335,6 +400,9 @@ private:
        ///
        BookmarksSection bookmarks_;
 
+       ///
+       ToolbarSection toolbars_;
+
        ///
        SessionInfoSection session_info;
 };