mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 21:49:51 +00:00
5ddc612b73
* Font::FontBits -> FontInfo * Font::FONT_XXX -> all enums transfered to FontEnums.h and renamed to FontXxx I've replaced Font uses with FontInfo were the language() member was not needed, basically all draw() and metrics methods. There's one problematic cases with InsetQuotes which I solved by taking the Buffer main language. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21240 a592a061-630c-0410-9148-cb99ea01b6c8
165 lines
3.7 KiB
C++
165 lines
3.7 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file InsetText.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Jürgen Vigna
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef INSETTEXT_H
|
|
#define INSETTEXT_H
|
|
|
|
#include "Inset.h"
|
|
#include "Text.h"
|
|
|
|
#include "support/types.h"
|
|
|
|
namespace lyx {
|
|
|
|
class Buffer;
|
|
class BufferParams;
|
|
class BufferView;
|
|
class CursorSlice;
|
|
class Dimension;
|
|
class ParagraphList;
|
|
class InsetTabular;
|
|
|
|
|
|
/**
|
|
A text inset is like a TeX box to write full text
|
|
(including styles and other insets) in a given space.
|
|
*/
|
|
class InsetText : public Inset {
|
|
public:
|
|
///
|
|
explicit InsetText(BufferParams const &);
|
|
///
|
|
InsetText();
|
|
|
|
///
|
|
Dimension const dimension(BufferView const &) const;
|
|
|
|
/// empty inset to empty par
|
|
void clear();
|
|
///
|
|
void read(Buffer const & buf, Lexer & lex);
|
|
///
|
|
void write(Buffer const & buf, std::ostream & os) const;
|
|
///
|
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
|
///
|
|
void draw(PainterInfo & pi, int x, int y) const;
|
|
///
|
|
virtual docstring const editMessage() const;
|
|
///
|
|
EDITABLE editable() const { return HIGHLY_EDITABLE; }
|
|
///
|
|
bool canTrackChanges() const { return true; }
|
|
///
|
|
InsetText * asTextInset() { return this; }
|
|
///
|
|
InsetText const * asTextInset() const { return this; }
|
|
///
|
|
int latex(Buffer const &, odocstream &, OutputParams const &) const;
|
|
///
|
|
int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
|
|
///
|
|
int docbook(Buffer const &, odocstream &, OutputParams const &) const;
|
|
///
|
|
void validate(LaTeXFeatures & features) const;
|
|
|
|
/// return x,y of given position relative to the inset's baseline
|
|
void cursorPos(BufferView const & bv, CursorSlice const & sl,
|
|
bool boundary, int & x, int & y) const;
|
|
///
|
|
InsetCode lyxCode() const { return TEXT_CODE; }
|
|
///
|
|
void setText(docstring const &, Font const &, bool trackChanges);
|
|
///
|
|
void setAutoBreakRows(bool);
|
|
///
|
|
bool getAutoBreakRows() const { return text_.autoBreakRows_; }
|
|
///
|
|
void setDrawFrame(bool);
|
|
///
|
|
ColorCode frameColor() const;
|
|
///
|
|
void setFrameColor(ColorCode);
|
|
///
|
|
bool showInsetDialog(BufferView *) const;
|
|
///
|
|
Text * getText(int i) const {
|
|
return (i == 0) ? const_cast<Text*>(&text_) : 0;
|
|
}
|
|
///
|
|
virtual bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
|
|
|
/// set the change for the entire inset
|
|
void setChange(Change const & change);
|
|
/// accept the changes within the inset
|
|
void acceptChanges(BufferParams const & bparams);
|
|
/// reject the changes within the inset
|
|
void rejectChanges(BufferParams const & bparams);
|
|
|
|
/// append text onto the existing text
|
|
void appendParagraphs(Buffer * bp, ParagraphList &);
|
|
|
|
///
|
|
void addPreview(graphics::PreviewLoader &) const;
|
|
|
|
///
|
|
void edit(Cursor & cur, bool left);
|
|
///
|
|
Inset * editXY(Cursor & cur, int x, int y);
|
|
|
|
/// number of cells in this inset
|
|
size_t nargs() const { return 1; }
|
|
///
|
|
ParagraphList & paragraphs();
|
|
///
|
|
ParagraphList const & paragraphs() const;
|
|
///
|
|
bool insetAllowed(InsetCode) const { return true; }
|
|
///
|
|
bool allowSpellCheck() const { return true; }
|
|
/// should paragraph indendation be ommitted in any case?
|
|
bool neverIndent(Buffer const &) const;
|
|
///
|
|
virtual bool allowMultiPar() const { return true; }
|
|
///
|
|
InsetText(InsetText const &);
|
|
|
|
// Update the counters of this inset and of its contents
|
|
virtual void updateLabels(Buffer const &, ParIterator const &);
|
|
///
|
|
virtual Inset * clone() const;
|
|
|
|
protected:
|
|
///
|
|
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
|
|
|
|
private:
|
|
///
|
|
void init();
|
|
|
|
///
|
|
bool drawFrame_;
|
|
/** We store the ColorCode value as an int to get Color.h out
|
|
* of the header file.
|
|
*/
|
|
int frame_color_;
|
|
///
|
|
mutable pit_type old_pit;
|
|
|
|
public:
|
|
///
|
|
mutable Text text_;
|
|
};
|
|
|
|
} // namespace lyx
|
|
|
|
#endif
|