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) void InsetCaption::updateLabels(ParIterator const & it)
{ {
DocumentClass const & tclass = buffer().params().documentClass(); DocumentClass const & tclass = buffer().params().documentClass();

View File

@ -28,6 +28,8 @@ public:
int getArgument(odocstream & os, OutputParams const &) const; int getArgument(odocstream & os, OutputParams const &) const;
/// return the optional argument(s) only /// return the optional argument(s) only
int getOptArg(odocstream & os, OutputParams const &) const; int getOptArg(odocstream & os, OutputParams const &) const;
/// return the caption text
int getCaptionText(odocstream & os, OutputParams const &) const;
private: private:
/// ///
void write(std::ostream & os) const; 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) void InsetFloat::doDispatch(Cursor & cur, FuncRequest & cmd)
{ {
switch (cmd.action) { 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) void InsetFloat::string2params(string const & in, InsetFloatParams & params)
{ {
params = InsetFloatParams(); params = InsetFloatParams();

View File

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

View File

@ -12,6 +12,7 @@
#include <config.h> #include <config.h>
#include "InsetWrap.h" #include "InsetWrap.h"
#include "InsetCaption.h"
#include "Buffer.h" #include "Buffer.h"
#include "BufferParams.h" #include "BufferParams.h"
@ -23,6 +24,7 @@
#include "FloatList.h" #include "FloatList.h"
#include "FuncRequest.h" #include "FuncRequest.h"
#include "FuncStatus.h" #include "FuncStatus.h"
#include "InsetList.h"
#include "LaTeXFeatures.h" #include "LaTeXFeatures.h"
#include "Lexer.h" #include "Lexer.h"
#include "TextClass.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) void InsetWrap::doDispatch(Cursor & cur, FuncRequest & cmd)
{ {
switch (cmd.action) { 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) void InsetWrap::string2params(string const & in, InsetWrapParams & params)
{ {
params = InsetWrapParams(); params = InsetWrapParams();

View File

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