X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.h;h=6a783e7c231b8f3d73e7bbc86c1ba1de9c2bf4f3;hb=ab254289c832cd045c56e6012d14b048618cb833;hp=11bc14f06eea66b66d589e9202857d8ac7505b2e;hpb=76938908d7da15b92bad3908e71eb969c9449c0e;p=lyx.git diff --git a/src/BufferView.h b/src/BufferView.h index 11bc14f06e..6a783e7c23 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -5,7 +5,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ @@ -16,16 +16,37 @@ #pragma interface #endif -#include FORMS_H_LOCATION +#include "LString.h" #include "undo.h" +#include "commandtags.h" +#include "insets/inset.h" +#include class LyXView; class LyXText; class TeXErrors; +class Buffer; +class LyXScreen; +class WorkArea; +class Language; +class Painter; +class UpdatableInset; /// -class BufferView { +class BufferView : boost::noncopyable { public: + /// + enum UpdateCodes { + /// + UPDATE = 0, + /// + SELECT = 1, + /// + FITCUR = 2, + /// + CHANGE = 4 + }; + /// BufferView(LyXView * owner, int , int , int, int); /// @@ -35,7 +56,7 @@ public: /// Painter & painter(); /// - Painter & getPainter() const; + LyXScreen * screen() const; /// void buffer(Buffer * b); /// @@ -45,47 +66,54 @@ public: /// void redraw(); /// - void fitCursor(); + void fitCursor(LyXText *); /// void update(); - /// - void update(signed char f); - /// - void smallUpdate(signed char f); + // + void update(LyXText *, UpdateCodes uc); /// void updateScrollbar(); /// + Inset * checkInsetHit(LyXText *, int & x, int & y, + unsigned int button); + /// void redoCurrentBuffer(); /// int resizeCurrentBuffer(); /// - void gotoError(); + void cursorPrevious(LyXText *); /// - void cursorPrevious(); - /// - void cursorNext(); + void cursorNext(LyXText *); /// bool available() const; /// LyXView * owner() const; /// - void beforeChange(); + void beforeChange(LyXText *); /// - void savePosition(); + void savePosition(unsigned int i); /// - void restorePosition(); + void restorePosition(unsigned int i); + /// + bool isSavedPosition(unsigned int i); /** This holds the mapping between buffer paragraphs and screen rows. This should be private...but not yet. (Lgb) */ LyXText * text; /// - unsigned short paperWidth() const; + LyXText * getLyXText() const; /// - UpdatableInset * the_locking_inset; + LyXText * getParentText(Inset * inset) const; /// - void updateInset(Inset * inset, bool mark_dirty); + Language const * getParentLanguage(Inset * inset) const; + /// + int workWidth() const; /// - bool inset_slept; + UpdatableInset * theLockingInset() const; + /// + void theLockingInset(UpdatableInset * inset); + /// + void updateInset(Inset * inset, bool mark_dirty); /// int slx; /// @@ -103,12 +131,10 @@ public: /// void selectLastWord(); /// - char * nextWord(float & value); + string const nextWord(float & value); /// void insertCorrectQuote(); /// - void gotoNote(); - /// bool gotoLabel(string const & label); /// void paste(); @@ -121,54 +147,34 @@ public: /// void copyEnvironment(); /// - void hfill(); - /// - void protectedBlank(); - /// - void newline(); - /// - void menuSeparator(); - /// - void endOfSentenceDot(); - /// - void ldots(); - /// - void hyphenationPoint(); - /// void menuUndo(); /// void menuRedo(); - /// - void toggleFloat(); - /// - void openStuff(); - /// - void insertNote(); - /// - void allFloats(char flag, char figmar); /// 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. */ - void 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. + /** 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); + 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); /// - int lockInset(UpdatableInset * inset); + 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); /// @@ -192,15 +198,8 @@ public: bool active() const; /// bool belowMouse() const; - /// A callback for the up arrow in the scrollbar. - void upCB(long time, int button); /// A callback for the slider in the scrollbar. void scrollCB(double); - /// A callback for the down arrow in the scrollbar. - void downCB(long time, int button); - - /// - static void cursorToggleCB(FL_OBJECT * ob, long); /// void setState(); @@ -208,22 +207,31 @@ public: /// void pushIntoUpdateList(Inset * i); /// - void workAreaExpose(); + bool ChangeInsets(Inset::Code code, string const & from, + string const & to); /// - void workAreaButtonPress(int x, int y, unsigned int button); + bool ChangeRefsIfUnique(string const & from, string const & to); /// - void workAreaButtonRelease(int x, int y, unsigned int button); + bool ChangeCitationsIfUnique(string const & from, string const & to); /// - void workAreaMotionNotify(int x, int y, unsigned int state); + string const getClipboard() const; /// - void doubleClick(int x, int y, unsigned int button); + void pasteClipboard(bool asPara); /// - void tripleClick(int x, int y, unsigned int button); + void stuffClipboard(string const &) const; /// - void workAreaSelectionNotify(Window win, XEvent * event); + bool Dispatch(kb_action action, string const & argument); private: struct Pimpl; + /// + friend struct BufferView::Pimpl; + /// Pimpl * pimpl_; }; + +/// +BufferView::UpdateCodes operator|(BufferView::UpdateCodes uc1, + BufferView::UpdateCodes uc2); + #endif