mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-27 02:19:10 +00:00
Added the formatting of the credits text.
Currently there is no check if the needed font exists or not, the worst is that everything is rendered in the regular font. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1866 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
37cf92155b
commit
276c6e9ca1
@ -1,3 +1,9 @@
|
||||
2001-03-30 Baruch Even <baruch@lyx.org>
|
||||
|
||||
* FormCredits.C: Added the formatting of the credits text.
|
||||
|
||||
* gnome_helpers.[Ch]: Added functions to get font name from font.
|
||||
|
||||
2001-03-30 Baruch Even <baruch@lyx.org>
|
||||
|
||||
* GnomeBase.[Ch]: Added the dialog as a responsibility.
|
||||
|
@ -16,11 +16,15 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
#include "gnomeBC.h"
|
||||
#include "FormCredits.h"
|
||||
#include "gnome_helpers.h"
|
||||
|
||||
#include <gtk--/button.h>
|
||||
#include <gtk--/text.h>
|
||||
#include <gtk--/style.h>
|
||||
|
||||
FormCredits::FormCredits(ControlCredits & c)
|
||||
: FormCB<ControlCredits>(c, "diahelpcredits.glade", "DiaHelpCredits")
|
||||
@ -34,8 +38,59 @@ void FormCredits::build()
|
||||
// get a click on "Cancel"
|
||||
ok()->clicked.connect(SigC::slot(this, &FormCredits::CancelClicked));
|
||||
|
||||
// Do not update the dialog when we insert the text
|
||||
text()->freeze();
|
||||
|
||||
// Get the credits into the string stream
|
||||
std::stringstream ss;
|
||||
text()->insert(controller().getCredits(ss).str());
|
||||
string credits = controller().getCredits(ss).str();
|
||||
|
||||
// Create the strings that we need to detect.
|
||||
string const bold("@b");
|
||||
string const italic("@i");
|
||||
|
||||
// Create the drawing contexts.
|
||||
Gtk::Text_Helpers::Context c_italic;
|
||||
Gtk::Text_Helpers::Context c_bold;
|
||||
|
||||
{
|
||||
string bold = get_font_name(text()->get_style()->get_font());
|
||||
//lyxerr << "Font name: " << bold << std::endl;
|
||||
string italic(bold);
|
||||
|
||||
string const medium("Medium-");
|
||||
std::string::size_type index = bold.find(medium);
|
||||
bold.replace(index, medium.size()-1, "bold");
|
||||
|
||||
string const r("R-");
|
||||
index = italic.find(r);
|
||||
italic.replace(index, r.size()-1, "i");
|
||||
|
||||
//lyxerr << "Bold: " << bold << "\nItalic: " << italic << std::endl;
|
||||
c_bold.set_font(Gdk_Font(bold));
|
||||
c_italic.set_font(Gdk_Font(italic));
|
||||
}
|
||||
|
||||
// Insert it into the text and parse the attributes.
|
||||
while (!credits.empty()) {
|
||||
std::string::size_type end = credits.find('\n');
|
||||
string const line = credits.substr(0, ++end);
|
||||
credits = credits.substr(end);
|
||||
|
||||
// lyxerr << "Line got: '" << line << "'\nend = " << end << std::endl;
|
||||
|
||||
string const prefix = line.substr(0, 2);
|
||||
if (prefix == bold) {
|
||||
text()->insert(c_bold, line.substr(2));
|
||||
} else if (prefix == italic) {
|
||||
text()->insert(c_italic, line.substr(2));
|
||||
} else {
|
||||
text()->insert(line);
|
||||
}
|
||||
}
|
||||
|
||||
// Allow the text area to be drawn.
|
||||
text()->thaw();
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,6 +73,7 @@ libgnome_la_SOURCES = \
|
||||
Timeout_pimpl.h \
|
||||
gnomeBC.C \
|
||||
gnomeBC.h \
|
||||
gnome_helpers.C \
|
||||
gnome_helpers.h \
|
||||
mainapp.C \
|
||||
mainapp.h \
|
||||
|
@ -26,6 +26,7 @@
|
||||
<type>GTK_WINDOW_DIALOG</type>
|
||||
<position>GTK_WIN_POS_NONE</position>
|
||||
<modal>False</modal>
|
||||
<default_width>330</default_width>
|
||||
<default_height>300</default_height>
|
||||
<allow_shrink>True</allow_shrink>
|
||||
<allow_grow>True</allow_grow>
|
||||
@ -121,8 +122,7 @@ Matthias</label>
|
||||
<name>credits_text</name>
|
||||
<can_focus>True</can_focus>
|
||||
<editable>False</editable>
|
||||
<text>
|
||||
</text>
|
||||
<text></text>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
@ -19,6 +19,11 @@
|
||||
#include <glib.h>
|
||||
|
||||
// Glade Helper Function.
|
||||
|
||||
|
||||
/** This function will get a widget from the glade XML representation and
|
||||
* will wrap it into the gtk--/gnome-- representation.
|
||||
*/
|
||||
template<class T>
|
||||
T* getWidgetPtr(GladeXML* xml, char const * name)
|
||||
{
|
||||
@ -31,6 +36,19 @@ T* getWidgetPtr(GladeXML* xml, char const * name)
|
||||
return result;
|
||||
}
|
||||
|
||||
class Gdk_Font;
|
||||
|
||||
/** Takes a Gdk::Font object reference and returns the name associated
|
||||
* with the font it holds.
|
||||
*/
|
||||
string get_font_name(Gdk_Font const & font);
|
||||
|
||||
|
||||
/** Takes a GdkFont pointer and returns the name associated with the font
|
||||
* it holds. It returns a newly allocated gchar* string.
|
||||
*
|
||||
* This function was lifted from e-font.c from the gabber package.
|
||||
*/
|
||||
gchar * get_font_name(GdkFont const * font);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user