X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.h;h=fa89ca527c11461e7d96e22631fd0ac5cb083d17;hb=da1f3b8ac93b75cea98091e24d994d21e3811dbc;hp=bbdffbfe048c1f7752ba441a469c60c4bd5a036b;hpb=ecee0239e7897b77fec9186851715f6db29da373;p=lyx.git diff --git a/src/BufferView.h b/src/BufferView.h index bbdffbfe04..fa89ca527c 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -1,33 +1,43 @@ // -*- 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 "insets/inset.h" +#include "support/types.h" #include +#include + +class Buffer; class Change; -class LyXView; +class Encoding; +class ErrorList; +class FuncRequest; +class InsetBase; +class InsetOld; +class Language; +class LCursor; class LyXText; -class TeXErrors; -class Buffer; class LyXScreen; -class Language; +class LyXView; class Painter; +class ParIterator; +class PosIterator; +class TeXErrors; class UpdatableInset; -class WordLangTuple; -class Encoding; -class ErrorList; /** * A buffer view encapsulates a view onto a particular @@ -59,23 +69,27 @@ public: /// 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(); /// reload the contained buffer void reload(); /// create a new buffer based on template - bool newFile(string const & fname, string const & tname, + 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 inset - void updateInset(InsetOld * inset); /// reset the scrollbar to reflect current view position void updateScrollbar(); /// FIXME @@ -84,9 +98,6 @@ public: /// FIXME bool available() const; - /// FIXME - void beforeChange(LyXText *); - /// Save the current position as bookmark i void savePosition(unsigned int i); /// Restore the position from bookmark i @@ -97,22 +108,11 @@ public: /// return the current change at the cursor Change const getCurrentChange(); - /** - * This holds the mapping between buffer paragraphs and screen rows. - * This should be private...but not yet. (Lgb) - */ - LyXText * text; /// return the lyxtext we are using LyXText * getLyXText() const; - /// Return the current inset we are "locked" in - UpdatableInset * theLockingInset() const; - /// lock the given inset FIXME: return value ? - bool lockInset(UpdatableInset * inset); - /// unlock the given inset - int unlockInset(UpdatableInset * inset); - /// unlock the currently locked inset - void insetUnlock(); + /// update paragraph dialogs + void updateParagraphDialog(); /// return the current encoding at the cursor Encoding const * getEncoding() const; @@ -120,17 +120,13 @@ public: /// return the parent language of the given inset Language const * getParentLanguage(InsetOld * inset) const; - /// Select the "current" word - void selectLastWord(); /// replace the currently selected word - void replaceWord(string const & replacestring); - /// Update after spellcheck finishes - void endOfSpellCheck(); - /// return the next word - WordLangTuple const nextWord(float & value); + void replaceWord(std::string const & replacestring); + /// simple replacing. Use the font of the first selected character + void replaceSelectionWithString(std::string const & str); /// move cursor to the named label - void gotoLabel(string const & label); + void gotoLabel(std::string const & label); /// undo last action void undo(); @@ -140,7 +136,7 @@ public: /// 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); @@ -148,15 +144,13 @@ public: * Insert an inset into the buffer. * Place it in a layout of lout, */ - bool insertInset(InsetOld * inset, string const & lout = string()); + bool insertInset(InsetBase * 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 toggleSelection(bool = true); /// hide the cursor if it is visible void hideCursor(); @@ -177,37 +171,38 @@ public: void switchKeyMap(); /// FIXME - bool ChangeRefsIfUnique(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); /// execute the given function bool dispatch(FuncRequest const & argument); + + /// clear the X selection + void unsetXSel(); + + /// access to full cursor + LCursor & cursor(); + /// access to full cursor + LCursor const & cursor() const; + /// + LyXText * text() const; + /// + void setCursor(ParIterator const & par, lyx::pos_type pos); + /// + void putSelectionAt(PosIterator const & cur, int length, bool backwards); private: - /// Set the current locking inset - void theLockingInset(UpdatableInset * inset); - - /// return the lyxtext containing this inset - LyXText * getParentText(InsetOld * 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(InsetOld::Code code, string const & from, - string const & to); - - + /// struct Pimpl; + /// friend struct BufferView::Pimpl; - + /// Pimpl * pimpl_; };