#include FORMS_H_LOCATION
#include "undo.h"
+#include "support/utility.hpp"
class LyXView;
class LyXText;
class TeXErrors;
+class Buffer;
+class LyXScreen;
+class WorkArea;
///
-class BufferView {
+class BufferView : public noncopyable {
public:
+ ///
+ enum UpdateCodes {
+ UPDATE = 0,
+ SELECT = 1,
+ FITCUR = 2,
+ CHANGE = 4
+ };
+
///
BufferView(LyXView * owner, int , int , int, int);
///
///
Painter & painter();
///
+ LyXScreen * screen() const;
+ ///
+ WorkArea * workarea() const;
+ ///
void buffer(Buffer * b);
///
void resize(int, int, int, int);
///
void update();
///
- void update(signed char f);
-#if 0
- ///
- void smallUpdate(signed char f);
-#endif
+ void update(UpdateCodes uc);
///
void updateScrollbar();
///
+ Inset * checkInsetHit(LyXText *, int & x, int & y, unsigned int button);
+ ///
void redoCurrentBuffer();
///
int resizeCurrentBuffer();
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;
///
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();
///
/** 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);
+ bool open_new_inset(UpdatableInset * new_inset);
/// Inserts a lyx file at cursor position. Returns false if it fails.
bool insertLyXFile(string const & file);
///
/// A callback for the slider in the scrollbar.
void scrollCB(double);
- ///
- static void cursorToggleCB(FL_OBJECT * ob, long);
-
///
void setState();
///
void leaveView();
///
- void workAreaSelectionNotify(Window win, XEvent * event);
+ bool ChangeRefs(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);
+
#endif