X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.h;h=ab5ba600289d11e65433fdaa4dc1bf83e8822321;hb=447a1056b4f97b102db9666a131ce85001c0676c;hp=3cfd6239a3f1751899800fff6021ead6cc91a446;hpb=cf37ad8c80fac36565b98fd993e32736902f8396;p=lyx.git diff --git a/src/BufferView.h b/src/BufferView.h index 3cfd6239a3..ab5ba60028 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -15,6 +15,7 @@ #ifndef BUFFER_VIEW_H #define BUFFER_VIEW_H +#include "CoordCache.h" #include "DocumentClassPtr.h" #include "TexRow.h" #include "update_flags.h" @@ -26,29 +27,27 @@ namespace lyx { namespace support { class FileName; } +namespace frontend { struct CaretGeometry; } namespace frontend { class Painter; } namespace frontend { class GuiBufferViewDelegate; } class Buffer; class Change; -class CoordCache; class Cursor; class CursorSlice; +class Dimension; class DispatchResult; class DocIterator; -class DocumentClass; class FuncRequest; class FuncStatus; class Intl; class Inset; +class InsetMathNest; class Length; class MathData; class MathRow; -class ParIterator; class ParagraphMetrics; class Point; -class Row; -class TexRow; class Text; class TextMetrics; @@ -104,9 +103,15 @@ public: /// right margin int rightMargin() const; - /// left margin int leftMargin() const; + /// top margin + int topMargin() const; + /// bottom margin + int bottomMargin() const; + + docstring const & searchRequestCache() const; + void setSearchRequestCache(docstring const & text); /// return the on-screen size of this length /* @@ -156,6 +161,9 @@ public: docstring toolTip(int x, int y) const; /// \return the context menu for the given position. std::string contextMenu(int x, int y) const; + /// \return the math inset with a context menu for the given position + Inset const * mathContextMenu(InsetMathNest const * inset, + CoordCache::Insets const & inset_cache, int x, int y) const; /// Save the current position as bookmark. /// if idx == 0, save to temp_bookmark @@ -218,7 +226,7 @@ public: /// return the inline completion postfix. docstring const & inlineCompletion() const; /// return the number of unique characters in the inline completion. - size_t const & inlineCompletionUniqueChars() const; + size_t inlineCompletionUniqueChars() const; /// return the position in the buffer of the inline completion postfix. DocIterator const & inlineCompletionPos() const; /// make sure inline completion position is OK @@ -310,7 +318,11 @@ public: /// is the caret currently visible in the view bool caretInView() const; /// get the position and height of the caret - void caretPosAndHeight(Point & p, int & h) const; + void caretPosAndDim(Point & p, Dimension & dim) const; + /// compute the shape of the caret + void buildCaretGeometry(bool complet); + /// the shape of the caret + frontend::CaretGeometry const & caretGeometry() const; /// void draw(frontend::Painter & pain, bool paint_caret);