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"
22 using std::ostringstream;
28 enum TranslateState {NORMAL, BEGIN, IN_AT, IN_BOLD, IN_ITALIC};
31 Glib::ustring translateMarkup(Glib::ustring const & lyxMarkup)
33 Glib::ustring::const_iterator it = lyxMarkup.begin();
34 Glib::ustring pangoMarkup;
35 TranslateState state = BEGIN;
36 for (; it != lyxMarkup.end(); it++) {
45 pangoMarkup.push_back('\n');
49 pangoMarkup.push_back(*it);
65 pangoMarkup.push_back('@');
66 pangoMarkup.push_back('\n');
70 pangoMarkup.push_back('@');
71 pangoMarkup.push_back(*it);
78 pangoMarkup += "</b>\n";
81 pangoMarkup.push_back(*it);
88 pangoMarkup += "</i>\n";
91 pangoMarkup.push_back(*it);
98 pangoMarkup.push_back('\n');
101 pangoMarkup.push_back(*it);
106 pangoMarkup += "amp;";
109 pangoMarkup.erase(--(pangoMarkup.end()));
110 pangoMarkup += "<";
113 pangoMarkup.erase(--(pangoMarkup.end()));
114 pangoMarkup += ">";
122 pangoMarkup.push_back('@');
125 pangoMarkup += "</i>";
128 pangoMarkup += "</b>";
140 GAboutlyx::GAboutlyx(Dialog & parent)
141 : GViewCB<ControlAboutlyx, GViewGladeB>(parent, "About LyX")
146 void GAboutlyx::doBuild()
148 string const gladeName = findGladeFile("aboutlyx");
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);
163 translateMarkup(Glib::convert(crs.str(),
166 std::ostringstream ls;
167 ls << controller().getCopyright() << "\n\n"
168 << controller().getLicense() << "\n\n"
169 << controller().getDisclaimer();
170 license->set_text(Glib::locale_to_utf8(ls.str()));
172 xml_->get_widget("close_button", btn);
174 //btn->signal_clicked().connect(SigC::slot(*this, &GViewBase::onCancel));