// -*- C++ -*- /** * \file GuiToolbar.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author Lars Gullik Bjønnes * \author John Levon * \author Jean-Marc Lasgouttes * \author Angus Leeming * \author Abdelrazak Younes * * Full author contact details are available in file CREDITS. */ #ifndef GUITOOLBAR_H #define GUITOOLBAR_H #include #include #include namespace lyx { class DocumentClass; class Inset; namespace frontend { class Action; class GuiCommandBuffer; class GuiLayoutFilterModel; class GuiToolbar; class GuiView; class LayoutBox; class ToolbarInfo; class ToolbarItem; class MenuButton : public QToolButton { Q_OBJECT public: /// MenuButton(GuiToolbar * bar, ToolbarItem const & item, bool const sticky = false); private: /// void initialize(); /// GuiToolbar * bar_; /// ToolbarItem const & tbitem_; private Q_SLOTS: /// void actionTriggered(QAction * action); /// void updateTriggered(); }; class GuiToolbar : public QToolBar { Q_OBJECT public: /// GuiToolbar(ToolbarInfo const &, GuiView &); /// Reimplemented from QToolbar to detect whether the /// toolbar is restored with MainWindow::restoreState(). void setVisible(bool visible); /// void setVisibility(int visibility); /// Add a button to the bar. void add(ToolbarItem const & item); /// Session key. /** * This key must be used for any session setting. **/ QString sessionKey() const; /// Save session settings. void saveSession() const; /// Restore session settings. void restoreSession(); /// bool isRestored() const; /// Refresh the contents of the bar. void update(bool in_math, bool in_table, bool review, bool in_mathmacrotemplate, bool in_ipa); /// void toggle(); /// GuiCommandBuffer * commandBuffer() { return command_buffer_; } /// Action * addItem(ToolbarItem const & item); Q_SIGNALS: /// void updated(); private: // load flags with saved values void initFlags(); /// void fill(); /// void showEvent(QShowEvent *); /// QList actions_; /// initial visibility flags int visibility_; /// GuiView & owner_; /// GuiCommandBuffer * command_buffer_; /// ToolbarInfo const & tbinfo_; /// bool filled_; /// bool restored_; }; } // namespace frontend } // namespace lyx #endif // GUITOOLBAR_H