#ifndef GUI_TOOLBARS_H
#define GUI_TOOLBARS_H
-#include "frontends/Toolbars.h"
+#include "support/docstring.h"
#include <map>
namespace lyx {
+
+class DocumentClass;
+class ToolbarInfo;
+
namespace frontend {
-class GuiLayoutBox;
class GuiToolbar;
-class GuiViewBase;
+class GuiView;
-class GuiToolbars : public Toolbars
+class GuiToolbars
{
public:
///
- GuiToolbars(GuiViewBase & owner);
+ GuiToolbars(GuiView & owner);
+
+ /// Initialize the toolbars using the backend database.
+ void init();
+
+ /// Show/hide the named toolbar.
+ void display(std::string const & name, bool show);
+
+ /// get toolbar info
+ ToolbarInfo * getToolbarInfo(std::string const & name);
+
+ /** toggle the state of toolbars (on/off/auto). Skip "auto"
+ * when allowauto is false.
+ */
+ void toggleToolbarState(std::string const & name, bool allowauto);
+ /// Update the state of the toolbars.
+ void update(bool in_math, bool in_table, bool review,
+ bool in_mathmacrotemplate);
+
+ /// Is the Toolbar currently visible?
bool visible(std::string const & name) const;
+
+ /// save toolbar information
void saveToolbarInfo();
- void setLayout(docstring const & layout);
- /** Populate the layout combox - returns whether we did a full
- * update or not
- */
- bool updateLayoutList(TextClassPtr textclass);
+ /// Show or hide the command buffer.
+ void showCommandBuffer(bool show_it);
- /// Drop down the layout list.
- void openLayoutList();
- /// Erase the layout list.
- void clearLayoutList();
+ /// toggle visibility of toolbars and save its flags for return
+ void toggleFullScreen(bool start_full_screen);
-protected:
+private:
+ /// 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(ToolbarInfo const & tbinfo, bool show);
+
+ /// Update the state of the icons
void updateIcons();
+ // load flags with saved values
+ void initFlags(ToolbarInfo & tbinfo);
+
/// The parent window.
- GuiViewBase & owner_;
-
- /** The layout box is actually owned by whichever toolbar
- * contains it. All the Toolbars class needs is a means of
- * accessing it.
- *
- * We don't need to use boost::weak_ptr here because the toolbars
- * are also stored here. There are, therefore, no lifetime issues.
- */
- GuiLayoutBox * layout_;
+ GuiView & owner_;
/// Toolbar store providing access to individual toolbars by name.
typedef std::map<std::string, GuiToolbar *> ToolbarsMap;
ToolbarsMap toolbars_;
/// The last textclass layout list in the layout choice selector
- TextClassPtr last_textclass_;
+ DocumentClass * last_textclass_;
};
} // namespace frontend
} // namespace lyx
-#endif // NOT GUI_TOOLBARS_H
+#endif // GUI_TOOLBARS_H