move the only remaining function in lyxrow_func to paragraph

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15424 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2006-10-21 07:24:11 +00:00
parent c75c468e44
commit 19cf66f397
9 changed files with 37 additions and 96 deletions

View File

@ -14,7 +14,6 @@
#include "buffer.h"
#include "lyxfont.h"
#include "lyxrow.h"
#include "lyxrow_funcs.h"
#include "lyxrc.h"
#include "paragraph.h"

View File

@ -216,8 +216,6 @@ lyx_SOURCES = \
lyxrc.h \
lyxrow.C \
lyxrow.h \
lyxrow_funcs.C \
lyxrow_funcs.h \
lyxserver.C \
lyxserver.h \
lyxsocket.C \

View File

@ -1,57 +0,0 @@
/**
* \file lyxrow_funcs.C
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Lars Gullik Bjønnes
* \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "lyxrow_funcs.h"
#include "debug.h"
#include "lyxlayout.h"
#include "lyxrow.h"
#include "paragraph.h"
namespace lyx {
bool hfillExpansion(Paragraph const & par, Row const & row, pos_type pos)
{
if (!par.isHfill(pos))
return false;
// at the end of a row it does not count
// unless another hfill exists on the line
if (pos >= row.endpos()) {
for (pos_type i = row.pos(); i < pos && !par.isHfill(i); ++i)
return false;
}
// at the beginning of a row it does not count, if it is not
// the first row of a paragaph
if (row.pos() == 0)
return true;
// in some labels it does not count
if (par.layout()->margintype != MARGIN_MANUAL
&& pos < par.beginOfBody())
return false;
// if there is anything between the first char of the row and
// the specified position that is not a newline and not a hfill,
// the hfill will count, otherwise not
pos_type i = row.pos();
while (i < pos && (par.isNewline(i) || par.isHfill(i)))
++i;
return i != pos;
}
} // namespace lyx

View File

@ -1,30 +0,0 @@
// -*- C++ -*-
/**
* \file lyxrow_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 André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#ifndef LYXROW_FUNCS_H
#define LYXROW_FUNCS_H
#include "support/types.h"
namespace lyx {
class Paragraph;
class Row;
bool hfillExpansion(Paragraph const & par, Row const & row,
pos_type pos);
} // namespace lyx
#endif

View File

@ -1635,4 +1635,36 @@ void Paragraph::dump() const
}
bool Paragraph::hfillExpansion(Row const & row, pos_type pos) const
{
if (!isHfill(pos))
return false;
// at the end of a row it does not count
// unless another hfill exists on the line
if (pos >= row.endpos()) {
for (pos_type i = row.pos(); i < pos && !isHfill(i); ++i)
return false;
}
// at the beginning of a row it does not count, if it is not
// the first row of a paragaph
if (row.pos() == 0)
return true;
// in some labels it does not count
if (layout()->margintype != MARGIN_MANUAL && pos < beginOfBody())
return false;
// if there is anything between the first char of the row and
// the specified position that is not a newline and not a hfill,
// the hfill will count, otherwise not
pos_type i = row.pos();
while (i < pos && (isNewline(i) || isHfill(i)))
++i;
return i != pos;
}
} // namespace lyx

View File

@ -373,6 +373,8 @@ public:
RowList const & rows() const { return rows_; }
///
RowSignature & rowSignature() const { return rowSignature_; }
///
bool hfillExpansion(Row const & row, pos_type pos) const;
/// LyXText::redoParagraph updates this
Dimension & dim() { return dim_; }

View File

@ -25,7 +25,6 @@
#include "LColor.h"
#include "lyxrc.h"
#include "lyxrow.h"
#include "lyxrow_funcs.h"
#include "metricsinfo.h"
#include "paragraph.h"
#include "paragraph_funcs.h"
@ -724,7 +723,7 @@ void RowPainter::paintText()
pain_.line(int(x_), y1, int(x_), y0, LColor::added_space);
if (hfillExpansion(par_, row_, pos)) {
if (par_.hfillExpansion(row_, pos)) {
int const y2 = (y0 + y1) / 2;
if (pos >= body_pos) {

View File

@ -41,7 +41,6 @@
#include "lyxlex.h"
#include "lyxrc.h"
#include "lyxrow.h"
#include "lyxrow_funcs.h"
#include "metricsinfo.h"
#include "paragraph.h"
#include "paragraph_funcs.h"
@ -2303,7 +2302,7 @@ int LyXText::cursorX(CursorSlice const & sl, bool boundary) const
x += singleWidth(par, pos, par.getChar(pos), font);
if (hfillExpansion(par, row, pos))
if (par.hfillExpansion(row, pos))
x += (pos >= body_pos) ? m.hfill : m.label_hfill;
else if (par.isSeparator(pos) && pos >= body_pos)
x += m.separator;

View File

@ -40,7 +40,6 @@
#include "lyxfunc.h"
#include "lyxrc.h"
#include "lyxrow.h"
#include "lyxrow_funcs.h"
#include "paragraph.h"
#include "paragraph_funcs.h"
#include "ParagraphParameters.h"
@ -812,7 +811,7 @@ pos_type LyXText::getColumnNearX(pit_type const pit,
tmpx -= singleWidth(par, body_pos - 1);
}
if (hfillExpansion(par, row, c)) {
if (par.hfillExpansion(row, c)) {
tmpx += singleWidth(par, c);
if (c >= body_pos)
tmpx += r.hfill;