#ifndef FONT_H
#define FONT_H
-#include "ColorCode.h"
#include "FontInfo.h"
#include "support/strfwd.h"
class Language;
class LaTeXFeatures;
class OutputParams;
+class otexstream;
///
class Font {
public:
///
- explicit Font(FontInfo = sane_font, Language const * l = 0);
+ explicit Font(FontInfo = sane_font, Language const * l = nullptr);
///
FontInfo & fontInfo() { return bits_; }
///
Language const * language() const { return lang_; }
///
- void setMisspelled(bool misspelled) { misspelled_ = misspelled; }
- ///
- bool isMisspelled() const { return misspelled_; }
- ///
bool isRightToLeft() const;
///
bool isVisibleRightToLeft() const;
to this font. Returns number of chars written. Base is the
font state active now.
*/
- int latexWriteStartChanges(odocstream &, BufferParams const & bparams,
+ int latexWriteStartChanges(otexstream &, BufferParams const & bparams,
OutputParams const & runparams,
Font const & base,
- Font const & prev) const;
+ Font const & prev,
+ bool non_inherit_inset = false,
+ bool needs_cprotection = false) const;
/** Writes the tail of the LaTeX needed to change to this font.
Returns number of chars written. Base is the font state we want
to achieve.
*/
- int latexWriteEndChanges(odocstream &, BufferParams const & bparams,
+ int latexWriteEndChanges(otexstream &, BufferParams const & bparams,
OutputParams const & runparams,
Font const & base,
Font const & next,
- bool const & closeLanguage = true) const;
+ bool & needPar,
+ bool closeLanguage = true) const;
/// Build GUI description of font state
- docstring const stateText(BufferParams * params) const;
+ docstring const stateText(BufferParams * params = nullptr, bool const terse = false) const;
///
void validate(LaTeXFeatures & features) const;
FontInfo bits_;
///
Language const * lang_;
- ///
- bool misspelled_;
-
/// Did latexWriteStartChanges open an encoding environment?
mutable bool open_encoding_;
};
+///
+std::ostream & operator<<(std::ostream & os, FontInfo const & f);
+
///
inline
bool operator==(Font const & font1, Font const & font2)
{
- return font1.bits_ == font2.bits_ && font1.lang_ == font2.lang_
- && font1.misspelled_ == font2.misspelled_;
+ return font1.bits_ == font2.bits_ && font1.lang_ == font2.lang_;
}
///
return !(font1 == font2);
}
-/** Returns the current freefont, encoded as a std::string to be passed to the
- * frontends. Implemented in Text3.cpp.
- */
-std::string const freefont2string();
-
} // namespace lyx
#endif