3 * \file ToolbarBackend.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Jean-Marc Lasgouttes
10 * Full author contact details are available in file CREDITS.
13 #ifndef TOOLBAR_BACKEND_H
14 #define TOOLBAR_BACKEND_H
16 #include "FuncRequest.h"
31 /// the command buffer
33 /// adds space between buttons in the toolbar
35 /// a special combox insead of a button
37 /// a special widget to insert tabulars
45 ToolbarItem(Type type
,
46 FuncRequest
const & func
,
47 docstring
const & label
= docstring());
49 ToolbarItem(Type type
,
50 std::string
const & name
= std::string(),
51 docstring
const & label
= docstring());
72 OFF
= 2, //< do not show
73 MATH
= 4, //< show when in math
74 TABLE
= 8, //< show when in table
75 TOP
= 16, //< show at top
76 BOTTOM
= 32, //< show at bottom
77 LEFT
= 64, //< show at left
78 RIGHT
= 128, //< show at right
79 REVIEW
= 256, //< show when change tracking is enabled
80 AUTO
= 512, //< only if AUTO is set, when MATH, TABLE and REVIEW is used
81 MATHMACROTEMPLATE
= 1024 //< show in math macro template
84 typedef std::vector
<ToolbarItem
> Items
;
86 typedef Items::const_iterator item_iterator
;
88 explicit ToolbarInfo(std::string
const & name
= std::string())
99 /// store flags when coming to fullscreen mode
100 Flags before_fullscreen
;
102 /// read a toolbar from the file
103 ToolbarInfo
& read(Lexer
&);
107 void add(ToolbarItem
const &);
112 class ToolbarBackend
{
114 typedef std::vector
<ToolbarInfo
> Toolbars
;
118 /// iterator for all toolbars
119 Toolbars::const_iterator
begin() const { return usedtoolbars
.begin(); }
121 Toolbars::const_iterator
end() const { return usedtoolbars
.end(); }
123 Toolbars::iterator
begin() { return usedtoolbars
.begin(); }
125 Toolbars::iterator
end() { return usedtoolbars
.end(); }
127 /// read toolbars from the file
128 void readToolbars(Lexer
&);
130 /// read ui toolbar settings
131 void readToolbarSettings(Lexer
&);
134 ToolbarInfo
const * getDefinedToolbarInfo(std::string
const & name
) const;
136 ToolbarInfo
* getUsedToolbarInfo(std::string
const & name
);
138 // FIXME should be deleted when every window has its own toolbar config.
139 /// number of toggleFullScreen calls, i.e. number of FullScreen windows.
140 int fullScreenWindows
;
143 /// all the defined toolbars
147 Toolbars usedtoolbars
;
150 /// The global instance
151 extern ToolbarBackend toolbarbackend
;
157 #endif // TOOLBAR_BACKEND_H