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.
13 #include "ControlAboutlyx.h"
14 #include "GAboutlyx.h"
18 #include <libglademm.h>
22 using std::ostringstream;
30 enum TranslateState {NORMAL, BEGIN, IN_AT, IN_BOLD, IN_ITALIC};
33 Glib::ustring translateMarkup(Glib::ustring const & lyxMarkup)
35 Glib::ustring::const_iterator it = lyxMarkup.begin();
36 Glib::ustring pangoMarkup;
37 TranslateState state = BEGIN;
38 for (; it != lyxMarkup.end(); it++) {
47 pangoMarkup.push_back('\n');
51 pangoMarkup.push_back(*it);
67 pangoMarkup.push_back('@');
68 pangoMarkup.push_back('\n');
72 pangoMarkup.push_back('@');
73 pangoMarkup.push_back(*it);
80 pangoMarkup += "</b>\n";
83 pangoMarkup.push_back(*it);
90 pangoMarkup += "</i>\n";
93 pangoMarkup.push_back(*it);
100 pangoMarkup.push_back('\n');
103 pangoMarkup.push_back(*it);
108 pangoMarkup += "amp;";
111 pangoMarkup.erase(--(pangoMarkup.end()));
112 pangoMarkup += "<";
115 pangoMarkup.erase(--(pangoMarkup.end()));
116 pangoMarkup += ">";
124 pangoMarkup.push_back('@');
127 pangoMarkup += "</i>";
130 pangoMarkup += "</b>";
142 GAboutlyx::GAboutlyx(Dialog & parent)
143 : GViewCB<ControlAboutlyx, GViewGladeB>(parent, "About LyX")
148 void GAboutlyx::doBuild()
150 string const gladeName = findGladeFile("aboutlyx");
151 xml_ = Gnome::Glade::Xml::create(gladeName);
152 Gtk::Label * version;
153 Gtk::Label * credits;
154 Gtk::Label * license;
155 xml_->get_widget("version", version);
156 xml_->get_widget("credits", credits);
157 xml_->get_widget("license", license);
158 std::ostringstream vs;
159 vs << controller().getVersion()
160 << std::endl << lyx_version_info;
161 version->set_text(Glib::locale_to_utf8(vs.str()));
162 std::ostringstream crs;
163 controller().getCredits(crs);
165 translateMarkup(Glib::convert(crs.str(),
168 std::ostringstream ls;
169 ls << controller().getCopyright() << "\n\n"
170 << controller().getLicense() << "\n\n"
171 << controller().getDisclaimer();
172 license->set_text(Glib::locale_to_utf8(ls.str()));
174 xml_->get_widget("close_button", btn);
176 //btn->signal_clicked().connect(sigc::mem_fun(*this, &GViewBase::onCancel));
179 } // namespace frontend