1999-09-27 18:44:28 +00:00
|
|
|
|
// -*- C++ -*-
|
2003-08-23 00:17:00 +00:00
|
|
|
|
/**
|
2007-04-29 18:17:15 +00:00
|
|
|
|
* \file src/Font.h
|
2003-08-23 00:17:00 +00:00
|
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
|
* Licence details can be found in the file COPYING.
|
2002-03-21 17:27:08 +00:00
|
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
|
* \author Lars Gullik Bj<EFBFBD>nnes
|
|
|
|
|
* \author Jean-Marc Lasgouttes
|
|
|
|
|
* \author Angus Leeming
|
|
|
|
|
* \author Dekel Tsur
|
2002-03-21 17:27:08 +00:00
|
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
|
* Full author contact details are available in file CREDITS.
|
|
|
|
|
*/
|
1999-10-02 16:21:10 +00:00
|
|
|
|
|
2007-04-29 18:17:15 +00:00
|
|
|
|
#ifndef FONT_H
|
|
|
|
|
#define FONT_H
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2007-08-21 23:17:37 +00:00
|
|
|
|
#ifdef TEX2LYX
|
|
|
|
|
#include "tex2lyx/Font.h"
|
|
|
|
|
#else
|
|
|
|
|
|
2007-04-26 17:34:20 +00:00
|
|
|
|
#include "Color.h"
|
2006-10-19 16:51:30 +00:00
|
|
|
|
#include "support/docstream.h"
|
2004-11-16 23:18:46 +00:00
|
|
|
|
|
1999-12-07 00:44:53 +00:00
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
namespace lyx {
|
|
|
|
|
|
2007-04-26 11:30:54 +00:00
|
|
|
|
class Lexer;
|
2000-05-22 16:56:05 +00:00
|
|
|
|
class BufferParams;
|
2001-11-26 18:03:23 +00:00
|
|
|
|
class Language;
|
2007-10-19 16:22:36 +00:00
|
|
|
|
class LaTeXFeatures;
|
2007-05-06 20:26:02 +00:00
|
|
|
|
class OutputParams;
|
2001-04-17 15:15:59 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
class Font {
|
1999-09-27 18:44:28 +00:00
|
|
|
|
public:
|
|
|
|
|
/** The value INHERIT_* means that the font attribute is
|
1999-12-16 06:43:25 +00:00
|
|
|
|
inherited from the layout. In the case of layout fonts, the
|
|
|
|
|
attribute is inherited from the default font.
|
2007-04-29 18:17:15 +00:00
|
|
|
|
The value IGNORE_* is used with Font::update() when the
|
1999-12-16 06:43:25 +00:00
|
|
|
|
attribute should not be changed.
|
|
|
|
|
*/
|
1999-09-27 18:44:28 +00:00
|
|
|
|
enum FONT_FAMILY {
|
|
|
|
|
///
|
|
|
|
|
ROMAN_FAMILY, // fontstruct rely on this to be 0
|
|
|
|
|
///
|
|
|
|
|
SANS_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
TYPEWRITER_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
SYMBOL_FAMILY,
|
|
|
|
|
///
|
2001-08-31 21:15:57 +00:00
|
|
|
|
CMR_FAMILY,
|
|
|
|
|
///
|
2001-08-30 22:42:26 +00:00
|
|
|
|
CMSY_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
CMM_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
CMEX_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
MSA_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
MSB_FAMILY,
|
|
|
|
|
///
|
2001-12-11 10:14:51 +00:00
|
|
|
|
EUFRAK_FAMILY,
|
|
|
|
|
///
|
2002-07-09 13:38:27 +00:00
|
|
|
|
WASY_FAMILY,
|
|
|
|
|
///
|
2006-11-13 17:35:18 +00:00
|
|
|
|
ESINT_FAMILY,
|
|
|
|
|
///
|
1999-09-27 18:44:28 +00:00
|
|
|
|
INHERIT_FAMILY,
|
|
|
|
|
///
|
2001-08-31 21:15:57 +00:00
|
|
|
|
IGNORE_FAMILY,
|
|
|
|
|
///
|
|
|
|
|
NUM_FAMILIES = INHERIT_FAMILY
|
1999-09-27 18:44:28 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
enum FONT_SERIES {
|
|
|
|
|
///
|
|
|
|
|
MEDIUM_SERIES, // fontstruct rely on this to be 0
|
|
|
|
|
///
|
|
|
|
|
BOLD_SERIES,
|
|
|
|
|
///
|
|
|
|
|
INHERIT_SERIES,
|
|
|
|
|
///
|
|
|
|
|
IGNORE_SERIES
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
enum FONT_SHAPE {
|
|
|
|
|
///
|
|
|
|
|
UP_SHAPE, // fontstruct rely on this to be 0
|
|
|
|
|
///
|
|
|
|
|
ITALIC_SHAPE,
|
|
|
|
|
///
|
|
|
|
|
SLANTED_SHAPE,
|
|
|
|
|
///
|
|
|
|
|
SMALLCAPS_SHAPE,
|
|
|
|
|
///
|
|
|
|
|
INHERIT_SHAPE,
|
|
|
|
|
///
|
|
|
|
|
IGNORE_SHAPE
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
enum FONT_SIZE {
|
|
|
|
|
///
|
|
|
|
|
SIZE_TINY, // fontstruct rely on this to be 0
|
|
|
|
|
///
|
|
|
|
|
SIZE_SCRIPT,
|
|
|
|
|
///
|
|
|
|
|
SIZE_FOOTNOTE,
|
|
|
|
|
///
|
|
|
|
|
SIZE_SMALL,
|
|
|
|
|
///
|
|
|
|
|
SIZE_NORMAL,
|
|
|
|
|
///
|
|
|
|
|
SIZE_LARGE,
|
|
|
|
|
///
|
|
|
|
|
SIZE_LARGER,
|
|
|
|
|
///
|
|
|
|
|
SIZE_LARGEST,
|
|
|
|
|
///
|
|
|
|
|
SIZE_HUGE,
|
|
|
|
|
///
|
|
|
|
|
SIZE_HUGER,
|
|
|
|
|
///
|
|
|
|
|
INCREASE_SIZE,
|
|
|
|
|
///
|
|
|
|
|
DECREASE_SIZE,
|
|
|
|
|
///
|
|
|
|
|
INHERIT_SIZE,
|
|
|
|
|
///
|
|
|
|
|
IGNORE_SIZE
|
|
|
|
|
};
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Used for emph, underbar, noun and latex toggles
|
|
|
|
|
enum FONT_MISC_STATE {
|
|
|
|
|
///
|
|
|
|
|
OFF,
|
|
|
|
|
///
|
|
|
|
|
ON,
|
|
|
|
|
///
|
|
|
|
|
TOGGLE,
|
|
|
|
|
///
|
|
|
|
|
INHERIT,
|
|
|
|
|
///
|
|
|
|
|
IGNORE
|
|
|
|
|
};
|
2000-02-10 17:53:36 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Trick to overload constructor and make it megafast
|
|
|
|
|
enum FONT_INIT1 {
|
|
|
|
|
///
|
|
|
|
|
ALL_INHERIT
|
|
|
|
|
};
|
|
|
|
|
///
|
|
|
|
|
enum FONT_INIT2 {
|
|
|
|
|
///
|
|
|
|
|
ALL_IGNORE
|
|
|
|
|
};
|
|
|
|
|
///
|
|
|
|
|
enum FONT_INIT3 {
|
|
|
|
|
///
|
|
|
|
|
ALL_SANE
|
|
|
|
|
};
|
|
|
|
|
|
2005-07-16 10:35:43 +00:00
|
|
|
|
struct FontBits {
|
|
|
|
|
///
|
|
|
|
|
FONT_FAMILY family;
|
|
|
|
|
///
|
|
|
|
|
FONT_SERIES series;
|
|
|
|
|
///
|
|
|
|
|
FONT_SHAPE shape;
|
|
|
|
|
///
|
|
|
|
|
FONT_SIZE size;
|
2007-04-26 17:34:20 +00:00
|
|
|
|
/** We store the Color::color value as an int to get Color.h out
|
2005-07-16 10:35:43 +00:00
|
|
|
|
* of the header file.
|
|
|
|
|
*/
|
|
|
|
|
int color;
|
|
|
|
|
///
|
|
|
|
|
FONT_MISC_STATE emph;
|
|
|
|
|
///
|
|
|
|
|
FONT_MISC_STATE underbar;
|
|
|
|
|
///
|
|
|
|
|
FONT_MISC_STATE noun;
|
|
|
|
|
///
|
|
|
|
|
FONT_MISC_STATE number;
|
|
|
|
|
};
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font();
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
explicit Font(Font::FONT_INIT1);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
explicit Font(Font::FONT_INIT2);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
explicit Font(Font::FONT_INIT3);
|
2000-03-17 10:14:46 +00:00
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font(Font::FONT_INIT1, Language const * l);
|
2000-03-17 10:14:46 +00:00
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font(Font::FONT_INIT2, Language const * l);
|
2000-03-17 10:14:46 +00:00
|
|
|
|
/// Shortcut initialization
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font(Font::FONT_INIT3, Language const * l);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
|
|
|
|
/// Decreases font size by one
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & decSize();
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Increases font size by one
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & incSize();
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_FAMILY family() const { return bits.family; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_SERIES series() const { return bits.series; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_SHAPE shape() const { return bits.shape; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_SIZE size() const { return bits.size; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_MISC_STATE emph() const { return bits.emph; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_MISC_STATE underbar() const { return bits.underbar; }
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_MISC_STATE noun() const { return bits.noun; }
|
2000-10-09 12:30:52 +00:00
|
|
|
|
///
|
2005-07-16 10:35:43 +00:00
|
|
|
|
FONT_MISC_STATE number() const { return bits.number; }
|
2000-02-10 17:53:36 +00:00
|
|
|
|
///
|
2007-04-26 17:34:20 +00:00
|
|
|
|
Color_color color() const;
|
2002-03-21 17:27:08 +00:00
|
|
|
|
///
|
2005-07-16 18:25:58 +00:00
|
|
|
|
Language const * language() const { return lang; }
|
2000-02-04 09:38:32 +00:00
|
|
|
|
///
|
2000-03-17 10:14:46 +00:00
|
|
|
|
bool isRightToLeft() const;
|
|
|
|
|
///
|
|
|
|
|
bool isVisibleRightToLeft() const;
|
2001-08-30 22:42:26 +00:00
|
|
|
|
///
|
|
|
|
|
bool isSymbolFont() const;
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
void setFamily(Font::FONT_FAMILY f);
|
|
|
|
|
void setSeries(Font::FONT_SERIES s);
|
|
|
|
|
void setShape(Font::FONT_SHAPE s);
|
|
|
|
|
void setSize(Font::FONT_SIZE s);
|
|
|
|
|
void setEmph(Font::FONT_MISC_STATE e);
|
|
|
|
|
void setUnderbar(Font::FONT_MISC_STATE u);
|
|
|
|
|
void setNoun(Font::FONT_MISC_STATE n);
|
|
|
|
|
void setNumber(Font::FONT_MISC_STATE n);
|
2007-04-26 17:34:20 +00:00
|
|
|
|
void setColor(Color_color c);
|
2003-09-16 09:01:15 +00:00
|
|
|
|
void setLanguage(Language const * l);
|
2000-02-03 19:51:27 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Set family after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & setLyXFamily(std::string const &);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Set series after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & setLyXSeries(std::string const &);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Set shape after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & setLyXShape(std::string const &);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Set size after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & setLyXSize(std::string const &);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Returns misc flag after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font::FONT_MISC_STATE setLyXMisc(std::string const &);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
|
|
|
|
/// Sets color after LyX text format
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & setLyXColor(std::string const &);
|
2000-11-28 15:54:29 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Returns size of font in LaTeX text notation
|
2003-10-06 15:43:21 +00:00
|
|
|
|
std::string const latexSize() const;
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
2000-08-07 20:58:24 +00:00
|
|
|
|
/** Updates font settings according to request.
|
|
|
|
|
If an attribute is IGNORE, the attribute is left as it is.
|
|
|
|
|
When toggleall = true, all properties that matches the font in use
|
|
|
|
|
will have the effect that the properties is reset to the
|
|
|
|
|
default. If we have a text that is TYPEWRITER_FAMILY, and is
|
|
|
|
|
update()'ed with TYPEWRITER_FAMILY, the operation will be as if
|
|
|
|
|
a INHERIT_FAMILY was asked for. This is necessary for the
|
|
|
|
|
toggle-user-defined-style button on the toolbar.
|
|
|
|
|
*/
|
2007-04-29 18:17:15 +00:00
|
|
|
|
void update(Font const & newfont,
|
2001-08-11 18:31:14 +00:00
|
|
|
|
Language const * default_lang,
|
|
|
|
|
bool toggleall = false);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/** Reduce font to fall back to template where possible.
|
1999-12-16 06:43:25 +00:00
|
|
|
|
Equal fields are reduced to INHERIT */
|
2007-04-29 18:17:15 +00:00
|
|
|
|
void reduce(Font const & tmplt);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Realize font from a template (INHERIT are realized)
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & realize(Font const & tmplt);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Is a given font fully resolved?
|
|
|
|
|
bool resolved() const;
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
2007-04-26 11:30:54 +00:00
|
|
|
|
/// Read a font specification from Lexer. Used for layout files.
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font & lyxRead(Lexer &);
|
2002-03-21 17:27:08 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Writes the changes from this font to orgfont in .lyx format in file
|
2007-04-29 18:17:15 +00:00
|
|
|
|
void lyxWriteChanges(Font const & orgfont, std::ostream &) const;
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2000-03-06 02:42:40 +00:00
|
|
|
|
/** Writes the head of the LaTeX needed to change to this font.
|
|
|
|
|
Writes to string, the head of the LaTeX needed to change
|
|
|
|
|
to this font. Returns number of chars written. Base is the
|
|
|
|
|
font state active now.
|
|
|
|
|
*/
|
2007-05-06 20:26:02 +00:00
|
|
|
|
int latexWriteStartChanges(odocstream &, BufferParams const & bparams,
|
2007-05-28 22:27:45 +00:00
|
|
|
|
OutputParams const & runparams,
|
|
|
|
|
Font const & base,
|
|
|
|
|
Font const & prev) const;
|
2000-03-17 10:14:46 +00:00
|
|
|
|
|
2003-10-21 16:15:14 +00:00
|
|
|
|
/** Writes the tail of the LaTeX needed to change to this font.
|
2000-03-06 02:42:40 +00:00
|
|
|
|
Returns number of chars written. Base is the font state we want
|
|
|
|
|
to achieve.
|
|
|
|
|
*/
|
2007-05-06 20:26:02 +00:00
|
|
|
|
int latexWriteEndChanges(odocstream &, BufferParams const & bparams,
|
2007-05-28 22:27:45 +00:00
|
|
|
|
OutputParams const & runparams,
|
|
|
|
|
Font const & base,
|
2007-07-20 01:28:20 +00:00
|
|
|
|
Font const & next,
|
|
|
|
|
bool const & closeLanguage = true) const;
|
2007-01-09 19:25:40 +00:00
|
|
|
|
|
2000-03-09 23:58:55 +00:00
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Build GUI description of font state
|
2006-12-21 14:31:19 +00:00
|
|
|
|
docstring const stateText(BufferParams * params) const;
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
|
|
|
|
///
|
2007-04-26 17:34:20 +00:00
|
|
|
|
Color_color realColor() const;
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2007-10-19 16:22:36 +00:00
|
|
|
|
///
|
|
|
|
|
void validate(LaTeXFeatures & features) const;
|
|
|
|
|
|
2000-02-10 17:53:36 +00:00
|
|
|
|
///
|
2000-04-04 00:19:15 +00:00
|
|
|
|
friend
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool operator==(Font const & font1, Font const & font2);
|
2003-10-21 16:15:14 +00:00
|
|
|
|
///
|
|
|
|
|
friend
|
2007-04-29 18:17:15 +00:00
|
|
|
|
std::ostream & operator<<(std::ostream & os, Font const & font);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2000-04-04 00:19:15 +00:00
|
|
|
|
/// Converts logical attributes to concrete shape attribute
|
2005-07-16 18:25:58 +00:00
|
|
|
|
// Try hard to inline this as it shows up with 4.6 % in the profiler.
|
2007-04-29 18:17:15 +00:00
|
|
|
|
inline Font::FONT_SHAPE realShape() const {
|
2005-07-16 18:25:58 +00:00
|
|
|
|
if (bits.noun == ON)
|
|
|
|
|
return SMALLCAPS_SHAPE;
|
|
|
|
|
if (bits.emph == ON)
|
|
|
|
|
return (bits.shape == UP_SHAPE) ? ITALIC_SHAPE : UP_SHAPE;
|
|
|
|
|
return bits.shape;
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-29 11:00:18 +00:00
|
|
|
|
/// Set \param data using \param font and \param toggle.
|
|
|
|
|
std::string toString(bool toggle) const;
|
|
|
|
|
|
|
|
|
|
/// Set \param font and \param toggle using \param data. Return success.
|
|
|
|
|
bool fromString(std::string const & data, bool & toggle);
|
2002-06-10 07:57:39 +00:00
|
|
|
|
|
|
|
|
|
/** Compaq cxx 6.5 requires that the definition be public so that
|
|
|
|
|
it can compile operator==()
|
|
|
|
|
*/
|
|
|
|
|
private:
|
2000-04-04 00:19:15 +00:00
|
|
|
|
///
|
2000-02-10 17:53:36 +00:00
|
|
|
|
FontBits bits;
|
2000-04-04 00:19:15 +00:00
|
|
|
|
///
|
2000-03-17 10:14:46 +00:00
|
|
|
|
Language const * lang;
|
2000-02-10 17:53:36 +00:00
|
|
|
|
/// Sane font
|
|
|
|
|
static FontBits sane;
|
|
|
|
|
/// All inherit font
|
|
|
|
|
static FontBits inherit;
|
|
|
|
|
/// All ignore font
|
|
|
|
|
static FontBits ignore;
|
1999-09-27 18:44:28 +00:00
|
|
|
|
/// Updates a misc setting according to request
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font::FONT_MISC_STATE setMisc(Font::FONT_MISC_STATE newfont,
|
|
|
|
|
Font::FONT_MISC_STATE org);
|
2007-05-06 20:26:02 +00:00
|
|
|
|
/// Did latexWriteStartChanges open an encoding environment?
|
|
|
|
|
mutable bool open_encoding_;
|
2000-04-04 00:19:15 +00:00
|
|
|
|
};
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2001-04-04 20:20:42 +00:00
|
|
|
|
|
2007-04-29 18:17:15 +00:00
|
|
|
|
/** \c Font_size is a wrapper for Font::FONT_SIZE.
|
2003-09-18 10:52:29 +00:00
|
|
|
|
* It can be forward-declared and passed as a function argument without
|
2007-04-29 18:17:15 +00:00
|
|
|
|
* having to expose Font.h.
|
2003-09-16 13:43:30 +00:00
|
|
|
|
*/
|
2007-04-29 18:17:15 +00:00
|
|
|
|
class Font_size {
|
2003-09-16 13:43:30 +00:00
|
|
|
|
public:
|
2003-10-21 16:15:14 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font_size(Font::FONT_SIZE val) : val_(val) {}
|
2003-10-21 16:15:14 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
operator Font::FONT_SIZE() const { return val_; }
|
2003-10-21 16:15:14 +00:00
|
|
|
|
private:
|
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
Font::FONT_SIZE val_;
|
2003-09-16 13:43:30 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2001-08-30 22:42:26 +00:00
|
|
|
|
inline
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool Font::isSymbolFont() const
|
2001-08-30 22:42:26 +00:00
|
|
|
|
{
|
2002-02-16 15:59:55 +00:00
|
|
|
|
switch (family()) {
|
2007-04-29 18:17:15 +00:00
|
|
|
|
case Font::SYMBOL_FAMILY:
|
|
|
|
|
case Font::CMSY_FAMILY:
|
|
|
|
|
case Font::CMM_FAMILY:
|
|
|
|
|
case Font::CMEX_FAMILY:
|
|
|
|
|
case Font::MSA_FAMILY:
|
|
|
|
|
case Font::MSB_FAMILY:
|
|
|
|
|
case Font::WASY_FAMILY:
|
|
|
|
|
case Font::ESINT_FAMILY:
|
2001-08-30 22:42:26 +00:00
|
|
|
|
return true;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2000-08-07 20:58:24 +00:00
|
|
|
|
///
|
2007-04-29 18:17:15 +00:00
|
|
|
|
std::ostream & operator<<(std::ostream &, Font::FONT_MISC_STATE);
|
1999-09-27 18:44:28 +00:00
|
|
|
|
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool operator==(Font::FontBits const & lhs, Font::FontBits const & rhs);
|
2002-06-10 07:57:39 +00:00
|
|
|
|
|
|
|
|
|
inline
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool operator!=(Font::FontBits const & lhs, Font::FontBits const & rhs)
|
2002-06-10 07:57:39 +00:00
|
|
|
|
{
|
|
|
|
|
return !(lhs == rhs);
|
|
|
|
|
}
|
|
|
|
|
|
2000-08-07 20:58:24 +00:00
|
|
|
|
///
|
|
|
|
|
inline
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool operator==(Font const & font1, Font const & font2)
|
2001-03-06 14:07:14 +00:00
|
|
|
|
{
|
2003-10-21 16:15:14 +00:00
|
|
|
|
return font1.bits == font2.bits && font1.lang == font2.lang;
|
2000-08-07 20:58:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
inline
|
2007-04-29 18:17:15 +00:00
|
|
|
|
bool operator!=(Font const & font1, Font const & font2)
|
2000-02-10 17:53:36 +00:00
|
|
|
|
{
|
2001-03-06 14:07:14 +00:00
|
|
|
|
return !(font1 == font2);
|
2000-10-09 12:30:52 +00:00
|
|
|
|
}
|
2002-06-10 07:57:39 +00:00
|
|
|
|
|
2007-09-29 11:00:18 +00:00
|
|
|
|
/** Returns the current freefont, encoded as a std::string to be passed to the
|
|
|
|
|
* frontends.
|
|
|
|
|
*/
|
|
|
|
|
std::string const freefont2string();
|
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
|
|
2007-08-21 23:17:37 +00:00
|
|
|
|
#endif // TEX2LYX
|
1999-09-27 18:44:28 +00:00
|
|
|
|
#endif
|