X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsession.h;h=aa8d63a7951f2f4ab3d8b830e34c2266a000d26e;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=5ab5ef32f6090e54fb2b18551b7a3a6d679757b9;hpb=f49f2f6e22a087a05904fe73b989daf26cc5e41e;p=lyx.git diff --git a/src/session.h b/src/session.h index 5ab5ef32f6..aa8d63a795 100644 --- a/src/session.h +++ b/src/session.h @@ -195,7 +195,7 @@ public: public: /// constructor, set max_bookmarks /// allow 20 regular bookmarks - BookmarksSection::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(s)), location(static_cast(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 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; };