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"
24 enum TranslateState {NORMAL, BEGIN, IN_AT, IN_BOLD, IN_ITALIC};
27 Glib::ustring translateMarkup(Glib::ustring const & lyxMarkup)
29 Glib::ustring::const_iterator it = lyxMarkup.begin();
30 Glib::ustring pangoMarkup;
31 TranslateState state = BEGIN;
32 for (; it != lyxMarkup.end(); it++) {
41 pangoMarkup.push_back('\n');
45 pangoMarkup.push_back(*it);
61 pangoMarkup.push_back('@');
62 pangoMarkup.push_back('\n');
66 pangoMarkup.push_back('@');
67 pangoMarkup.push_back(*it);
74 pangoMarkup += "</b>\n";
77 pangoMarkup.push_back(*it);
84 pangoMarkup += "</i>\n";
87 pangoMarkup.push_back(*it);
94 pangoMarkup.push_back('\n');
97 pangoMarkup.push_back(*it);
102 pangoMarkup += "amp;";
105 pangoMarkup.erase(--(pangoMarkup.end()));
106 pangoMarkup += "<";
109 pangoMarkup.erase(--(pangoMarkup.end()));
110 pangoMarkup += ">";
118 pangoMarkup.push_back('@');
121 pangoMarkup += "</i>";
124 pangoMarkup += "</b>";
136 GAboutlyx::GAboutlyx(Dialog & parent)
137 : GViewCB<ControlAboutlyx, GViewGladeB>(parent, "About LyX")
142 void GAboutlyx::doBuild()
144 string const gladeName =
145 lyx::support::LibFileSearch("glade", "aboutlyx", "glade");
146 xml_ = Gnome::Glade::Xml::create(gladeName);
147 Gtk::Label * version;
148 Gtk::Label * credits;
149 Gtk::Label * license;
150 xml_->get_widget("version", version);
151 xml_->get_widget("credits", credits);
152 xml_->get_widget("license", license);
153 std::ostringstream vs;
154 vs << controller().getVersion()
155 << std::endl << lyx_version_info;
156 version->set_text(Glib::locale_to_utf8(vs.str()));
157 std::ostringstream crs;
158 controller().getCredits(crs);
159 credits->set_markup(translateMarkup(Glib::locale_to_utf8(crs.str())));
160 std::ostringstream ls;
161 ls << controller().getCopyright() << "\n\n"
162 << controller().getLicense() << "\n\n"
163 << controller().getDisclaimer();
164 license->set_text(Glib::locale_to_utf8(ls.str()));
166 xml_->get_widget("close_button", btn);
167 btn->signal_clicked().connect(SigC::slot(*this, &GViewBase::onCancel));