mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-26 22:17:41 +00:00
move font related stuff from bufferview_funcs to Font
delete bufferview_funcs, since it's now empty git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20579 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
122f32ea29
commit
5aaf4dce20
@ -20,7 +20,6 @@
|
||||
#include "buffer_funcs.h"
|
||||
#include "BufferList.h"
|
||||
#include "BufferParams.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "callback.h" // added for Dispatch functions
|
||||
#include "CoordCache.h"
|
||||
#include "CutAndPaste.h"
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
#include "Bidi.h"
|
||||
#include "BufferView.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "Buffer.h"
|
||||
#include "Cursor.h"
|
||||
#include "CoordCache.h"
|
||||
|
96
src/Font.cpp
96
src/Font.cpp
@ -27,11 +27,14 @@
|
||||
#include "output_latex.h"
|
||||
#include "OutputParams.h"
|
||||
|
||||
#include "support/convert.h"
|
||||
#include "support/lstrings.h"
|
||||
|
||||
using std::endl;
|
||||
using std::string;
|
||||
using std::ostream;
|
||||
using std::ostringstream;
|
||||
using std::istringstream;
|
||||
using std::pair;
|
||||
|
||||
#ifndef CXX_GLOBAL_CSTD
|
||||
@ -974,6 +977,99 @@ Color_color Font::realColor() const
|
||||
}
|
||||
|
||||
|
||||
std::string Font::toString(bool const toggle) const
|
||||
{
|
||||
string lang = "ignore";
|
||||
if (language())
|
||||
lang = language()->lang();
|
||||
|
||||
ostringstream os;
|
||||
os << "family " << family() << '\n'
|
||||
<< "series " << series() << '\n'
|
||||
<< "shape " << shape() << '\n'
|
||||
<< "size " << size() << '\n'
|
||||
<< "emph " << emph() << '\n'
|
||||
<< "underbar " << underbar() << '\n'
|
||||
<< "noun " << noun() << '\n'
|
||||
<< "number " << number() << '\n'
|
||||
<< "color " << color() << '\n'
|
||||
<< "language " << lang << '\n'
|
||||
<< "toggleall " << convert<string>(toggle);
|
||||
return os.str();
|
||||
}
|
||||
|
||||
|
||||
bool Font::fromString(string const & data, bool & toggle)
|
||||
{
|
||||
istringstream is(data);
|
||||
Lexer lex(0,0);
|
||||
lex.setStream(is);
|
||||
|
||||
int nset = 0;
|
||||
while (lex.isOK()) {
|
||||
string token;
|
||||
if (lex.next())
|
||||
token = lex.getString();
|
||||
|
||||
if (token.empty() || !lex.next())
|
||||
break;
|
||||
|
||||
if (token == "family") {
|
||||
int const next = lex.getInteger();
|
||||
setFamily(FONT_FAMILY(next));
|
||||
|
||||
} else if (token == "series") {
|
||||
int const next = lex.getInteger();
|
||||
setSeries(FONT_SERIES(next));
|
||||
|
||||
} else if (token == "shape") {
|
||||
int const next = lex.getInteger();
|
||||
setShape(FONT_SHAPE(next));
|
||||
|
||||
} else if (token == "size") {
|
||||
int const next = lex.getInteger();
|
||||
setSize(FONT_SIZE(next));
|
||||
|
||||
} else if (token == "emph" || token == "underbar" ||
|
||||
token == "noun" || token == "number") {
|
||||
|
||||
int const next = lex.getInteger();
|
||||
FONT_MISC_STATE const misc = FONT_MISC_STATE(next);
|
||||
|
||||
if (token == "emph")
|
||||
setEmph(misc);
|
||||
else if (token == "underbar")
|
||||
setUnderbar(misc);
|
||||
else if (token == "noun")
|
||||
setNoun(misc);
|
||||
else if (token == "number")
|
||||
setNumber(misc);
|
||||
|
||||
} else if (token == "color") {
|
||||
int const next = lex.getInteger();
|
||||
setColor(Color::color(next));
|
||||
|
||||
} else if (token == "language") {
|
||||
string const next = lex.getString();
|
||||
if (next == "ignore")
|
||||
setLanguage(ignore_language);
|
||||
else
|
||||
setLanguage(languages.getLanguage(next));
|
||||
|
||||
} else if (token == "toggleall") {
|
||||
toggle = lex.getBool();
|
||||
|
||||
} else {
|
||||
// Unrecognised token
|
||||
break;
|
||||
}
|
||||
|
||||
++nset;
|
||||
}
|
||||
return (nset > 0);
|
||||
}
|
||||
|
||||
|
||||
ostream & operator<<(ostream & os, Font::FONT_MISC_STATE fms)
|
||||
{
|
||||
return os << int(fms);
|
||||
|
12
src/Font.h
12
src/Font.h
@ -25,13 +25,11 @@
|
||||
|
||||
namespace lyx {
|
||||
|
||||
|
||||
class Lexer;
|
||||
class BufferParams;
|
||||
class Language;
|
||||
class OutputParams;
|
||||
|
||||
|
||||
///
|
||||
class Font {
|
||||
public:
|
||||
@ -340,6 +338,11 @@ public:
|
||||
return bits.shape;
|
||||
}
|
||||
|
||||
/// 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);
|
||||
|
||||
/** Compaq cxx 6.5 requires that the definition be public so that
|
||||
it can compile operator==()
|
||||
@ -423,6 +426,11 @@ bool operator!=(Font const & font1, Font const & font2)
|
||||
return !(font1 == font2);
|
||||
}
|
||||
|
||||
/** Returns the current freefont, encoded as a std::string to be passed to the
|
||||
* frontends.
|
||||
*/
|
||||
std::string const freefont2string();
|
||||
|
||||
|
||||
} // namespace lyx
|
||||
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "Buffer.h"
|
||||
#include "BufferList.h"
|
||||
#include "BufferParams.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "BufferView.h"
|
||||
#include "callback.h"
|
||||
#include "Color.h"
|
||||
@ -116,8 +115,6 @@ namespace fs = boost::filesystem;
|
||||
|
||||
namespace lyx {
|
||||
|
||||
using bv_funcs::freefont2string;
|
||||
|
||||
using frontend::LyXView;
|
||||
|
||||
using support::absolutePath;
|
||||
@ -151,8 +148,7 @@ namespace Alert = frontend::Alert;
|
||||
|
||||
namespace {
|
||||
|
||||
bool getLocalStatus(Cursor cursor,
|
||||
FuncRequest const & cmd, FuncStatus & status)
|
||||
bool getLocalStatus(Cursor cursor, FuncRequest const & cmd, FuncStatus & status)
|
||||
{
|
||||
// Try to fix cursor in case it is broken.
|
||||
cursor.fixIfBroken();
|
||||
|
@ -94,8 +94,6 @@ liblyxcore_la_SOURCES = \
|
||||
BufferParams.cpp \
|
||||
BufferParams.h \
|
||||
BufferView.cpp \
|
||||
bufferview_funcs.cpp \
|
||||
bufferview_funcs.h \
|
||||
BufferView.h \
|
||||
Bullet.cpp \
|
||||
Bullet.h \
|
||||
|
188
src/Text3.cpp
188
src/Text3.cpp
@ -25,7 +25,6 @@
|
||||
#include "buffer_funcs.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "Cursor.h"
|
||||
#include "CutAndPaste.h"
|
||||
#include "debug.h"
|
||||
@ -90,112 +89,92 @@ namespace frontend {
|
||||
extern docstring current_layout;
|
||||
}
|
||||
|
||||
namespace {
|
||||
// globals...
|
||||
static Font freefont(Font::ALL_IGNORE);
|
||||
static bool toggleall = false;
|
||||
|
||||
// globals...
|
||||
Font freefont(Font::ALL_IGNORE);
|
||||
bool toggleall = false;
|
||||
|
||||
void toggleAndShow(Cursor & cur, Text * text,
|
||||
Font const & font, bool toggleall = true)
|
||||
{
|
||||
text->toggleFree(cur, font, toggleall);
|
||||
|
||||
if (font.language() != ignore_language ||
|
||||
font.number() != Font::IGNORE) {
|
||||
TextMetrics const & tm = cur.bv().textMetrics(text);
|
||||
if (cur.boundary() != tm.isRTLBoundary(cur.pit(),
|
||||
cur.pos(), cur.real_current_font))
|
||||
text->setCursor(cur, cur.pit(), cur.pos(),
|
||||
false, !cur.boundary());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void moveCursor(Cursor & cur, bool selecting)
|
||||
{
|
||||
if (selecting || cur.mark())
|
||||
cur.setSelection();
|
||||
}
|
||||
|
||||
|
||||
void finishChange(Cursor & cur, bool selecting)
|
||||
{
|
||||
finishUndo();
|
||||
moveCursor(cur, selecting);
|
||||
}
|
||||
|
||||
|
||||
void mathDispatch(Cursor & cur, FuncRequest const & cmd, bool display)
|
||||
{
|
||||
recordUndo(cur);
|
||||
docstring sel = cur.selectionAsString(false);
|
||||
|
||||
// It may happen that sel is empty but there is a selection
|
||||
replaceSelection(cur);
|
||||
|
||||
if (sel.empty()) {
|
||||
#ifdef ENABLE_ASSERTIONS
|
||||
const int old_pos = cur.pos();
|
||||
#endif
|
||||
cur.insert(new InsetMathHull(hullSimple));
|
||||
BOOST_ASSERT(old_pos == cur.pos());
|
||||
cur.nextInset()->edit(cur, true);
|
||||
// don't do that also for LFUN_MATH_MODE
|
||||
// unless you want end up with always changing
|
||||
// to mathrm when opening an inlined inset --
|
||||
// I really hate "LyXfunc overloading"...
|
||||
if (display)
|
||||
cur.dispatch(FuncRequest(LFUN_MATH_DISPLAY));
|
||||
// Avoid an unnecessary undo step if cmd.argument
|
||||
// is empty
|
||||
if (!cmd.argument().empty())
|
||||
cur.dispatch(FuncRequest(LFUN_MATH_INSERT,
|
||||
cmd.argument()));
|
||||
} else {
|
||||
// create a macro if we see "\\newcommand"
|
||||
// somewhere, and an ordinary formula
|
||||
// otherwise
|
||||
if (sel.find(from_ascii("\\newcommand")) == string::npos
|
||||
&& sel.find(from_ascii("\\def")) == string::npos)
|
||||
{
|
||||
InsetMathHull * formula = new InsetMathHull;
|
||||
istringstream is(to_utf8(sel));
|
||||
Lexer lex(0, 0);
|
||||
lex.setStream(is);
|
||||
formula->read(cur.buffer(), lex);
|
||||
if (formula->getType() == hullNone)
|
||||
// Don't create pseudo formulas if
|
||||
// delimiters are left out
|
||||
formula->mutate(hullSimple);
|
||||
cur.insert(formula);
|
||||
} else {
|
||||
cur.insert(new MathMacroTemplate(sel));
|
||||
}
|
||||
}
|
||||
cur.message(from_utf8(N_("Math editor mode")));
|
||||
}
|
||||
|
||||
} // namespace anon
|
||||
|
||||
|
||||
|
||||
namespace bv_funcs {
|
||||
|
||||
string const freefont2string()
|
||||
static void toggleAndShow(Cursor & cur, Text * text,
|
||||
Font const & font, bool toggleall = true)
|
||||
{
|
||||
string data;
|
||||
if (font2string(freefont, toggleall, data))
|
||||
return data;
|
||||
return string();
|
||||
}
|
||||
text->toggleFree(cur, font, toggleall);
|
||||
|
||||
if (font.language() != ignore_language ||
|
||||
font.number() != Font::IGNORE) {
|
||||
TextMetrics const & tm = cur.bv().textMetrics(text);
|
||||
if (cur.boundary() != tm.isRTLBoundary(cur.pit(),
|
||||
cur.pos(), cur.real_current_font))
|
||||
text->setCursor(cur, cur.pit(), cur.pos(),
|
||||
false, !cur.boundary());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace {
|
||||
static void moveCursor(Cursor & cur, bool selecting)
|
||||
{
|
||||
if (selecting || cur.mark())
|
||||
cur.setSelection();
|
||||
}
|
||||
|
||||
void specialChar(Cursor & cur, InsetSpecialChar::Kind kind)
|
||||
|
||||
static void finishChange(Cursor & cur, bool selecting)
|
||||
{
|
||||
finishUndo();
|
||||
moveCursor(cur, selecting);
|
||||
}
|
||||
|
||||
|
||||
static void mathDispatch(Cursor & cur, FuncRequest const & cmd, bool display)
|
||||
{
|
||||
recordUndo(cur);
|
||||
docstring sel = cur.selectionAsString(false);
|
||||
|
||||
// It may happen that sel is empty but there is a selection
|
||||
replaceSelection(cur);
|
||||
|
||||
if (sel.empty()) {
|
||||
#ifdef ENABLE_ASSERTIONS
|
||||
const int old_pos = cur.pos();
|
||||
#endif
|
||||
cur.insert(new InsetMathHull(hullSimple));
|
||||
BOOST_ASSERT(old_pos == cur.pos());
|
||||
cur.nextInset()->edit(cur, true);
|
||||
// don't do that also for LFUN_MATH_MODE
|
||||
// unless you want end up with always changing
|
||||
// to mathrm when opening an inlined inset --
|
||||
// I really hate "LyXfunc overloading"...
|
||||
if (display)
|
||||
cur.dispatch(FuncRequest(LFUN_MATH_DISPLAY));
|
||||
// Avoid an unnecessary undo step if cmd.argument
|
||||
// is empty
|
||||
if (!cmd.argument().empty())
|
||||
cur.dispatch(FuncRequest(LFUN_MATH_INSERT,
|
||||
cmd.argument()));
|
||||
} else {
|
||||
// create a macro if we see "\\newcommand"
|
||||
// somewhere, and an ordinary formula
|
||||
// otherwise
|
||||
if (sel.find(from_ascii("\\newcommand")) == string::npos
|
||||
&& sel.find(from_ascii("\\def")) == string::npos)
|
||||
{
|
||||
InsetMathHull * formula = new InsetMathHull;
|
||||
istringstream is(to_utf8(sel));
|
||||
Lexer lex(0, 0);
|
||||
lex.setStream(is);
|
||||
formula->read(cur.buffer(), lex);
|
||||
if (formula->getType() == hullNone)
|
||||
// Don't create pseudo formulas if
|
||||
// delimiters are left out
|
||||
formula->mutate(hullSimple);
|
||||
cur.insert(formula);
|
||||
} else {
|
||||
cur.insert(new MathMacroTemplate(sel));
|
||||
}
|
||||
}
|
||||
cur.message(from_utf8(N_("Math editor mode")));
|
||||
}
|
||||
|
||||
|
||||
static void specialChar(Cursor & cur, InsetSpecialChar::Kind kind)
|
||||
{
|
||||
recordUndo(cur);
|
||||
cap::replaceSelection(cur);
|
||||
@ -204,7 +183,7 @@ void specialChar(Cursor & cur, InsetSpecialChar::Kind kind)
|
||||
}
|
||||
|
||||
|
||||
bool doInsertInset(Cursor & cur, Text * text,
|
||||
static bool doInsertInset(Cursor & cur, Text * text,
|
||||
FuncRequest const & cmd, bool edit, bool pastesel)
|
||||
{
|
||||
Inset * inset = createInset(&cur.bv(), cmd);
|
||||
@ -235,7 +214,10 @@ bool doInsertInset(Cursor & cur, Text * text,
|
||||
}
|
||||
|
||||
|
||||
} // anon namespace
|
||||
string const freefont2string()
|
||||
{
|
||||
return freefont.toString(toggleall);
|
||||
}
|
||||
|
||||
|
||||
void Text::number(Cursor & cur)
|
||||
@ -1364,7 +1346,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
||||
case LFUN_FONT_FREE_UPDATE: {
|
||||
Font font;
|
||||
bool toggle;
|
||||
if (bv_funcs::string2font(to_utf8(cmd.argument()), font, toggle)) {
|
||||
if (font.fromString(to_utf8(cmd.argument()), toggle)) {
|
||||
freefont = font;
|
||||
toggleall = toggle;
|
||||
toggleAndShow(cur, this, freefont, toggleall);
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "buffer_funcs.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "Color.h"
|
||||
#include "CutAndPaste.h"
|
||||
#include "debug.h"
|
||||
|
@ -1,153 +0,0 @@
|
||||
/**
|
||||
* \file bufferview_funcs.cpp
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author Lars Gullik Bjønnes
|
||||
* \author Jean-Marc Lasgouttes
|
||||
* \author John Levon
|
||||
* \author Angus Leeming
|
||||
* \author Juergen Vigna
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "bufferview_funcs.h"
|
||||
|
||||
#include "Buffer.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "Cursor.h"
|
||||
#include "CoordCache.h"
|
||||
#include "gettext.h"
|
||||
#include "Language.h"
|
||||
#include "Color.h"
|
||||
#include "Lexer.h"
|
||||
|
||||
#include "frontends/alert.h"
|
||||
|
||||
#include "insets/InsetCommand.h"
|
||||
#include "insets/InsetText.h"
|
||||
|
||||
#include "support/convert.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
using std::istringstream;
|
||||
using std::ostringstream;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using std::find;
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
using support::bformat;
|
||||
|
||||
namespace bv_funcs {
|
||||
|
||||
// Set data using font and toggle
|
||||
// If successful, returns true
|
||||
bool font2string(Font const & font, bool const toggle, string & data)
|
||||
{
|
||||
string lang = "ignore";
|
||||
if (font.language())
|
||||
lang = font.language()->lang();
|
||||
|
||||
ostringstream os;
|
||||
os << "family " << font.family() << '\n'
|
||||
<< "series " << font.series() << '\n'
|
||||
<< "shape " << font.shape() << '\n'
|
||||
<< "size " << font.size() << '\n'
|
||||
<< "emph " << font.emph() << '\n'
|
||||
<< "underbar " << font.underbar() << '\n'
|
||||
<< "noun " << font.noun() << '\n'
|
||||
<< "number " << font.number() << '\n'
|
||||
<< "color " << font.color() << '\n'
|
||||
<< "language " << lang << '\n'
|
||||
<< "toggleall " << convert<string>(toggle);
|
||||
data = os.str();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Set font and toggle using data
|
||||
// If successful, returns true
|
||||
bool string2font(string const & data, Font & font, bool & toggle)
|
||||
{
|
||||
istringstream is(data);
|
||||
Lexer lex(0,0);
|
||||
lex.setStream(is);
|
||||
|
||||
int nset = 0;
|
||||
while (lex.isOK()) {
|
||||
string token;
|
||||
if (lex.next())
|
||||
token = lex.getString();
|
||||
|
||||
if (token.empty() || !lex.next())
|
||||
break;
|
||||
|
||||
if (token == "family") {
|
||||
int const next = lex.getInteger();
|
||||
font.setFamily(Font::FONT_FAMILY(next));
|
||||
|
||||
} else if (token == "series") {
|
||||
int const next = lex.getInteger();
|
||||
font.setSeries(Font::FONT_SERIES(next));
|
||||
|
||||
} else if (token == "shape") {
|
||||
int const next = lex.getInteger();
|
||||
font.setShape(Font::FONT_SHAPE(next));
|
||||
|
||||
} else if (token == "size") {
|
||||
int const next = lex.getInteger();
|
||||
font.setSize(Font::FONT_SIZE(next));
|
||||
|
||||
} else if (token == "emph" || token == "underbar" ||
|
||||
token == "noun" || token == "number") {
|
||||
|
||||
int const next = lex.getInteger();
|
||||
Font::FONT_MISC_STATE const misc =
|
||||
Font::FONT_MISC_STATE(next);
|
||||
|
||||
if (token == "emph")
|
||||
font.setEmph(misc);
|
||||
else if (token == "underbar")
|
||||
font.setUnderbar(misc);
|
||||
else if (token == "noun")
|
||||
font.setNoun(misc);
|
||||
else if (token == "number")
|
||||
font.setNumber(misc);
|
||||
|
||||
} else if (token == "color") {
|
||||
int const next = lex.getInteger();
|
||||
font.setColor(Color::color(next));
|
||||
|
||||
} else if (token == "language") {
|
||||
string const next = lex.getString();
|
||||
if (next == "ignore")
|
||||
font.setLanguage(ignore_language);
|
||||
else
|
||||
font.setLanguage(languages.getLanguage(next));
|
||||
|
||||
} else if (token == "toggleall") {
|
||||
toggle = lex.getBool();
|
||||
|
||||
} else {
|
||||
// Unrecognised token
|
||||
break;
|
||||
}
|
||||
|
||||
++nset;
|
||||
}
|
||||
return (nset > 0);
|
||||
}
|
||||
|
||||
|
||||
} // namespace bv_funcs
|
||||
|
||||
|
||||
} // namespace lyx
|
@ -1,41 +0,0 @@
|
||||
// -*- C++ -*-
|
||||
/**
|
||||
* \file bufferview_funcs.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author Lars Gullik Bjønnes
|
||||
* \author Jean-Marc Lasgouttes
|
||||
* \author Angus Leeming
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#ifndef BUFFERVIEW_FUNCS_H
|
||||
#define BUFFERVIEW_FUNCS_H
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace lyx {
|
||||
|
||||
class Font;
|
||||
|
||||
namespace bv_funcs {
|
||||
|
||||
/// Set \param data using \param font and \param toggle. Return success.
|
||||
bool font2string(Font const & font, bool toggle, std::string & data);
|
||||
|
||||
/// Set \param font and \param toggle using \param data. Return success.
|
||||
bool string2font(std::string const & data, Font & font, bool & toggle);
|
||||
|
||||
/** Returns the current freefont, encoded as a std::string to be passed to the
|
||||
* frontends.
|
||||
*/
|
||||
std::string const freefont2string();
|
||||
|
||||
} // namespace bv_funcs
|
||||
|
||||
|
||||
} // namespace lyx
|
||||
|
||||
#endif
|
@ -23,7 +23,6 @@
|
||||
#include "BufferList.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "Cursor.h"
|
||||
#include "debug.h"
|
||||
#include "ErrorList.h"
|
||||
|
@ -14,12 +14,10 @@
|
||||
|
||||
#include "Buffer.h"
|
||||
#include "BufferParams.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "Language.h"
|
||||
#include "Color.h"
|
||||
|
||||
using lyx::bv_funcs::font2string;
|
||||
using std::string;
|
||||
|
||||
namespace lyx {
|
||||
@ -62,17 +60,14 @@ void ControlCharacter::dispatchParams()
|
||||
if (!font_)
|
||||
return;
|
||||
|
||||
string data;
|
||||
if (font2string(*font_, toggleall_, data))
|
||||
dispatch(FuncRequest(getLfun(), data));
|
||||
string data = font_->toString(toggleall_);
|
||||
dispatch(FuncRequest(getLfun(), data));
|
||||
}
|
||||
|
||||
|
||||
Font::FONT_FAMILY ControlCharacter::getFamily() const
|
||||
{
|
||||
if (!font_)
|
||||
return Font::IGNORE_FAMILY;
|
||||
return font_->family();
|
||||
return font_ ? font_->family() : Font::IGNORE_FAMILY;
|
||||
}
|
||||
|
||||
|
||||
@ -84,9 +79,7 @@ void ControlCharacter::setFamily(Font::FONT_FAMILY val)
|
||||
|
||||
Font::FONT_SERIES ControlCharacter::getSeries() const
|
||||
{
|
||||
if (!font_)
|
||||
return Font::IGNORE_SERIES;
|
||||
return font_->series();
|
||||
return font_ ? font_->series() : Font::IGNORE_SERIES;
|
||||
}
|
||||
|
||||
|
||||
@ -98,9 +91,7 @@ void ControlCharacter::setSeries(Font::FONT_SERIES val)
|
||||
|
||||
Font::FONT_SHAPE ControlCharacter::getShape() const
|
||||
{
|
||||
if (!font_)
|
||||
return Font::IGNORE_SHAPE;
|
||||
return font_->shape();
|
||||
return font_ ? font_->shape() : Font::IGNORE_SHAPE;
|
||||
}
|
||||
|
||||
|
||||
@ -112,9 +103,7 @@ void ControlCharacter::setShape(Font::FONT_SHAPE val)
|
||||
|
||||
Font::FONT_SIZE ControlCharacter::getSize() const
|
||||
{
|
||||
if (!font_)
|
||||
return Font::IGNORE_SIZE;
|
||||
return font_->size();
|
||||
return font_ ? font_->size() : Font::IGNORE_SIZE;
|
||||
}
|
||||
|
||||
|
||||
@ -138,9 +127,9 @@ FONT_STATE ControlCharacter::getBar() const
|
||||
if (font_->noun() == Font::TOGGLE)
|
||||
return NOUN_TOGGLE;
|
||||
|
||||
if (font_->emph() == Font::IGNORE &&
|
||||
font_->underbar() == Font::IGNORE &&
|
||||
font_->noun() == Font::IGNORE)
|
||||
if (font_->emph() == Font::IGNORE
|
||||
&& font_->underbar() == Font::IGNORE
|
||||
&& font_->noun() == Font::IGNORE)
|
||||
return IGNORE;
|
||||
|
||||
return INHERIT;
|
||||
|
@ -25,9 +25,6 @@
|
||||
#include "MathSupport.h"
|
||||
#include "InsetMathRef.h"
|
||||
|
||||
#include "bufferview_funcs.h"
|
||||
#include "Text.h"
|
||||
|
||||
#include "Buffer.h"
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
@ -43,6 +40,7 @@
|
||||
#include "LyXRC.h"
|
||||
#include "OutputParams.h"
|
||||
#include "sgml.h"
|
||||
#include "Text.h"
|
||||
#include "TextPainter.h"
|
||||
#include "Undo.h"
|
||||
|
||||
@ -1304,7 +1302,7 @@ void InsetMathHull::handleFont2(Cursor & cur, docstring const & arg)
|
||||
recordUndo(cur);
|
||||
Font font;
|
||||
bool b;
|
||||
bv_funcs::string2font(to_utf8(arg), font, b);
|
||||
font.fromString(to_utf8(arg), b);
|
||||
if (font.color() != Color::inherit) {
|
||||
MathAtom at = MathAtom(new InsetMathColor(true, font.color()));
|
||||
cur.handleNest(at, 0);
|
||||
|
@ -34,7 +34,6 @@
|
||||
#include "MathSupport.h"
|
||||
|
||||
#include "Bidi.h"
|
||||
#include "bufferview_funcs.h"
|
||||
#include "BufferView.h"
|
||||
#include "Color.h"
|
||||
#include "CoordCache.h"
|
||||
@ -432,7 +431,7 @@ void InsetMathNest::handleFont2(Cursor & cur, docstring const & arg)
|
||||
recordUndo(cur, Undo::ATOMIC);
|
||||
Font font;
|
||||
bool b;
|
||||
bv_funcs::string2font(to_utf8(arg), font, b);
|
||||
font.fromString(to_utf8(arg), b);
|
||||
if (font.color() != Color::inherit) {
|
||||
MathAtom at = MathAtom(new InsetMathColor(true, font.color()));
|
||||
cur.handleNest(at, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user