* Licence details can be found in the file COPYING.
*
* \author Huang Ying
+ * \author John Spray
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
+// Too hard to make concept checks work with this file
+#ifdef _GLIBCPP_CONCEPT_CHECKS
+#undef _GLIBCPP_CONCEPT_CHECKS
+#endif
+
#include "GToolbar.h"
#include "GView.h"
+#include "ghelpers.h"
+
#include "buffer.h"
#include "bufferparams.h"
#include "debug.h"
Glib::ustring layoutGuiName = (*(combo_.get_active()))[cols_.name];
- // we get two signal, one of it is empty and useless
+ // we get two signal, one of them is empty and useless
if (layoutGuiName.empty())
return;
- LyXTextClass const & tc = getTextClass(owner_);
- LyXTextClass::const_iterator it = tc.begin();
- LyXTextClass::const_iterator const end = tc.end();
- for (; it != end; ++it) {
- string const & name = (*it)->name();
- if (name == layoutGuiName) {
- owner_.getLyXFunc().dispatch(
- FuncRequest(LFUN_LAYOUT, name),
- true);
- return;
- }
- }
- lyxerr << "ERROR (GLayoutBox::selected): layout not found! name: "
- << layoutGuiName << std::endl;
+ layoutSelected(owner_, layoutGuiName);
}
} // namespace frontend
}
default: {
- Glib::ustring xpmName =
- Glib::locale_to_utf8(toolbarbackend.getIcon(func));
+ // choose an icon from the funcrequest
+ Gtk::BuiltinStockID stockID = getGTKStockIcon(func);
+
Glib::ustring tip = Glib::locale_to_utf8(tooltip);
+
Gtk::ToolButton * toolbutton;
- if (xpmName.size() == 0) {
- toolbutton = Gtk::manage(new Gtk::ToolButton);
+ if (stockID != Gtk::Stock::MISSING_IMAGE) {
+ // Prefer stock gtk graphics
+ Gtk::IconSize size(Gtk::ICON_SIZE_LARGE_TOOLBAR);
+ Gtk::Image * image = Gtk::manage(new Gtk::Image(stockID, size));
+ image->show();
+ toolbutton = Gtk::manage(new Gtk::ToolButton(*image));
} else {
+ Glib::ustring xpmName =
+ Glib::locale_to_utf8(toolbarbackend.getIcon(func));
Gtk::Image * image = Gtk::manage(new Gtk::Image(xpmName));
image->show();
toolbutton = Gtk::manage(new Gtk::ToolButton(*image));
}
+
// This code is putting a function reference into the GObject data field
// named gToolData. That's how we know how to update the status of the
// toolitem later.
reinterpret_cast<void*>(&const_cast<FuncRequest &>(func)));
toolbutton->set_tooltip(*toolbar_.get_tooltips_object(),tip);
- /*toolbar_.get_tooltips_object()->set_tip(*toolbutton, tip);*/
toolbutton->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this,
>oolbar::clicked), FuncRequest(func)));
void GToolbar::clicked(FuncRequest func)
{
- owner_.getLyXFunc().dispatch(func, true);
+ owner_.getLyXFunc().dispatch(func);
}