lyx_mirror/src/buffer_funcs.h
Abdelrazak Younes bf61ecc2de Support code for advanced Toc management and bug correction.
* buffer.h:
  - structureChanged(): new boost signal. I intend to use that also when a text is changed in a section or caption item.

* buffer_funcs.C:
  - updateLabels(): emit Buffer::structureChanged() after TocBackend is updated.
  - checkBufferStructure(): new method for updating the TocBackend if needed.

* LyXView:
  - updateToc(): new slot for Buffer::structureChanged() signal.

* text.C:
  - call checkBufferStructure() whenever text is added or erased.

* TocBackend.[Ch]:
  - updateItem(): new method to update a specific item (called from checkBufferStructure()).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17413 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-12 11:23:41 +00:00

74 lines
1.8 KiB
C++

// -*- C++ -*-
/* \file buffer_funcs.h
* 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 Braunstein
*
* Full author contact details are available in file CREDITS.
*/
#ifndef BUFFER_FUNCS_H
#define BUFFER_FUNCS_H
#include "lyxlayout_ptr_fwd.h"
#include "support/docstring.h"
#include <string>
namespace lyx {
namespace support { class FileName; }
class Buffer;
class DocIterator;
class ErrorList;
class TeXErrors;
class ParIterator;
/**
* Loads a LyX file \c filename into \c Buffer
* and \return success status.
*/
bool loadLyXFile(Buffer *, support::FileName const & filename);
/* Make a new file (buffer) with name \c filename based on a template
* named \c templatename
*/
Buffer * newFile(std::string const & filename, std::string const & templatename,
bool isNamed = false);
///return the format of the buffer on a string
std::string const bufferFormat(Buffer const & buffer);
/// Fill in the ErrorList with the TeXErrors
void bufferErrors(Buffer const &, TeXErrors const &, ErrorList &);
/// Count the number of words in the text between these two iterators
int countWords(DocIterator const & from, DocIterator const & to);
/// update labels at "iter".
/**
A full updateLabels(Buffer const &) will be called if not possible.
*/
void updateLabels(Buffer const & buf, ParIterator & it, bool childonly = false);
/// update labels between "from" and "to" if possible.
/**
A full updateLabels(Buffer const &) will be called if not possible.
*/
void updateLabels(Buffer const & buf,
ParIterator & from, ParIterator & to, bool childonly = false);
/// updates all counters
void updateLabels(Buffer const &, bool childonly = false);
///
void checkBufferStructure(Buffer &, ParIterator const &);
} // namespace lyx
#endif // BUFFER_FUNCS_H