]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.h
Dekels tabular/textinset patches
[lyx.git] / src / BufferView.h
index ed2e57805cf9dfdd6a8acb2d1bb38803c8ac70db..b9ca44b8b5d9d5119429c932e7d09c85f8837948 100644 (file)
@@ -18,6 +18,7 @@
 
 #include FORMS_H_LOCATION
 #include "undo.h"
+#include <boost/utility.hpp>
 
 class LyXView;
 class LyXText;
@@ -25,15 +26,20 @@ class TeXErrors;
 class Buffer;
 class LyXScreen;
 class WorkArea;
+class Language;
 
 ///
-class BufferView {
+class BufferView : public noncopyable {
 public:
        ///
        enum UpdateCodes {
+               ///
                UPDATE = 0,
+               ///
                SELECT = 1,
+               ///
                FITCUR = 2,
+               ///
                CHANGE = 4
        };
                                            
@@ -58,23 +64,26 @@ public:
        ///
        void redraw();
        ///
-       void fitCursor();
+       void fitCursor(LyXText *);
        ///
        void update();
-       ///
+       //
        void update(UpdateCodes uc);
        ///
        void updateScrollbar();
        ///
+       Inset * checkInsetHit(LyXText *, int & x, int & y,
+                             unsigned int button);
+       /// 
        void redoCurrentBuffer();
        ///
        int resizeCurrentBuffer();
        ///
        void gotoError();
        ///
-       void cursorPrevious();
+       void cursorPrevious(LyXText *);
        ///
-       void cursorNext();
+       void cursorNext(LyXText *);
        /// 
        bool available() const;
        ///
@@ -92,9 +101,17 @@ public:
        */
        LyXText * text;
        ///
+       LyXText * getLyXText() const;
+       ///
+       LyXText * getParentText(Inset * inset) const;
+       ///
+       Language const * getParentLanguage(Inset * inset) const;
+       ///
        int workWidth() const;
        ///
-       UpdatableInset * the_locking_inset;
+       UpdatableInset * theLockingInset() const;
+       ///
+       void theLockingInset(UpdatableInset * inset); 
        ///
        void updateInset(Inset * inset, bool mark_dirty);
        ///
@@ -116,7 +133,7 @@ public:
        ///
        void selectLastWord();
        ///
-       char * nextWord(float & value);
+       string const nextWord(float & value);
        ///
        void insertCorrectQuote();
        ///
@@ -151,37 +168,44 @@ public:
        void menuUndo();
        ///
        void menuRedo();
+#ifndef NEW_INSETS
        ///
        void toggleFloat();
        ///
        void openStuff();
+#endif
        ///
        void insertNote();
+#ifndef NEW_INSETS
        ///
        void allFloats(char flag, char figmar);
+#endif
        /// removes all autodeletable insets
        bool removeAutoInsets();
        ///
        void insertErrors(TeXErrors & terr);
        ///
        void setCursorFromRow(int row);
-       /** Insert an inset into the buffer
-           Insert inset into buffer, placing it in a layout of lout,
-           if no_table make sure that it doesn't end up in a table. */
+       /** Insert an inset into the buffer.
+           Placie it in a layout of lout,
+           if no_table make sure that it doesn't end up in a table.
+       */
        bool insertInset(Inset * inset, string const & lout = string(),
                         bool no_table = false);
        /// open and lock an updatable inset
-       void open_new_inset(UpdatableInset * new_inset);
-       /// Inserts a lyx file at cursor position. Returns false if it fails.
+       bool open_new_inset(UpdatableInset * new_inset, bool behind = false);
+       /** Inserts a lyx file at cursor position.
+           @return #false# if it fails.
+       */
        bool insertLyXFile(string const & file);
        ///
        bool lockInset(UpdatableInset * inset);
        ///
-       void showLockedInsetCursor(long x, long y, int asc, int desc);
+       void showLockedInsetCursor(int x, int y, int asc, int desc);
        ///
        void hideLockedInsetCursor();
        ///
-       void fitLockedInsetCursor(long x, long y, int asc, int desc);
+       void fitLockedInsetCursor(int x, int y, int asc, int desc);
        ///
        int unlockInset(UpdatableInset * inset);
        ///
@@ -213,6 +237,7 @@ public:
 
        ///
        void pushIntoUpdateList(Inset * i);
+#if 0
        ///
        void workAreaExpose();
        ///
@@ -229,18 +254,25 @@ public:
        void enterView();
        ///
        void leaveView();
+#endif
        ///
        bool ChangeRefs(string const & from, string const & to);
        ///
+       bool ChangeRefsIfUnique(string const & from, string const & to);
+       ///
        void pasteClipboard(bool asPara);
        ///
        void stuffClipboard(string const &) const;
 private:
        struct Pimpl;
+       ///
+       friend struct BufferView::Pimpl;
+       ///
        Pimpl * pimpl_;
 };
 
 
+///
 BufferView::UpdateCodes operator|(BufferView::UpdateCodes uc1,
                                  BufferView::UpdateCodes uc2);