lyx_mirror/src/insets/insetwrap.h
Georg Baum 2734cc1548 Extend the navigate menu to child docs
* src/buffer_funcs.h
	(updateLabels): Add bool childonly argument

	* src/insets/insetbase.h
	(addToToc): New virtual method

	* src/insets/insetinclude.[Ch]
	(addToToc): New virtual method
	(updateLabels): New method

	* src/TocBackend.h: reorganize classes so that we can forward
	declare TocList

	* src/insets/insetfloat.[Ch]
	* src/insets/insetwrap.[Ch]
	(addToToc): Adjust to type changes in TocBackend.h

	* src/frontends/qt4/TocModel.[Ch]: ditto

	* src/frontends/controllers/ControlToc.[Ch]: ditto

	* src/TocBackend.C: ditto
	(TocBackend::update) Remove test for float and wrap inset,
	call virtual method instead

	* src/BufferView.C
	(BufferView::dispatch): make LFUN_PARAGRAPH_GOTO work even if the
	target paragraph is in a different buffer

	* src/MenuBackend.C: Adjust to type changes in TocBackend.h
	(expandToc): Add an entry for the master doc in child docs

	* src/buffer_funcs.C
	(setLabel): Add text class parameter
	(updateLabels): handle included docs if requested by the caller


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15904 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-13 16:53:49 +00:00

109 lines
2.1 KiB
C++

// -*- C++ -*-
/**
* \file insetwrap.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Dekel Tsur
*
* Full author contact details are available in file CREDITS.
*/
#ifndef INSETWRAP_H
#define INSETWRAP_H
#include "insetcollapsable.h"
#include "lyxlength.h"
#include "mailinset.h"
namespace lyx {
class InsetWrapParams {
public:
///
void write(std::ostream &) const;
///
void read(LyXLex &);
///
std::string type;
///
std::string placement;
///
LyXLength width;
};
/** The wrap inset
*/
class InsetWrap : public InsetCollapsable {
public:
///
InsetWrap(BufferParams const &, std::string const &);
///
~InsetWrap();
///
void write(Buffer const & buf, std::ostream & os) const;
///
void read(Buffer const & buf, LyXLex & lex);
///
void validate(LaTeXFeatures & features) const;
///
InsetBase::Code lyxCode() const { return InsetBase::WRAP_CODE; }
///
int latex(Buffer const &, odocstream &,
OutputParams const &) const;
///
int docbook(Buffer const &, odocstream &,
OutputParams const &) const;
///
virtual docstring const editMessage() const;
///
bool insetAllowed(InsetBase::Code) const;
///
void addToToc(TocList &, Buffer const &) const;
///
bool showInsetDialog(BufferView *) const;
///
InsetWrapParams const & params() const { return params_; }
///
bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const;
protected:
///
virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
private:
virtual std::auto_ptr<InsetBase> doClone() const;
///
InsetWrapParams params_;
};
class InsetWrapMailer : public MailInset {
public:
///
InsetWrapMailer(InsetWrap & inset);
///
virtual InsetBase & inset() const { return inset_; }
///
virtual std::string const & name() const { return name_; }
///
virtual std::string const inset2string(Buffer const &) const;
///
static void string2params(std::string const &, InsetWrapParams &);
///
static std::string const params2string(InsetWrapParams const &);
private:
///
static std::string const name_;
///
InsetWrap & inset_;
};
} // namespace lyx
#endif