#include "ToolbarBackend.h"
#include <boost/shared_ptr.hpp>
#include <map>
+#include "Session.h"
-class LyXView;
+namespace lyx {
+
+class LyXView;
class LayoutBox {
public:
public:
virtual ~Toolbar() {}
/// Add a button to the bar.
- virtual void add(FuncRequest const & func,
- std::string const & tooltip) = 0;
+ virtual void add(ToolbarItem const & item) = 0;
/** Hide the bar.
* \param update_metrics is a hint to the layout engine that the
* metrics should be updated.
*/
virtual void show(bool update_metrics) = 0;
+ /** update toolbar information
+ * ToolbarInfo will then be saved by session
+ */
+ virtual void saveInfo(ToolbarSection::ToolbarInfo & tbinfo) = 0;
+ /// whether toolbar is visible
+ virtual bool isVisible() const = 0;
/// Refresh the contents of the bar.
virtual void update() = 0;
/// Accessor to the layout combox, if any.
/// Show/hide the named toolbar.
void display(std::string const & name, bool show);
+
+ /// get toolbar state (on/off/auto)
+ ToolbarInfo::Flags getToolbarState(std::string const & name);
+
+ /// toggle the state of toolbars (on/off/auto)
+ void toggleToolbarState(std::string const & name);
+
/// Update the state of the toolbars.
- void update(bool in_math, bool in_table);
+ void update(bool in_math, bool in_table, bool review);
+
+ /// Is the Toolbar currently visible?
+ bool visible(std::string const & name) const;
+
+ /// save toolbar information
+ void saveToolbarInfo();
/// Select the right layout in the combox.
void setLayout(std::string const & layout);
typedef boost::shared_ptr<Toolbar> ToolbarPtr;
private:
- /// Add a new toolbar.
- void add(ToolbarBackend::Toolbar const & tb);
+ /// Add a new toolbar. if newline==true, start from a new line
+ void add(ToolbarInfo const & tbinfo, bool newline);
/// Show or hide a toolbar.
- void displayToolbar(ToolbarBackend::Toolbar const & tb, bool show);
+ void displayToolbar(ToolbarInfo const & tbinfo, bool show);
/// Update the state of the icons
void update();
/// The last textclass layout list in the layout choice selector
int last_textclass_;
+
+ // load flags with saved values
+ void initFlags(ToolbarInfo & tbinfo);
};
+/// Set the layout in the kernel when an entry has been selected
+void layoutSelected(LyXView & lv, std::string const & name);
-/** Each GUI frontend should provide its own version of this.
- */
-Toolbars::ToolbarPtr make_toolbar(ToolbarBackend::Toolbar const &, LyXView &);
+
+} // namespace lyx
#endif // NOT TOOLBARS_H