]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.h
Replace boost::shared_ptr<TextClass> with a global cache of sorts of the TextClass...
[lyx.git] / src / BufferView.h
index c6c045a0082384c85bafd991015b99e5c6261b9b..a79c7bbb62e6b9da5c663fcb7bdfbdc8995362ab 100644 (file)
@@ -36,6 +36,7 @@ class FuncRequest;
 class FuncStatus;
 class Intl;
 class Inset;
+class Menu;
 class ParIterator;
 class ParagraphMetrics;
 class Point;
@@ -51,19 +52,16 @@ enum CursorStatus {
 /// Scrollbar Parameters.
 struct ScrollbarParameters
 {
-       void reset(int h = 0, int p = 0, int l = 0)
-       {
-               height = h;
-               position = p;
-               lineScrollHeight = l;
-       }
-
-       /// Total document height in pixels.
-       int height;
+       /// Minimum scrollbar position in pixels.
+       int min;
+       /// Maximum scrollbar position in pixels.
+       int max;
        /// Current position in the document in pixels.
        int position;
        /// Line-scroll amount in pixels.
-       int lineScrollHeight;
+       int single_step;
+       /// Page-scroll amount in pixels.
+       int page_step;
 };
 
 /// Screen view of a Buffer.
@@ -81,7 +79,7 @@ struct ScrollbarParameters
 class BufferView {
 public:
        ///
-       BufferView(Buffer & buffer);
+       explicit BufferView(Buffer & buffer);
        ///
        ~BufferView();
 
@@ -89,6 +87,15 @@ public:
        Buffer & buffer();
        Buffer const & buffer() const;
 
+       ///
+       void setFullScreen(bool full_screen) { full_screen_ = full_screen; }
+
+       /// right margin
+       int rightMargin() const;
+
+       /// left margin
+       int leftMargin() const;
+
        /// perform pending metrics updates.
        /** \c Update::FitCursor means first to do a FitCursor, and to
         * force an update if screen position changes.
@@ -104,6 +111,10 @@ public:
        void updateScrollbar();
        /// return the Scrollbar Parameters.
        ScrollbarParameters const & scrollbarParameters() const;
+       /// \return Tool tip for the given position.
+       docstring toolTip(int x, int y) const;
+       /// \return the context menu for the given position.
+       docstring contextMenu(int x, int y) const;
 
        /// Save the current position as bookmark.
        /// if idx == 0, save to temp_bookmark
@@ -125,10 +136,16 @@ public:
        /// set the cursor based on the given TeX source row.
        void setCursorFromRow(int row);
 
-       /// Ensure the cursor is visible.
-       /// This method will automatically scroll and update the BufferView and updated 
+       /// Ensure that the BufferView cursor is visible.
+       /// This method will automatically scroll and update the BufferView
        /// if needed.
        void showCursor();
+       /// Ensure the passed cursor \p dit is visible.
+       /// This method will automatically scroll and update the BufferView
+       /// if needed.
+       void showCursor(DocIterator const & dit);
+       /// LFUN_SCROLL Helper.
+       void lfunScroll(FuncRequest const & cmd);
        /// scroll down document by the given number of pixels.
        void scrollDown(int pixels);
        /// scroll up document by the given number of pixels.
@@ -145,14 +162,25 @@ public:
        /// return the pixel height of the document view.
        int workHeight() const;
 
+       /// return the inline completion postfix.
+       docstring const & inlineCompletion() const;
+       /// return the number of unique characters in the inline completion.
+       size_t const & inlineCompletionUniqueChars() const;
+       /// return the position in the buffer of the inline completion postfix.
+       DocIterator const & inlineCompletionPos() const;
+       /// set the inline completion postfix and its position in the buffer.
+       /// Updates the updateFlags in \c cur.
+       void setInlineCompletion(Cursor & cur, DocIterator const & pos,
+               docstring const & completion, size_t uniqueChars = 0);
+
        /// translate and insert a character, using the correct keymap.
        void translateAndInsert(char_type c, Text * t, Cursor & cur);
 
        /// return true for events that will handle.
        FuncStatus getStatus(FuncRequest const & cmd);
        /// execute the given function.
-       /// \return the Update::flags for further metrics update.
-       Update::flags dispatch(FuncRequest const & argument);
+       /// \return true if the function has been processed.
+       bool dispatch(FuncRequest const & argument);
 
        /// request an X11 selection.
        /// \return the selected string.
@@ -266,13 +294,15 @@ private:
                Text const & text, //< The Text where we start searching.
                int x, //< x-coordinate on screen
                int y  //< y-coordinate on screen
-               );
+               ) const;
 
        ///
        int width_;
        ///
        int height_;
        ///
+       bool full_screen_;
+       ///
        Buffer & buffer_;
 
        struct Private;
@@ -285,9 +315,6 @@ inline int nestMargin() { return 15; }
 /// margin for changebar
 inline int changebarMargin() { return 12; }
 
-/// right margin
-inline int rightMargin() { return 10; }
-
 } // namespace lyx
 
 #endif // BUFFERVIEW_H