// -*- C++ -*-
/**
* \file BufferView.h
- * Copyright 2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
-*/
+ * \author Alfredo Braustein
+ * \author Lars Gullik Bjønnes
+ * \author John Levon
+ * \author Jürgen Vigna
+ *
+ * Full author contact details are available in file CREDITS.
+ */
#ifndef BUFFER_VIEW_H
#define BUFFER_VIEW_H
-#include "LString.h"
-#include "undo.h"
+#include <boost/utility.hpp>
-#include "insets/inset.h"
+#include <string>
-#include <boost/utility.hpp>
+class Buffer;
class Change;
-class LyXView;
+class Encoding;
+class ErrorList;
+class FuncRequest;
+class InsetOld;
+class Language;
class LyXText;
-class TeXErrors;
-class Buffer;
class LyXScreen;
-class Language;
+class LyXView;
class Painter;
+class TeXErrors;
class UpdatableInset;
class WordLangTuple;
-class Encoding;
-class ErrorList;
/**
* A buffer view encapsulates a view onto a particular
*/
class BufferView : boost::noncopyable {
public:
- /**
- * Codes to store necessary pending updates
- * of the document rendering.
- */
- enum UpdateCodes {
- UPDATE = 0, //< repaint
- SELECT = 1 //< reset selection to current cursor pos
- };
-
/**
* Create a view with the given owner main window,
* of the given dimensions.
/// return the owning main view
LyXView * owner() const;
+ /// return the visible top y
+ int top_y() const;
+
+ /// set the visible top y
+ void top_y(int);
+
/// resize event has happened
void resize();
- /**
- * Repaint the pixmap. Used for when we don't want
- * to go through the full update() logic, just a simple
- * repaint of the whole screen.
- */
- void repaint();
/// reload the contained buffer
void reload();
+ /// create a new buffer based on template
+ bool newFile(std::string const & fname, std::string const & tname,
+ bool named = true);
/// load a buffer into the view
- bool loadLyXFile(string const & name, bool tolastfiles = true);
+ bool loadLyXFile(std::string const & name, bool tolastfiles = true);
/// fit the user cursor within the visible view
bool fitCursor();
/// perform pending painting updates
void update();
- // update for a particular lyxtext
- void update(LyXText *, UpdateCodes uc);
- /// update for the top-level lyxtext
- void update(UpdateCodes uc);
- /// update for a particular inset
- void updateInset(Inset * inset);
+ /** update for a particular inset. Gets a pointer and not a
+ * reference because we really need the pointer information
+ * to find it in the buffer.
+ */
+ void updateInset(InsetOld const *);
/// reset the scrollbar to reflect current view position
void updateScrollbar();
/// FIXME
Encoding const * getEncoding() const;
/// return the parent language of the given inset
- Language const * getParentLanguage(Inset * inset) const;
+ Language const * getParentLanguage(InsetOld * inset) const;
/// Select the "current" word
void selectLastWord();
/// replace the currently selected word
- void replaceWord(string const & replacestring);
+ void replaceWord(std::string const & replacestring);
/// Update after spellcheck finishes
void endOfSpellCheck();
/// return the next word
WordLangTuple const nextWord(float & value);
/// move cursor to the named label
- void gotoLabel(string const & label);
+ void gotoLabel(std::string const & label);
/// undo last action
void undo();
/// get the stored error list
ErrorList const & getErrorList() const;
/// show the error list to the user
- void showErrorList(string const &) const;
+ void showErrorList(std::string const &) const;
/// set the cursor based on the given TeX source row
void setCursorFromRow(int row);
* Insert an inset into the buffer.
* Place it in a layout of lout,
*/
- bool insertInset(Inset * inset, string const & lout = string());
+ bool insertInset(InsetOld * inset, std::string const & lout = std::string());
/// Inserts a lyx file at cursor position. return false if it fails
- bool insertLyXFile(string const & file);
+ bool insertLyXFile(std::string const & file);
/// FIXME
bool fitLockedInsetCursor(int x, int y, int asc, int desc);
- /// FIXME
- void lockedInsetStoreUndo(Undo::undo_kind kind);
- /// FIXME
- void toggleSelection(bool = true);
- /// FIXME: my word !
- void toggleToggle();
/// hide the cursor if it is visible
void hideCursor();
void switchKeyMap();
/// FIXME
- bool ChangeRefsIfUnique(string const & from, string const & to);
- /// FIXME
- bool ChangeCitationsIfUnique(string const & from, string const & to);
+ bool ChangeRefsIfUnique(std::string const & from, std::string const & to);
/// get the contents of the window system clipboard
- string const getClipboard() const;
+ std::string const getClipboard() const;
/// fill the window system clipboard
- void stuffClipboard(string const &) const;
+ void stuffClipboard(std::string const &) const;
/// tell the window system we have a selection
void haveSelection(bool sel);
/// Set the current locking inset
void theLockingInset(UpdatableInset * inset);
- /// return the lyxtext containing this inset
- LyXText * getParentText(Inset * inset) const;
-
- /**
- * Change all insets with the given code's contents to a new
- * string. May only be used with InsetCommand-derived insets
- * Returns true if a screen update is needed.
- */
- bool ChangeInsets(Inset::Code code, string const & from,
- string const & to);
-
-
struct Pimpl;
friend struct BufferView::Pimpl;
Pimpl * pimpl_;
};
-
-BufferView::UpdateCodes operator|(BufferView::UpdateCodes uc1,
- BufferView::UpdateCodes uc2);
-
#endif // BUFFERVIEW_H