3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS.
14 #include <libglademm.h>
17 #include "ControlAboutlyx.h"
18 #include "GAboutlyx.h"
19 #include "support/filetools.h"
22 using std::ostringstream;
27 enum TranslateState {NORMAL, BEGIN, IN_AT, IN_BOLD, IN_ITALIC};
30 Glib::ustring translateMarkup(Glib::ustring const & lyxMarkup)
32 Glib::ustring::const_iterator it = lyxMarkup.begin();
33 Glib::ustring pangoMarkup;
34 TranslateState state = BEGIN;
35 for (; it != lyxMarkup.end(); it++) {
44 pangoMarkup.push_back('\n');
48 pangoMarkup.push_back(*it);
64 pangoMarkup.push_back('@');
65 pangoMarkup.push_back('\n');
69 pangoMarkup.push_back('@');
70 pangoMarkup.push_back(*it);
77 pangoMarkup += "</b>\n";
80 pangoMarkup.push_back(*it);
87 pangoMarkup += "</i>\n";
90 pangoMarkup.push_back(*it);
97 pangoMarkup.push_back('\n');
100 pangoMarkup.push_back(*it);
105 pangoMarkup += "amp;";
108 pangoMarkup.erase(--(pangoMarkup.end()));
109 pangoMarkup += "<";
112 pangoMarkup.erase(--(pangoMarkup.end()));
113 pangoMarkup += ">";
121 pangoMarkup.push_back('@');
124 pangoMarkup += "</i>";
127 pangoMarkup += "</b>";
139 GAboutlyx::GAboutlyx(Dialog & parent)
140 : GViewCB<ControlAboutlyx, GViewGladeB>(parent, "About LyX")
145 void GAboutlyx::doBuild()
147 string const gladeName =
148 lyx::support::LibFileSearch("glade", "aboutlyx", "glade");
149 xml_ = Gnome::Glade::Xml::create(gladeName);
150 Gtk::Label * version;
151 Gtk::Label * credits;
152 Gtk::Label * license;
153 xml_->get_widget("version", version);
154 xml_->get_widget("credits", credits);
155 xml_->get_widget("license", license);
156 std::ostringstream vs;
157 vs << controller().getVersion()
158 << std::endl << lyx_version_info;
159 version->set_text(Glib::locale_to_utf8(vs.str()));
160 std::ostringstream crs;
161 controller().getCredits(crs);
162 credits->set_markup(translateMarkup(Glib::locale_to_utf8(crs.str())));
163 std::ostringstream ls;
164 ls << controller().getCopyright() << "\n\n"
165 << controller().getLicense() << "\n\n"
166 << controller().getDisclaimer();
167 license->set_text(Glib::locale_to_utf8(ls.str()));
169 xml_->get_widget("close_button", btn);
170 btn->signal_clicked().connect(SigC::slot(*this, &GViewBase::onCancel));