#ifndef LYXTEXT_H
#define LYXTEXT_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
#include "lyxfont.h"
#include "lyxcursor.h"
#include "layout.h"
// unsigned is wrong here for text-insets!
int first_y;
///
- BufferView * bv_owner;
- ///
InsetText * inset_owner;
///
UpdatableInset * the_locking_inset;
Inset::RESULT dispatch(FuncRequest const & cmd);
private:
+ /// only the top-level LyXText has this non-zero
+ BufferView * bv_owner;
+
/** wether the screen needs a refresh,
starting with refresh_y
*/
*/
Row * firstRow() { return firstrow; }
- /** returns the height of a default row, needed for scrollbar
- */
- int defaultHeight() const;
-
/** The cursor.
Later this variable has to be removed. There should be now internal
cursor in a text (and thus not in a buffer). By keeping this it is
/// returns the inset at cursor (if it exists), 0 otherwise
Inset * getInset() const;
+ /// accept selected change
+ void acceptChange(BufferView * bv);
+
+ /// reject selected change
+ void rejectChange(BufferView * bv);
+
/** 'selects" the next word, where the cursor is not in
and returns this word as string. THe cursor will be moved
to the beginning of this word.
/* these things are for search and replace */
- /** sets the selection over the number of characters of string,
- no check!!
- */
- void setSelectionOverString(BufferView *, string const & str);
+ /**
+ * Sets the selection from the current cursor position to length
+ * characters to the right. No safety checks.
+ */
+ void setSelectionRange(BufferView *, lyx::pos_type length);
/** simple replacing. The font of the first selected character
is used
///
void cursorLeftOneWord(LyXCursor &) const;
-
+
///
float getCursorX(BufferView *, Row *, lyx::pos_type pos,
lyx::pos_type last, bool boundary) const;
/** inserts a new row behind the specified row, increments
the touched counters */
void insertRow(Row * row, Paragraph * par, lyx::pos_type pos) const;
- /// removes the row and reset the touched counters
+ /// removes the row and reset the touched counters
void removeRow(Row * row) const;
/// remove all following rows of the paragraph of the specified row.
void removeParagraph(Row * row) const;
- /// insert the specified paragraph behind the specified row
+ /// insert the specified paragraph behind the specified row
void insertParagraph(BufferView *,
Paragraph * par, Row * row) const;
/// paint the selection background
void paintRowSelection(DrawRowParams & p);
+ /// paint change bar
+ void paintChangeBar(DrawRowParams & p);
+
/// paint appendix marker
void paintRowAppendix(DrawRowParams & p);
/// paint page break marker. Returns its height.
int paintPageBreak(string const & label, int y, DrawRowParams & p);
-
+
/// paint env depth bar
void paintRowDepthBar(DrawRowParams & p);
/** Updates all counters starting BEHIND the row. Changed paragraphs
* with a dynamic left margin will be rebroken. */
void updateCounters(BufferView *) const;
- ///
+ ///
void update(BufferView * bv, bool changed = true);
/**
* Returns an inset if inset was hit, or 0 if not.
screen in pixel */
int labelFill(BufferView *, Row const * row) const;
- ///
- lyx::pos_type beginningOfMainBody(Buffer const *, Paragraph const * par) const;
-
- /**
+ /**
* Returns the left beginning of the text.
* This information cannot be taken from the layout object, because
* in LaTeX the beginning of the text fits in some cases
///
int labelEnd (BufferView *, Row const * row) const;
- /** returns the number of separators in the specified row.
- The separator on the very last column doesnt count
- */
- int numberOfSeparators(Buffer const *, Row const * row) const;
-
- /** returns the number of hfills in the specified row. The
- LyX-Hfill is a LaTeX \hfill so that the hfills at the
- beginning and at the end were ignored. This is {\em MUCH}
- more usefull than not to ignore!
- */
- int numberOfHfills(Buffer const *, Row const * row) const;
-
- /// like NumberOfHfills, but only those in the manual label!
- int numberOfLabelHfills(Buffer const *, Row const * row) const;
- /** returns true, if a expansion is needed. Rules are given by
- LaTeX
- */
- bool hfillExpansion(Buffer const *, Row const * row_ptr,
- lyx::pos_type pos) const;
///
LColor::color backgroundColor();
unsigned char transformChar(unsigned char c, Paragraph * par,
lyx::pos_type pos) const;
- /** returns the paragraph position of the last character in the
- specified row
- */
- lyx::pos_type rowLast(Row const * row) const;
- ///
- lyx::pos_type rowLastPrintable(Row const * row) const;
-
///
void charInserted();
public:
void ownerParagraph(Paragraph *) const;
// set it searching first for the right owner using the paragraph id
void ownerParagraph(int id, Paragraph *) const;
+
+ /// return true if this is the outer-most lyxtext
+ bool isTopLevel() const;
};
-#endif
+/// return the default height of a row in pixels, considering font zoom
+extern int defaultRowHeight();
+
+#endif // LYXTEXT_H