Extended tooltips for floats:

* src/insets/InsetCaption.{cpp,h}:
	- new member getCaptionText that returns formatted plain text content
* src/insets/InsetFloat.{cpp,h}:
* src/insets/InsetWrap.{cpp,h}:
	- implement tooltip

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24200 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jürgen Spitzmüller 2008-04-10 09:22:49 +00:00
parent adc11fcc84
commit 1c33b77bec
6 changed files with 88 additions and 0 deletions

View File

@ -270,6 +270,14 @@ int InsetCaption::getOptArg(odocstream & os,
}
int InsetCaption::getCaptionText(odocstream & os,
OutputParams const & runparams) const
{
os << full_label_ << ' ';
return InsetText::plaintext(os, runparams);
}
void InsetCaption::updateLabels(ParIterator const & it)
{
DocumentClass const & tclass = buffer().params().documentClass();

View File

@ -28,6 +28,8 @@ public:
int getArgument(odocstream & os, OutputParams const &) const;
/// return the optional argument(s) only
int getOptArg(odocstream & os, OutputParams const &) const;
/// return the caption text
int getCaptionText(odocstream & os, OutputParams const &) const;
private:
///
void write(std::ostream & os) const;

View File

@ -127,6 +127,17 @@ InsetFloat::~InsetFloat()
}
docstring InsetFloat::toolTip(BufferView const & bv, int x, int y) const
{
OutputParams rp(&buffer().params().encoding());
docstring default_tip = InsetCollapsable::toolTip(bv, x, y);
docstring caption_tip = getCaptionText(rp);
if (!isOpen() && !caption_tip.empty())
return caption_tip + '\n' + default_tip;
return default_tip;
}
void InsetFloat::doDispatch(Cursor & cur, FuncRequest & cmd)
{
switch (cmd.action) {
@ -424,6 +435,29 @@ docstring InsetFloat::getCaption(OutputParams const & runparams) const
}
docstring InsetFloat::getCaptionText(OutputParams const & runparams) const
{
if (paragraphs().empty())
return docstring();
ParagraphList::const_iterator pit = paragraphs().begin();
for (; pit != paragraphs().end(); ++pit) {
InsetList::const_iterator it = pit->insetList().begin();
for (; it != pit->insetList().end(); ++it) {
Inset & inset = *it->inset;
if (inset.lyxCode() == CAPTION_CODE) {
odocstringstream ods;
InsetCaption * ins =
static_cast<InsetCaption *>(it->inset);
ins->getCaptionText(ods, runparams);
return ods.str();
}
}
}
return docstring();
}
void InsetFloat::string2params(string const & in, InsetFloatParams & params)
{
params = InsetFloatParams();

View File

@ -71,6 +71,8 @@ private:
///
docstring name() const { return name_; }
///
docstring toolTip(BufferView const & bv, int x, int y) const;
///
void write(std::ostream & os) const;
///
void read(Lexer & lex);
@ -105,6 +107,8 @@ private:
///
docstring getCaption(OutputParams const &) const;
///
docstring getCaptionText(OutputParams const &) const;
///
InsetFloatParams params_;
///
docstring name_;

View File

@ -12,6 +12,7 @@
#include <config.h>
#include "InsetWrap.h"
#include "InsetCaption.h"
#include "Buffer.h"
#include "BufferParams.h"
@ -23,6 +24,7 @@
#include "FloatList.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
#include "InsetList.h"
#include "LaTeXFeatures.h"
#include "Lexer.h"
#include "TextClass.h"
@ -64,6 +66,17 @@ docstring InsetWrap::name() const
}
docstring InsetWrap::toolTip(BufferView const & bv, int x, int y) const
{
OutputParams rp(&buffer().params().encoding());
docstring default_tip = InsetCollapsable::toolTip(bv, x, y);
docstring caption_tip = getCaptionText(rp);
if (!isOpen() && !caption_tip.empty())
return caption_tip + '\n' + default_tip;
return default_tip;
}
void InsetWrap::doDispatch(Cursor & cur, FuncRequest & cmd)
{
switch (cmd.action) {
@ -227,6 +240,29 @@ bool InsetWrap::showInsetDialog(BufferView * bv) const
}
docstring InsetWrap::getCaptionText(OutputParams const & runparams) const
{
if (paragraphs().empty())
return docstring();
ParagraphList::const_iterator pit = paragraphs().begin();
for (; pit != paragraphs().end(); ++pit) {
InsetList::const_iterator it = pit->insetList().begin();
for (; it != pit->insetList().end(); ++it) {
Inset & inset = *it->inset;
if (inset.lyxCode() == CAPTION_CODE) {
odocstringstream ods;
InsetCaption * ins =
static_cast<InsetCaption *>(it->inset);
ins->getCaptionText(ods, runparams);
return ods.str();
}
}
}
return docstring();
}
void InsetWrap::string2params(string const & in, InsetWrapParams & params)
{
params = InsetWrapParams();

View File

@ -63,6 +63,8 @@ private:
///
InsetCode lyxCode() const { return WRAP_CODE; }
///
docstring toolTip(BufferView const & bv, int x, int y) const;
///
int latex(odocstream &, OutputParams const &) const;
///
int plaintext(odocstream &, OutputParams const &) const;
@ -81,6 +83,8 @@ private:
///
void doDispatch(Cursor & cur, FuncRequest & cmd);
///
docstring getCaptionText(OutputParams const &) const;
///
docstring name() const;
///
Inset * clone() const { return new InsetWrap(*this); }