#include "FontList.h"
-#include <boost/next_prior.hpp>
-
-#include <algorithm>
+#include "support/lyxalgo.h"
using namespace std;
}
-Font & FontList::get(pos_type pos)
+Font const & FontList::get(pos_type pos)
{
iterator end = list_.end();
iterator it = fontIterator(pos);
if (it != end && it->pos() == pos)
return it->font_;
- static Font dummy;
+
+ static Font const dummy;
return dummy;
}
iterator it = fontIterator(pos);
iterator beg = list_.begin();
if (it != list_.end() && it->pos() == pos
- && (pos == 0
- || (it != list_.begin() && boost::prior(it)->pos() == pos - 1))) {
+ && (pos == 0
+ || (it != list_.begin() && prev(it, 1)->pos() == pos - 1))) {
// If it is a multi-character font
// entry, we just make it smaller
size_t const i = distance(list_.begin(), it);
// Is position pos a beginning of a font block?
- bool const begin = pos == 0 || !found
+ bool const begin = pos == 0 || !found
|| (i > 0 && list_[i - 1].pos() == pos - 1);
// Is position pos at the end of a font block?
bool const end = found && list_[i].pos() == pos;
if (!begin && !end) {
- // The general case: The block is splitted into 3 blocks
+ // The general case: The block is split into 3 blocks
list_.insert(list_.begin() + i,
FontTable(pos - 1, list_[i].font()));
list_.insert(list_.begin() + i + 1,
}
-void FontList::setMisspelled(pos_type startpos, pos_type endpos,
- bool misspelled)
-{
- // FIXME: Optimize!!!
- for (pos_type pos = startpos; pos != endpos; ++pos) {
- Font f = get(pos);
- f.setMisspelled(misspelled);
- set(pos, f);
- }
-}
-
-
-FontSize FontList::highestInRange(pos_type startpos, pos_type endpos,
- FontSize def_size) const
-{
- if (list_.empty())
- return def_size;
-
- List::const_iterator end_it = fontIterator(endpos);
- const_iterator const end = list_.end();
- if (end_it != end)
- ++end_it;
-
- List::const_iterator cit = fontIterator(startpos);
-
- FontSize maxsize = FONT_SIZE_TINY;
- for (; cit != end_it; ++cit) {
- FontSize size = cit->font().fontInfo().size();
- if (size == FONT_SIZE_INHERIT)
- size = def_size;
- if (size > maxsize && size <= FONT_SIZE_HUGER)
- maxsize = size;
- }
- return maxsize;
-}
-
-
-bool FontList::hasChangeInRange(pos_type pos, int len) const
-{
- List::const_iterator cit = fontIterator(pos);
- return cit == list_.end() || pos + len - 1 <= cit->pos();
-}
-
-
void FontList::validate(LaTeXFeatures & features) const
{
const_iterator fcit = list_.begin();