]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiToolbar.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiToolbar.h
index 0d903a80655af425cf439c0bd234c86137a14dfd..31146ee3999c7fff26c43d695a62e35bf0c5010e 100644 (file)
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author John Levon
  * \author Jean-Marc Lasgouttes
  * \author Angus Leeming
 #ifndef GUITOOLBAR_H
 #define GUITOOLBAR_H
 
-#include "frontends/Toolbars.h"
 #include "Session.h"
 
+#include <QList>
 #include <QToolBar>
-
-#include <boost/scoped_ptr.hpp>
-
-#include <vector>
-
-class QComboBox;
+#include <QToolButton>
 
 namespace lyx {
 
-class FuncRequest;
+class DocumentClass;
+class Inset;
 
 namespace frontend {
 
-class GuiCommandBuffer;
-class GuiLayoutBox;
-class GuiViewBase;
 class Action;
-
-
-class GuiLayoutBox : public QObject, public LayoutBox
+class GuiCommandBuffer;
+class GuiLayoutFilterModel;
+class GuiToolbar;
+class GuiView;
+class LayoutBox;
+class ToolbarInfo;
+class ToolbarItem;
+
+class MenuButton : public QToolButton
 {
        Q_OBJECT
 public:
-       GuiLayoutBox(QToolBar *, GuiViewBase &);
+       ///
+       MenuButton(GuiToolbar * bar, ToolbarItem const & item,
+               bool const sticky = false);
+       ///
+       void mousePressEvent(QMouseEvent * e);
 
-       /// select the right layout in the combox.
-       void set(docstring const & layout);
-       /// Populate the layout combox.
-       void update();
-       /// Erase the layout list.
-       void clear();
-       /// Display the layout list.
-       void open();
+private:
        ///
-       void setEnabled(bool);
+       GuiToolbar * bar_;
+       ///
+       ToolbarItem const & tbitem_;
+       ///
+       bool initialized_;
 
 private Q_SLOTS:
-       void selected(const QString & str);
-
-private:
-       QComboBox * combo_;
-       GuiViewBase & owner_;
+       ///
+       void actionTriggered(QAction * action);
 };
 
 
-class GuiToolbar : public QToolBar, public Toolbar
+
+class GuiToolbar : public QToolBar
 {
        Q_OBJECT
 public:
-       GuiToolbar(ToolbarInfo const &, GuiViewBase &);
+       ///
+       GuiToolbar(ToolbarInfo const &, GuiView &);
 
-       //~GuiToolbar();
+       ///
+       void setVisibility(int visibility);
 
+       /// Add a button to the bar.
        void add(ToolbarItem const & item);
-       void hide(bool);
-       void show(bool);
-       bool isVisible() const;
-       void saveInfo(ToolbarSection::ToolbarInfo & info);
-       void update();
-       LayoutBox * layout() const { return layout_.get(); }
+
+       /// 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();
+
+       /// Refresh the contents of the bar.
+       void update(bool in_math, bool in_table, bool review,
+               bool in_mathmacrotemplate);
+
+       ///
+       void toggle();
+
+       ///
+       GuiCommandBuffer * commandBuffer() { return command_buffer_; }
+
        ///
-       void focusCommandBuffer();
+       Action * addItem(ToolbarItem const & item);
 
 Q_SIGNALS:
+       ///
        void updated();
 
 private:
-       GuiCommandBuffer * command_buffer_;
-
-       std::vector<Action *> ActionVector;
-       GuiViewBase & owner_;
+       // load flags with saved values
+       void initFlags();
+       ///
+       void fill();
+       ///
+       void showEvent(QShowEvent *);
 
-       boost::scoped_ptr<GuiLayoutBox> layout_;
+       ///
+       QString name_;
+       ///
+       QList<Action *> actions_;
+       /// initial visibility flags
+       int visibility_;
+       ///
+       bool allowauto_;
+       ///
+       GuiView & owner_;
+       ///
+       GuiCommandBuffer * command_buffer_;
+       ///
+       ToolbarInfo const & tbinfo_;
+       ///
+       bool filled_;
 };
 
-/// return a full path of an XPM for the given action
-std::string const getIcon(FuncRequest const & f, bool unknown = true);
-
 } // namespace frontend
 } // namespace lyx