// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+/** \file
+ * Copyright 2002 the LyX Team
+ * Read the file COPYING
*
- * ====================================================== */
+ * \author Lars Gullik Bjønnes
+*/
#ifndef BUFFER_VIEW_H
#define BUFFER_VIEW_H
#pragma interface
#endif
-#include FORMS_H_LOCATION
#include "LString.h"
#include "undo.h"
#include "commandtags.h"
+
+#include "insets/inset.h"
+
#include <boost/utility.hpp>
class LyXView;
class LyXText;
class TeXErrors;
class Buffer;
-class LyXScreen;
-class WorkArea;
+class LScreen;
class Language;
+class Painter;
+class UpdatableInset;
///
-class BufferView : public boost::noncopyable {
+class BufferView : boost::noncopyable {
public:
///
enum UpdateCodes {
///
CHANGE = 4
};
-
+
///
BufferView(LyXView * owner, int , int , int, int);
///
///
Buffer * buffer() const;
///
- Painter & painter();
+ Painter & painter() const;
///
- LyXScreen * screen() const;
- ///
- WorkArea * workarea() const;
+ LScreen & screen() const;
///
void buffer(Buffer * b);
///
///
void redraw();
///
- void fitCursor(LyXText *);
+ bool fitCursor();
///
void update();
//
///
void updateScrollbar();
///
- Inset * checkInsetHit(LyXText *, int & x, int & y,
- unsigned int button);
- ///
+ Inset * checkInsetHit(LyXText *, int & x, int & y);
+ ///
void redoCurrentBuffer();
///
int resizeCurrentBuffer();
///
- void gotoInset(std::vector<Inset::Code> const & codes,
- bool same_content);
- ///
- void gotoInset(Inset::Code codes, bool same_content);
- ///
void cursorPrevious(LyXText *);
///
void cursorNext(LyXText *);
- ///
+ ///
bool available() const;
///
LyXView * owner() const;
///
void beforeChange(LyXText *);
- ///
- void savePosition(unsigned int i);
- ///
- void restorePosition(unsigned int i);
+ ///
+ void savePosition(unsigned int i);
+ ///
+ void restorePosition(unsigned int i);
///
bool isSavedPosition(unsigned int i);
/** This holds the mapping between buffer paragraphs and screen rows.
///
UpdatableInset * theLockingInset() const;
///
- void theLockingInset(UpdatableInset * inset);
+ void theLockingInset(UpdatableInset * inset);
///
void updateInset(Inset * inset, bool mark_dirty);
///
- bool inset_slept;
- ///
int slx;
///
int sly;
///
void insetUnlock();
///
- void insetSleep();
- ///
- void insetWakeup();
- ///
void replaceWord(string const & replacestring);
///
void endOfSpellCheck();
///
string const nextWord(float & value);
///
- void insertCorrectQuote();
- ///
bool gotoLabel(string const & label);
///
void paste();
///
- void cut();
+ void cut(bool realcut = true);
///
void copy();
///
///
void copyEnvironment();
///
- void hfill();
- ///
- void protectedBlank(LyXText *);
- ///
- void newline();
- ///
- void menuSeparator();
- ///
- void endOfSentenceDot();
- ///
- void ldots();
- ///
- void hyphenationPoint();
- ///
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();
///
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
- bool open_new_inset(UpdatableInset * new_inset, bool behind = false);
+ //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.
+ \return #false# if it fails.
*/
bool insertLyXFile(string const & file);
///
///
void hideLockedInsetCursor();
///
- void fitLockedInsetCursor(int x, int y, int asc, int desc);
+ bool fitLockedInsetCursor(int x, int y, int asc, int desc);
///
int unlockInset(UpdatableInset * inset);
///
void toggleToggle();
///
void center();
-
+
///
bool focus() const;
///
void focus(bool);
- ///
- bool active() const;
- ///
- bool belowMouse() const;
- /// A callback for the slider in the scrollbar.
- void scrollCB(double);
+ /// Scroll the view by a number of pixels
+ void scrollDocView(int);
///
void setState();
///
- void pushIntoUpdateList(Inset * i);
- ///
- bool ChangeInsets(Inset::Code code, string const & from,
+ bool ChangeInsets(Inset::Code code, string const & from,
string const & to);
///
bool ChangeRefsIfUnique(string const & from, string const & to);
///
bool ChangeCitationsIfUnique(string const & from, string const & to);
///
+ string const getClipboard() const;
+ ///
void pasteClipboard(bool asPara);
///
void stuffClipboard(string const &) const;
///
bool Dispatch(kb_action action, string const & argument);
private:
+ ///
struct Pimpl;
///
friend struct BufferView::Pimpl;