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 // Too hard to make concept checks work with this file
14 #ifdef _GLIBCPP_CONCEPT_CHECKS
15 #undef _GLIBCPP_CONCEPT_CHECKS
18 #include "ControlAboutlyx.h"
19 #include "GAboutlyx.h"
23 #include <libglademm.h>
27 using std::ostringstream;
35 enum TranslateState {NORMAL, BEGIN, IN_AT, IN_BOLD, IN_ITALIC};
38 Glib::ustring translateMarkup(Glib::ustring const & lyxMarkup)
40 Glib::ustring::const_iterator it = lyxMarkup.begin();
41 Glib::ustring pangoMarkup;
42 TranslateState state = BEGIN;
43 for (; it != lyxMarkup.end(); it++) {
52 pangoMarkup.push_back('\n');
56 pangoMarkup.push_back(*it);
72 pangoMarkup.push_back('@');
73 pangoMarkup.push_back('\n');
77 pangoMarkup.push_back('@');
78 pangoMarkup.push_back(*it);
85 pangoMarkup += "</b>\n";
88 pangoMarkup.push_back(*it);
95 pangoMarkup += "</i>\n";
98 pangoMarkup.push_back(*it);
105 pangoMarkup.push_back('\n');
108 pangoMarkup.push_back(*it);
113 pangoMarkup += "amp;";
116 pangoMarkup.erase(--(pangoMarkup.end()));
117 pangoMarkup += "<";
120 pangoMarkup.erase(--(pangoMarkup.end()));
121 pangoMarkup += ">";
129 pangoMarkup.push_back('@');
132 pangoMarkup += "</i>";
135 pangoMarkup += "</b>";
147 GAboutlyx::GAboutlyx(Dialog & parent)
148 : GViewCB<ControlAboutlyx, GViewGladeB>(parent, "About LyX")
153 void GAboutlyx::doBuild()
155 string const gladeName = findGladeFile("aboutlyx");
156 xml_ = Gnome::Glade::Xml::create(gladeName);
157 Gtk::Label * version;
158 Gtk::Label * credits;
159 Gtk::Label * license;
160 xml_->get_widget("version", version);
161 xml_->get_widget("credits", credits);
162 xml_->get_widget("license", license);
163 std::ostringstream vs;
164 vs << controller().getVersion()
165 << std::endl << lyx_version_info;
166 version->set_text(Glib::locale_to_utf8(vs.str()));
167 std::ostringstream crs;
168 controller().getCredits(crs);
170 translateMarkup(Glib::convert(crs.str(),
173 std::ostringstream ls;
174 ls << controller().getCopyright() << "\n\n"
175 << controller().getLicense() << "\n\n"
176 << controller().getDisclaimer();
177 license->set_text(Glib::locale_to_utf8(ls.str()));
179 xml_->get_widget("close_button", btn);
181 //btn->signal_clicked().connect(sigc::mem_fun(*this, &GViewBase::onCancel));
184 } // namespace frontend