#endif
#include FORMS_H_LOCATION
-#include "BackStack.h"
-#include "LaTeX.h"
#include "undo.h"
-#include "UpdateInset.h"
class LyXView;
+class LyXText;
+class TeXErrors;
class Buffer;
class LyXScreen;
-class Inset;
-class LyXText;
class WorkArea;
///
class BufferView {
public:
+ ///
+ enum UpdateCodes {
+ UPDATE = 0,
+ SELECT = 1,
+ FITCUR = 2,
+ CHANGE = 4
+ };
+
///
BufferView(LyXView * owner, int , int , int, int);
///
~BufferView();
///
- Buffer * buffer() const { return buffer_; }
+ Buffer * buffer() const;
///
Painter & painter();
///
- Painter & getPainter() const;
+ LyXScreen * screen() const;
+ ///
+ WorkArea * workarea() const;
///
void buffer(Buffer * b);
///
///
void update();
///
- void update(signed char f);
- ///
- void smallUpdate(signed char f);
+ void update(UpdateCodes uc);
///
void updateScrollbar();
///
+ Inset * checkInsetHit(LyXText *, int & x, int & y, unsigned int button);
+ ///
void redoCurrentBuffer();
///
int resizeCurrentBuffer();
///
bool available() const;
///
- LyXView * owner() const { return owner_; }
+ LyXView * owner() const;
///
void beforeChange();
///
void savePosition();
///
void restorePosition();
+ ///
+ bool NoSavedPositions();
/** This holds the mapping between buffer paragraphs and screen rows.
This should be private...but not yet. (Lgb)
*/
LyXText * text;
///
- unsigned short paperWidth() const;
+ int workWidth() const;
///
UpdatableInset * the_locking_inset;
///
/** 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 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 insertLyXFile(string const & file);
///
- int lockInset(UpdatableInset * inset);
+ bool lockInset(UpdatableInset * inset);
///
void showLockedInsetCursor(long x, long y, int asc, int desc);
///
///
void center();
-private:
- friend class WorkArea;
-
- /// Update pixmap of screen
- void updateScreen();
- ///
- void workAreaExpose();
- ///
- void scrollUpOnePage();
- ///
- void scrollDownOnePage();
- ///
- void create_view();
- ///
- Inset * checkInsetHit(int & x, int & y, unsigned int button);
- ///
- int scrollUp(long time);
- ///
- int scrollDown(long time);
-
-public:
///
bool focus() const;
///
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();
-private:
///
- void workAreaMotionNotify(int x, int y, unsigned int state);
+ void pushIntoUpdateList(Inset * i);
+ ///
+ void workAreaExpose();
///
void workAreaButtonPress(int x, int y, unsigned int button);
///
void workAreaButtonRelease(int x, int y, unsigned int button);
///
- void workAreaSelectionNotify(Window win, XEvent * event);
+ void workAreaMotionNotify(int x, int y, unsigned int state);
///
void doubleClick(int x, int y, unsigned int button);
///
void tripleClick(int x, int y, unsigned int button);
///
- LyXView * owner_;
- ///
- Buffer * buffer_;
- ///
- LyXScreen * screen;
- ///
- long current_scrollbar_value;
+ void enterView();
///
- bool lyx_focus;
+ void leaveView();
///
- bool work_area_focus;
+ bool ChangeRefs(string const & from, string const & to);
///
- FL_OBJECT * figinset_canvas;
+ void pasteClipboard(bool asPara);
///
- FL_OBJECT * timer_cursor;
- ///
- BackStack backstack;
- ///
- int last_click_x, last_click_y;
- ///
- WorkArea * workarea;
- ///
- UpdateInset updatelist;
-public:
- ///
- void pushIntoUpdateList(Inset * i) {
- updatelist.push(i);
- }
+ void stuffClipboard(string const &) const;
+private:
+ struct Pimpl;
+ friend struct BufferView::Pimpl;
+ Pimpl * pimpl_;
};
+
+BufferView::UpdateCodes operator|(BufferView::UpdateCodes uc1,
+ BufferView::UpdateCodes uc2);
+
#endif