+2003-04-09 John Levon <levon@movementarian.org>
+
+ * ui/default.ui: add a name for the toolbar
+
2003-04-08 John Levon <levon@movementarian.org>
* ui/default.ui: add tooltips for toolbar items,
#
# This is the default toolbar:
-Toolbar
+Toolbar "Standard"
Layouts
Item "Open document" "file-open"
Item "Save document" "buffer-write"
+2003-04-09 John Levon <levon@movementarian.org>
+
+ * Makefile.in.in: translate the toolbar name
+
2003-03-30 John Levon <levon@movementarian.org>
* Makefile.in.in: fix escaping of " for qt UI files
printf("#: %s:%d\nmsgid \"%s\"\nmsgstr \"\"\n\n", \
FILENAME, FNR, line); \
} \
+ /^[^#]*Toolbar/ { \
+ line=$$0; \
+ sub(/[^"]*"/, "", line); \
+ sub(/".*/, "", line); \
+ printf("#: %s:%d\nmsgid \"%s\"\nmsgstr \"\"\n\n", \
+ FILENAME, FNR, line); \
+ } \
/^[^#]*Item/ { \
line=$$0; \
sub(/[^"]*"/, "", line); \
+2003-04-09 John Levon <levon@movementarian.org>
+
+ * ToolbarBackend.h:
+ * ToolbarBackend.C: allow multiple toolbars
+
2003-04-09 Lars Gullik Bjønnes <larsbj@gullik.net>
* undo_funcs.C (setCursorParUndo): adjust
namespace {
-enum _tooltags {
+enum tooltags {
TO_ADD = 1,
TO_ENDTOOLBAR,
TO_SEPARATOR,
TO_LAYOUTS,
- TO_NEWLINE,
TO_LAST
};
{ "end", TO_ENDTOOLBAR },
{ "item", TO_ADD },
{ "layouts", TO_LAYOUTS },
- { "newline", TO_NEWLINE },
{ "separator", TO_SEPARATOR }
};
}
-void ToolbarBackend::add(int action, string const & tooltip)
-{
- items.push_back(make_pair(action, tooltip));
-}
-
-
void ToolbarBackend::read(LyXLex & lex)
{
//consistency check
<< lex.getString() << '\'' << endl;
}
+ lex.next(true);
+
+ Toolbar tb;
+ tb.name = lex.getString();
+
bool quit = false;
lex.pushTable(toolTags, TO_LAST - 1);
lyxerr[Debug::PARSER]
<< "ToolbarBackend::read TO_ADD func: `"
<< func << '\'' << endl;
- add(func, tooltip);
+ add(tb, func, tooltip);
}
break;
case TO_SEPARATOR:
- add(SEPARATOR);
+ add(tb, SEPARATOR);
break;
case TO_LAYOUTS:
- add(LAYOUTS);
- break;
-
- case TO_NEWLINE:
- add(NEWLINE);
+ add(tb, LAYOUTS);
break;
case TO_ENDTOOLBAR:
break;
}
}
+
+ toolbars.push_back(tb);
+
lex.popTable();
}
-void ToolbarBackend::add(string const & func, string const & tooltip)
+void ToolbarBackend::add(Toolbar & tb, int action, string const & tooltip)
+{
+ tb.items.push_back(make_pair(action, tooltip));
+}
+
+
+void ToolbarBackend::add(Toolbar & tb, string const & func, string const & tooltip)
{
int const tf = lyxaction.LookupFunc(func);
lyxerr << "ToolbarBackend::add: no LyX command called `"
<< func << "' exists!" << endl;
} else {
- add(tf, tooltip);
+ add(tb, tf, tooltip);
}
}
/// the toolbar items
typedef std::vector<std::pair<int, string> > Items;
- typedef Items::iterator iterator;
+ /// a toolbar
+ struct Toolbar {
+ /// toolbar UI name
+ string name;
+ /// toolbar contents
+ Items items;
+ };
+
+ typedef std::vector<Toolbar> Toolbars;
+
+ typedef Items::const_iterator item_iterator;
- typedef Items::const_iterator const_iterator;
- ///
ToolbarBackend();
- ///
- iterator begin() {
- return items.begin();
- }
- ///
- const_iterator begin() const {
- return items.begin();
- }
- ///
- iterator end() {
- return items.end();
+
+ /// iterator for all toolbars
+ Toolbars::const_iterator begin() const {
+ return toolbars.begin();
}
- ///
- const_iterator end() const {
- return items.end();
+
+ Toolbars::const_iterator end() const {
+ return toolbars.end();
}
- ///
+
+ /// read a toolbar from the file
void read(LyXLex &);
/// return a full path of an XPM for the given action
private:
/// add the given lfun with tooltip if relevant
- void add(int, string const & tooltip = string());
+ void add(Toolbar & tb, int, string const & tooltip = string());
+
/// add the given lfun with tooltip if relevant
- void add(string const &, string const & tooltip);
- /// all the items
- Items items;
+ void add(Toolbar & tb, string const &, string const & tooltip);
+
+ /// all the toolbars
+ Toolbars toolbars;
};
/// The global instance
+2003-04-09 John Levon <levon@movementarian.org>
+
+ * Toolbar.C: handle multiple toolbars
+
2003-04-08 John Levon <levon@movementarian.org>
* Toolbar.C: handle tooltip
{
pimpl_ = new Pimpl(o, x, y);
- // extracts the toolbar actions from the backend
- for (ToolbarBackend::const_iterator cit = backend.begin();
- cit != backend.end(); ++cit) {
- pimpl_->add(cit->first, cit->second);
- }
+ // extracts the toolbars from the backend
+ ToolbarBackend::Toolbars::const_iterator cit = backend.begin();
+ ToolbarBackend::Toolbars::const_iterator end = backend.end();
+
+ for (; cit != end; ++cit)
+ pimpl_->add(*cit);
}
+2003-04-09 John Levon <levon@movementarian.org>
+
+ * Toolbar_pimpl.h:
+ * Toolbar_pimpl.C: handle API change for multiple
+ toolbars
+
2003-04-08 John Levon <levon@movementarian.org>
* Toolbar_pimpl.C: move xpm code into ToolbarBackend,
#include <config.h>
-#include "ToolbarBackend.h"
#include "debug.h"
#include "gettext.h"
#include "lyxfunc.h"
}
-void Toolbar::Pimpl::add(int action, string const & tooltip)
+void Toolbar::Pimpl::add(ToolbarBackend::Toolbar const & tb)
{
- if (!toolbars_.size()) {
- toolbars_.push_back(new QToolBar(owner_));
- }
+ QToolBar * qtb = new QToolBar(qt_(tb.name), owner_);
+
+ ToolbarBackend::item_iterator it = tb.items.begin();
+ ToolbarBackend::item_iterator end = tb.items.end();
+ for (; it != end; ++it)
+ add(qtb, it->first, it->second);
+
+ toolbars_.push_back(qtb);
+}
+
+void Toolbar::Pimpl::add(QToolBar * tb, int action, string const & tooltip)
+{
switch (action) {
case ToolbarBackend::SEPARATOR:
- toolbars_.back()->addSeparator();
- break;
- case ToolbarBackend::NEWLINE:
- toolbars_.push_back(new QToolBar(owner_));
+ tb->addSeparator();
break;
case ToolbarBackend::LAYOUTS: {
- combo_ = new QLComboBox(toolbars_.back());
+ combo_ = new QLComboBox(tb);
QSizePolicy p(QSizePolicy::Minimum, QSizePolicy::Fixed);
combo_->setSizePolicy(p);
combo_->setFocusPolicy(QWidget::ClickFocus);
}
default: {
QPixmap p = QPixmap(toolbarbackend.getIcon(action).c_str());
- QToolButton * tb =
+ QToolButton * button =
new QToolButton(p, toqstr(tooltip), "",
- proxy_.get(), SLOT(button_selected()), toolbars_.back());
+ proxy_.get(), SLOT(button_selected()), tb);
- map_[tb] = action;
+ map_[button] = action;
break;
}
}
#include "frontends/Toolbar.h"
+#include "ToolbarBackend.h"
#include "qt_helpers.h"
~Pimpl();
- /// add a new button to the toolbar.
- void add(int action, string const & tooltip);
+ /// add a new toolbar
+ void add(ToolbarBackend::Toolbar const & tb);
+
+ /// add an item to a toolbar
+ void add(QToolBar * tb, int action, string const & tooltip);
/// update the state of the icons
void update();
+2003-04-09 John Levon <levon@movementarian.org>
+
+ * Toolbar_pimpl.C:
+ * Toolbar_pimpl.h: ignore every toolbar after the first one
+
2003-04-09 Angus Leeming <leeming@lyx.org>
Enable "proper" tooltips in browser widgets if your version of
#include "Tooltips.h"
#include FORMS_H_LOCATION
#include "combox.h"
-#include "ToolbarBackend.h"
#include "xforms_helpers.h"
#include "LyXAction.h"
} // namespace anon
+void Toolbar::Pimpl::add(ToolbarBackend::Toolbar const & tb)
+{
+ // we can only handle one toolbar
+ if (!toollist_.empty())
+ return;
+
+ ToolbarBackend::item_iterator it = tb.items.begin();
+ ToolbarBackend::item_iterator end = tb.items.end();
+ for (; it != end; ++it)
+ add(it->first, it->second);
+}
+
+
void Toolbar::Pimpl::add(int action, string const & tooltip)
{
toolbarItem item;
#include "forms_fwd.h"
#include "frontends/Toolbar.h"
+#include "ToolbarBackend.h"
class XFormsView;
~Pimpl();
- /// add a new button to the toolbar.
+ /// add a new toolbar
+ void add(ToolbarBackend::Toolbar const & tb);
+
+ /// add an item to a toolbar
void add(int action, string const & tooltip);
/// update the state of the icons