// -*- 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 "Session.h" #include #include #include namespace lyx { class ToolbarItem; namespace frontend { class GuiCommandBuffer; class GuiView; class Action; class GuiLayoutBox : public QComboBox { Q_OBJECT public: GuiLayoutBox(GuiView &); /// select the right layout in the combobox. void set(docstring const & layout); /// Populate the layout combobox. void updateContents(); /// Add Item to Layout box according to sorting settings from preferences void addItemSort(QString const & item, bool sorted); private Q_SLOTS: void selected(const QString & str); private: GuiView & owner_; }; class GuiToolbar : public QToolBar { Q_OBJECT public: GuiToolbar(ToolbarInfo const &, GuiView &); /// Add a button to the bar. void add(ToolbarItem const & item); /** update toolbar information * ToolbarInfo will then be saved by session */ void saveInfo(ToolbarSection::ToolbarInfo & info); /// Refresh the contents of the bar. void updateContents(); GuiLayoutBox * layout() const { return layout_; } /// GuiCommandBuffer * commandBuffer() { return command_buffer_; } Q_SIGNALS: void updated(); private: Action * addItem(ToolbarItem const & item); QList actions_; GuiView & owner_; GuiLayoutBox * layout_; GuiCommandBuffer * command_buffer_; }; } // namespace frontend } // namespace lyx #endif // GUITOOLBAR_H