]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.h
"Inter-word Space"
[lyx.git] / src / BufferView.h
index 77478995960acacf26f2ba5a546de5ee80f037a1..419f807b772bc96e2df694fb4003a7ac793b4313 100644 (file)
 #ifndef BUFFER_VIEW_H
 #define BUFFER_VIEW_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include "LString.h"
 #include "undo.h"
 
@@ -21,6 +17,7 @@
 
 #include <boost/utility.hpp>
 
+class Change;
 class LyXView;
 class LyXText;
 class TeXErrors;
@@ -30,6 +27,9 @@ class Language;
 class Painter;
 class UpdatableInset;
 class WordLangTuple;
+class Encoding;
+class ErrorList;
+class ErrorItem;
 
 /**
  * A buffer view encapsulates a view onto a particular
@@ -46,10 +46,8 @@ public:
         * of the document rendering.
         */
        enum UpdateCodes {
-               UPDATE = 0, //< FIXME
-               SELECT = 1, //< selection change
-               FITCUR = 2, //< the cursor needs fitting into the view
-               CHANGE = 4  //< document data has changed
+               UPDATE = 0, //< repaint
+               SELECT = 1 //< reset selection to current cursor pos
        };
 
        /**
@@ -59,19 +57,19 @@ public:
        BufferView(LyXView * owner, int x, int y, int w, int h);
 
        ~BufferView();
+
        /// set the buffer we are viewing
        void buffer(Buffer * b);
        /// return the buffer being viewed
        Buffer * buffer() const;
+
        /// return the painter object for drawing onto the view
        Painter & painter() const;
        /// return the screen object for handling re-drawing
        LyXScreen & screen() const;
        /// return the owning main view
        LyXView * owner() const;
+
        /// resize event has happened
        void resize();
        /**
@@ -80,33 +78,41 @@ public:
         * repaint of the whole screen.
         */
        void repaint();
+
+       /// reload the contained buffer
+       void reload();
+
        /// fit the user cursor within the visible view
        bool fitCursor();
        /// perform pending painting updates
        void update();
        // update for a particular lyxtext
        void update(LyXText *, UpdateCodes uc);
+       /// update for the top-level lyxtext
+       void update(UpdateCodes uc);
        /// update for a particular inset
-       void updateInset(Inset * inset, bool mark_dirty);
+       void updateInset(Inset * inset);
        /// reset the scrollbar to reflect current view position
        void updateScrollbar();
        /// FIXME
        void redoCurrentBuffer();
+
        /// FIXME
        bool available() const;
+
        /// FIXME
        void beforeChange(LyXText *);
+
        /// Save the current position as bookmark i
        void savePosition(unsigned int i);
        /// Restore the position from bookmark i
        void restorePosition(unsigned int i);
        /// does the given bookmark have a saved position ?
        bool isSavedPosition(unsigned int i);
+
+       /// return the current change at the cursor
+       Change const getCurrentChange();
+
        /**
         * This holds the mapping between buffer paragraphs and screen rows.
         * This should be private...but not yet. (Lgb)
@@ -114,7 +120,7 @@ public:
        LyXText * text;
        /// return the lyxtext we are using
        LyXText * getLyXText() const;
+
        /// Return the current inset we are "locked" in
        UpdatableInset * theLockingInset() const;
        /// lock the given inset FIXME: return value ?
@@ -123,10 +129,13 @@ public:
        int unlockInset(UpdatableInset * inset);
        /// unlock the currently locked inset
        void insetUnlock();
+
+       /// return the current encoding at the cursor
+       Encoding const * getEncoding() const;
+
        /// return the parent language of the given inset
        Language const * getParentLanguage(Inset * inset) const;
+
        /// Select the "current" word
        void selectLastWord();
        /// replace the currently selected word
@@ -135,44 +144,37 @@ public:
        void endOfSpellCheck();
        /// return the next word
        WordLangTuple const nextWord(float & value);
+
        /// move cursor to the named label
-       bool gotoLabel(string const & label);
-       /// copy the environment type from current paragraph
-       void copyEnvironment();
-       /// set the current paragraph's environment type
-       void pasteEnvironment();
+       void gotoLabel(string const & label);
+
        /// undo last action
        void undo();
        /// redo last action
        void redo();
-       /// removes all autodeletable insets
-       bool removeAutoInsets();
-       /// insert all errors found when running latex
-       void insertErrors(TeXErrors & terr);
+
+       /// get the stored error list
+       ErrorList const & getErrorList() const;
+       /// clears the stored error list
+       void resetErrorList();
+       /// stored this  error list
+       void setErrorList(ErrorList const &);
+       /// adds a single error to the list
+       void addError(ErrorItem const &);
+       /// show the error list to the user
+       void showErrorList(string const &) const;
        /// set the cursor based on the given TeX source row
        void setCursorFromRow(int row);
+
        /**
         * Insert an inset into the buffer.
         * Place it in a layout of lout,
         */
        bool insertInset(Inset * inset, string const & lout = string());
+
        /// Inserts a lyx file at cursor position. return false if it fails
        bool insertLyXFile(string const & file);
-       /// show the user cursor
-       void showCursor();
-       /// hide the user cursor
-       void hideCursor();
-       /// FIXME
-       void showLockedInsetCursor(int x, int y, int asc, int desc);
-       /// FIXME
-       void hideLockedInsetCursor();
+
        /// FIXME
        bool fitLockedInsetCursor(int x, int y, int asc, int desc);
        /// FIXME
@@ -181,7 +183,10 @@ public:
        void toggleSelection(bool = true);
        /// FIXME: my word !
        void toggleToggle();
+
+       /// hide the cursor if it is visible
+       void hideCursor();
+
        /// center the document view around the cursor
        void center();
        /// scroll document by the given number of lines of default height
@@ -189,8 +194,6 @@ public:
        /// Scroll the view by a number of pixels
        void scrollDocView(int);
 
-       /// height of a normal line in pixels (zoom factor considered)
-       int defaultHeight() const;
        /// return the pixel width of the document view
        int workWidth() const;
        /// return the pixel height of the document view
@@ -203,24 +206,24 @@ public:
        bool ChangeRefsIfUnique(string const & from, string const & to);
        /// FIXME
        bool ChangeCitationsIfUnique(string const & from, string const & to);
+
        /// get the contents of the window system clipboard
        string const getClipboard() const;
        /// fill the window system clipboard
        void stuffClipboard(string const &) const;
        /// tell the window system we have a selection
        void haveSelection(bool sel);
+
        /// execute the given function
        bool dispatch(FuncRequest const & argument);
+
 private:
        /// Set the current locking inset
        void theLockingInset(UpdatableInset * inset);
+
        /// return the lyxtext containing this inset
        LyXText * getParentText(Inset * inset) const;
+
        /**
         * Change all insets with the given code's contents to a new
         * string. May only be used with InsetCommand-derived insets
@@ -228,7 +231,7 @@ private:
         */
        bool ChangeInsets(Inset::Code code, string const & from,
                          string const & to);
+
 
        struct Pimpl;
        friend struct BufferView::Pimpl;