mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
Implement ForceLtR; cleanup of collapsable insets
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21285 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
eabe6081c9
commit
3d443b4c9d
@ -103,6 +103,25 @@ InsetLayout ERT
|
|||||||
PassThru true
|
PassThru true
|
||||||
KeepEmpty true
|
KeepEmpty true
|
||||||
FreeSpacing true
|
FreeSpacing true
|
||||||
|
ForceLTR true
|
||||||
|
End
|
||||||
|
|
||||||
|
InsetLayout Listings
|
||||||
|
LabelString Listings
|
||||||
|
LatexType none
|
||||||
|
Decoration minimalistic
|
||||||
|
Font
|
||||||
|
Color black
|
||||||
|
Family typewriter
|
||||||
|
EndFont
|
||||||
|
LabelFont
|
||||||
|
Color black
|
||||||
|
Size Small
|
||||||
|
EndFont
|
||||||
|
MultiPar true
|
||||||
|
PassThru true
|
||||||
|
KeepEmpty true
|
||||||
|
FreeSpacing true
|
||||||
End
|
End
|
||||||
|
|
||||||
InsetLayout Branch
|
InsetLayout Branch
|
||||||
|
@ -9,6 +9,7 @@ InsetLayout URL
|
|||||||
Decoration minimalistic
|
Decoration minimalistic
|
||||||
LabelString URL
|
LabelString URL
|
||||||
PassThru true
|
PassThru true
|
||||||
|
ForceLTR true
|
||||||
Font
|
Font
|
||||||
Family Typewriter
|
Family Typewriter
|
||||||
Color Blue
|
Color Blue
|
||||||
|
@ -23,10 +23,12 @@
|
|||||||
#include "FloatList.h"
|
#include "FloatList.h"
|
||||||
#include "FuncStatus.h"
|
#include "FuncStatus.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
#include "Language.h"
|
||||||
#include "LaTeXFeatures.h"
|
#include "LaTeXFeatures.h"
|
||||||
#include "Lexer.h"
|
#include "Lexer.h"
|
||||||
#include "FuncRequest.h"
|
#include "FuncRequest.h"
|
||||||
#include "MetricsInfo.h"
|
#include "MetricsInfo.h"
|
||||||
|
#include "ParagraphParameters.h"
|
||||||
|
|
||||||
#include "frontends/FontMetrics.h"
|
#include "frontends/FontMetrics.h"
|
||||||
#include "frontends/Painter.h"
|
#include "frontends/Painter.h"
|
||||||
@ -157,6 +159,15 @@ void InsetCollapsable::read(Buffer const & buf, Lexer & lex)
|
|||||||
status_ = isOpen() ? Open : Collapsed;
|
status_ = isOpen() ? Open : Collapsed;
|
||||||
|
|
||||||
setButtonLabel();
|
setButtonLabel();
|
||||||
|
|
||||||
|
// Force default font, if so requested
|
||||||
|
// This avoids paragraphs in buffer language that would have a
|
||||||
|
// foreign language after a document language change, and it ensures
|
||||||
|
// that all new text in ERT and similar gets the "latex" language,
|
||||||
|
// since new text inherits the language from the last position of the
|
||||||
|
// existing text. As a side effect this makes us also robust against
|
||||||
|
// bugs in LyX that might lead to font changes in ERT in .lyx files.
|
||||||
|
resetParagraphsFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -173,6 +184,10 @@ void InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
{
|
{
|
||||||
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
autoOpen_ = mi.base.bv->cursor().isInside(this);
|
||||||
|
|
||||||
|
FontInfo tmpfont = mi.base.font;
|
||||||
|
getDrawFont(mi.base.font);
|
||||||
|
mi.base.font.realize(tmpfont);
|
||||||
|
|
||||||
switch (geometry()) {
|
switch (geometry()) {
|
||||||
case NoButton:
|
case NoButton:
|
||||||
InsetText::metrics(mi, dim);
|
InsetText::metrics(mi, dim);
|
||||||
@ -218,6 +233,8 @@ void InsetCollapsable::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mi.base.font = tmpfont;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -234,6 +251,10 @@ void InsetCollapsable::draw(PainterInfo & pi, int x, int y) const
|
|||||||
ColorCode const old_color = pi.background_color;
|
ColorCode const old_color = pi.background_color;
|
||||||
pi.background_color = backgroundColor();
|
pi.background_color = backgroundColor();
|
||||||
|
|
||||||
|
FontInfo tmpfont = pi.base.font;
|
||||||
|
getDrawFont(pi.base.font);
|
||||||
|
pi.base.font.realize(tmpfont);
|
||||||
|
|
||||||
// Draw button first -- top, left or only
|
// Draw button first -- top, left or only
|
||||||
Dimension dimc = dimensionCollapsed();
|
Dimension dimc = dimensionCollapsed();
|
||||||
|
|
||||||
@ -339,6 +360,8 @@ void InsetCollapsable::draw(PainterInfo & pi, int x, int y) const
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
pi.background_color = old_color;
|
pi.background_color = old_color;
|
||||||
|
|
||||||
|
pi.base.font = tmpfont;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -538,7 +561,29 @@ void InsetCollapsable::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
cur.dispatched();
|
cur.dispatched();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LFUN_PASTE:
|
||||||
|
case LFUN_CLIPBOARD_PASTE:
|
||||||
|
case LFUN_PRIMARY_SELECTION_PASTE: {
|
||||||
|
InsetText::doDispatch(cur, cmd);
|
||||||
|
// Since we can only store plain text, we must reset all
|
||||||
|
// attributes.
|
||||||
|
// FIXME: Change only the pasted paragraphs
|
||||||
|
|
||||||
|
resetParagraphsFont();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
if (layout_.forceltr) {
|
||||||
|
// Force any new text to latex_language
|
||||||
|
// FIXME: This should only be necessary in constructor, but
|
||||||
|
// new paragraphs that are created by pressing enter at the
|
||||||
|
// start of an existing paragraph get the buffer language
|
||||||
|
// and not latex_language, so we take this brute force
|
||||||
|
// approach.
|
||||||
|
cur.current_font.setLanguage(latex_language);
|
||||||
|
cur.real_current_font.setLanguage(latex_language);
|
||||||
|
}
|
||||||
InsetText::doDispatch(cur, cmd);
|
InsetText::doDispatch(cur, cmd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -551,6 +596,30 @@ bool InsetCollapsable::allowMultiPar() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetCollapsable::resetParagraphsFont()
|
||||||
|
{
|
||||||
|
Font font;
|
||||||
|
font.fontInfo() = layout_.font;
|
||||||
|
if (layout_.forceltr)
|
||||||
|
font.setLanguage(latex_language);
|
||||||
|
if (layout_.passthru) {
|
||||||
|
ParagraphList::iterator par = paragraphs().begin();
|
||||||
|
ParagraphList::iterator const end = paragraphs().end();
|
||||||
|
while (par != end) {
|
||||||
|
par->resetFonts(font);
|
||||||
|
par->params().clear();
|
||||||
|
++par;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetCollapsable::getDrawFont(FontInfo & font) const
|
||||||
|
{
|
||||||
|
font = layout_.font;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
|
bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
|
||||||
FuncStatus & flag) const
|
FuncStatus & flag) const
|
||||||
{
|
{
|
||||||
@ -618,7 +687,6 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
case LFUN_LIGATURE_BREAK_INSERT:
|
case LFUN_LIGATURE_BREAK_INSERT:
|
||||||
case LFUN_LINE_INSERT:
|
case LFUN_LINE_INSERT:
|
||||||
case LFUN_PAGEBREAK_INSERT:
|
case LFUN_PAGEBREAK_INSERT:
|
||||||
case LFUN_LANGUAGE:
|
|
||||||
case LFUN_LAYOUT:
|
case LFUN_LAYOUT:
|
||||||
case LFUN_LAYOUT_PARAGRAPH:
|
case LFUN_LAYOUT_PARAGRAPH:
|
||||||
case LFUN_LAYOUT_TABULAR:
|
case LFUN_LAYOUT_TABULAR:
|
||||||
@ -661,6 +729,15 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
flag.enabled(false);
|
flag.enabled(false);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case LFUN_LANGUAGE:
|
||||||
|
flag.enabled(layout_.forceltr);
|
||||||
|
return InsetText::getStatus(cur, cmd, flag);
|
||||||
|
|
||||||
|
case LFUN_BREAK_PARAGRAPH:
|
||||||
|
case LFUN_BREAK_PARAGRAPH_SKIP:
|
||||||
|
flag.enabled(layout_.multipar);
|
||||||
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return InsetText::getStatus(cur, cmd, flag);
|
return InsetText::getStatus(cur, cmd, flag);
|
||||||
}
|
}
|
||||||
|
@ -157,6 +157,10 @@ protected:
|
|||||||
Inset * editXY(Cursor & cur, int x, int y);
|
Inset * editXY(Cursor & cur, int x, int y);
|
||||||
///
|
///
|
||||||
docstring floatName(std::string const & type, BufferParams const &) const;
|
docstring floatName(std::string const & type, BufferParams const &) const;
|
||||||
|
///
|
||||||
|
virtual void resetParagraphsFont();
|
||||||
|
///
|
||||||
|
virtual void getDrawFont(FontInfo &) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
|
@ -121,21 +121,6 @@ void InsetERT::write(Buffer const & buf, ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetERT::read(Buffer const & buf, Lexer & lex)
|
|
||||||
{
|
|
||||||
InsetCollapsable::read(buf, lex);
|
|
||||||
|
|
||||||
// Force default font
|
|
||||||
// This avoids paragraphs in buffer language that would have a
|
|
||||||
// foreign language after a document langauge change, and it ensures
|
|
||||||
// that all new text in ERT gets the "latex" language, since new text
|
|
||||||
// inherits the language from the last position of the existing text.
|
|
||||||
// As a side effect this makes us also robust against bugs in LyX
|
|
||||||
// that might lead to font changes in ERT in .lyx files.
|
|
||||||
resetParagraphsFont();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
docstring const InsetERT::editMessage() const
|
docstring const InsetERT::editMessage() const
|
||||||
{
|
{
|
||||||
return _("Opened ERT Inset");
|
return _("Opened ERT Inset");
|
||||||
@ -208,19 +193,6 @@ void InsetERT::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
setStatus(cur, st);
|
setStatus(cur, st);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case LFUN_PASTE:
|
|
||||||
case LFUN_CLIPBOARD_PASTE:
|
|
||||||
case LFUN_PRIMARY_SELECTION_PASTE: {
|
|
||||||
InsetCollapsable::doDispatch(cur, cmd);
|
|
||||||
|
|
||||||
// Since we can only store plain text, we must reset all
|
|
||||||
// attributes.
|
|
||||||
// FIXME: Change only the pasted paragraphs
|
|
||||||
|
|
||||||
// ERT contents has always latex_language
|
|
||||||
resetParagraphsFont();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
// Force any new text to latex_language
|
// Force any new text to latex_language
|
||||||
// FIXME: This should only be necessary in init(), but
|
// FIXME: This should only be necessary in init(), but
|
||||||
@ -230,8 +202,6 @@ void InsetERT::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
// approach.
|
// approach.
|
||||||
cur.current_font.fontInfo() = layout->font;
|
cur.current_font.fontInfo() = layout->font;
|
||||||
cur.real_current_font.fontInfo() = layout->font;
|
cur.real_current_font.fontInfo() = layout->font;
|
||||||
cur.current_font.setLanguage(latex_language);
|
|
||||||
cur.real_current_font.setLanguage(latex_language);
|
|
||||||
InsetCollapsable::doDispatch(cur, cmd);
|
InsetCollapsable::doDispatch(cur, cmd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -48,8 +48,6 @@ public:
|
|||||||
///
|
///
|
||||||
void write(Buffer const & buf, std::ostream & os) const;
|
void write(Buffer const & buf, std::ostream & os) const;
|
||||||
///
|
///
|
||||||
void read(Buffer const & buf, Lexer & lex);
|
|
||||||
///
|
|
||||||
virtual docstring const editMessage() const;
|
virtual docstring const editMessage() const;
|
||||||
///
|
///
|
||||||
bool insetAllowed(InsetCode code) const;
|
bool insetAllowed(InsetCode code) const;
|
||||||
@ -71,8 +69,6 @@ public:
|
|||||||
///
|
///
|
||||||
bool showInsetDialog(BufferView *) const;
|
bool showInsetDialog(BufferView *) const;
|
||||||
///
|
///
|
||||||
void getDrawFont(FontInfo &) const;
|
|
||||||
///
|
|
||||||
bool forceDefaultParagraphs(idx_type) const { return true; }
|
bool forceDefaultParagraphs(idx_type) const { return true; }
|
||||||
/// should paragraph indendation be ommitted in any case?
|
/// should paragraph indendation be ommitted in any case?
|
||||||
bool neverIndent(Buffer const &) const { return true; }
|
bool neverIndent(Buffer const &) const { return true; }
|
||||||
@ -84,6 +80,8 @@ protected:
|
|||||||
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
||||||
///
|
///
|
||||||
void resetParagraphsFont();
|
void resetParagraphsFont();
|
||||||
|
///
|
||||||
|
void getDrawFont(FontInfo &) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual Inset * clone() const;
|
virtual Inset * clone() const;
|
||||||
|
@ -95,56 +95,6 @@ void InsetFlex::read(Buffer const & buf, Lexer & lex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetFlex::metrics(MetricsInfo & mi, Dimension & dim) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = mi.base.font;
|
|
||||||
getDrawFont(mi.base.font);
|
|
||||||
mi.base.font.reduce(sane_font);
|
|
||||||
mi.base.font.realize(tmpfont);
|
|
||||||
InsetCollapsable::metrics(mi, dim);
|
|
||||||
mi.base.font = tmpfont;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetFlex::draw(PainterInfo & pi, int x, int y) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = pi.base.font;
|
|
||||||
getDrawFont(pi.base.font);
|
|
||||||
// I don't understand why the above .reduce and .realize aren't
|
|
||||||
//needed, or even wanted, here. It just works. -- MV 10.04.2005
|
|
||||||
InsetCollapsable::draw(pi, x, y);
|
|
||||||
pi.base.font = tmpfont;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetFlex::getDrawFont(FontInfo & font) const
|
|
||||||
{
|
|
||||||
font = layout_.font;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetFlex::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|
||||||
{
|
|
||||||
InsetCollapsable::doDispatch(cur, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool InsetFlex::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|
||||||
FuncStatus & status) const
|
|
||||||
{
|
|
||||||
switch (cmd.action) {
|
|
||||||
// paragraph breaks not allowed in flex insets
|
|
||||||
case LFUN_BREAK_PARAGRAPH:
|
|
||||||
case LFUN_BREAK_PARAGRAPH_SKIP:
|
|
||||||
status.enabled(layout_.multipar);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return InsetCollapsable::getStatus(cur, cmd, status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int InsetFlex::plaintext(Buffer const & buf, odocstream & os,
|
int InsetFlex::plaintext(Buffer const & buf, odocstream & os,
|
||||||
OutputParams const & runparams) const
|
OutputParams const & runparams) const
|
||||||
{
|
{
|
||||||
|
@ -56,12 +56,6 @@ public:
|
|||||||
///
|
///
|
||||||
void read(Buffer const & buf, Lexer & lex);
|
void read(Buffer const & buf, Lexer & lex);
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
|
||||||
///
|
|
||||||
void draw(PainterInfo &, int, int) const;
|
|
||||||
///
|
|
||||||
void getDrawFont(FontInfo &) const;
|
|
||||||
///
|
|
||||||
bool forceDefaultParagraphs(idx_type) const { return true; }
|
bool forceDefaultParagraphs(idx_type) const { return true; }
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -81,9 +75,6 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
InsetFlex(InsetFlex const &);
|
InsetFlex(InsetFlex const &);
|
||||||
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
|
|
||||||
///
|
|
||||||
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class InsetFlexParams;
|
friend class InsetFlexParams;
|
||||||
|
@ -63,50 +63,6 @@ void InsetIndex::write(Buffer const & buf, std::ostream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetIndex::metrics(MetricsInfo & mi, Dimension & dim) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = mi.base.font;
|
|
||||||
getDrawFont(mi.base.font);
|
|
||||||
mi.base.font.realize(tmpfont);
|
|
||||||
InsetCollapsable::metrics(mi, dim);
|
|
||||||
mi.base.font = tmpfont;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetIndex::draw(PainterInfo & pi, int x, int y) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = pi.base.font;
|
|
||||||
getDrawFont(pi.base.font);
|
|
||||||
pi.base.font.realize(tmpfont);
|
|
||||||
InsetCollapsable::draw(pi, x, y);
|
|
||||||
pi.base.font = tmpfont;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetIndex::getDrawFont(FontInfo & font) const
|
|
||||||
{
|
|
||||||
font = inherit_font;
|
|
||||||
font.realize(layout_.font);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool InsetIndex::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|
||||||
FuncStatus & status) const
|
|
||||||
{
|
|
||||||
switch (cmd.action) {
|
|
||||||
// paragraph breaks not allowed
|
|
||||||
case LFUN_BREAK_PARAGRAPH:
|
|
||||||
case LFUN_BREAK_PARAGRAPH_SKIP:
|
|
||||||
status.enabled(false);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return InsetCollapsable::getStatus(cur, cmd, status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
InsetPrintIndex::InsetPrintIndex(InsetCommandParams const & p)
|
InsetPrintIndex::InsetPrintIndex(InsetCommandParams const & p)
|
||||||
: InsetCommand(p, string())
|
: InsetCommand(p, string())
|
||||||
{}
|
{}
|
||||||
|
@ -34,15 +34,8 @@ public:
|
|||||||
///
|
///
|
||||||
InsetCode lyxCode() const { return INDEX_CODE; }
|
InsetCode lyxCode() const { return INDEX_CODE; }
|
||||||
///
|
///
|
||||||
///
|
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
|
||||||
///
|
|
||||||
void draw(PainterInfo &, int, int) const;
|
|
||||||
///
|
|
||||||
docstring name() const { return from_ascii("Index"); }
|
docstring name() const { return from_ascii("Index"); }
|
||||||
///
|
///
|
||||||
void getDrawFont(FontInfo &) const;
|
|
||||||
///
|
|
||||||
void write(Buffer const & buf, std::ostream & os) const;
|
void write(Buffer const & buf, std::ostream & os) const;
|
||||||
///
|
///
|
||||||
int docbook(Buffer const &, odocstream &,
|
int docbook(Buffer const &, odocstream &,
|
||||||
@ -50,8 +43,6 @@ public:
|
|||||||
/// should paragraph indendation be omitted in any case?
|
/// should paragraph indendation be omitted in any case?
|
||||||
bool neverIndent(Buffer const &) const { return true; }
|
bool neverIndent(Buffer const &) const { return true; }
|
||||||
private:
|
private:
|
||||||
///
|
|
||||||
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
|
||||||
///
|
///
|
||||||
virtual Inset * clone() const;
|
virtual Inset * clone() const;
|
||||||
};
|
};
|
||||||
|
@ -59,14 +59,15 @@ void InsetListings::init()
|
|||||||
|
|
||||||
|
|
||||||
InsetListings::InsetListings(BufferParams const & bp, InsetListingsParams const & par)
|
InsetListings::InsetListings(BufferParams const & bp, InsetListingsParams const & par)
|
||||||
: InsetERT(bp, par.status())
|
: InsetCollapsable(bp, par.status())
|
||||||
{
|
{
|
||||||
|
setLayout(bp);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
InsetListings::InsetListings(InsetListings const & in)
|
InsetListings::InsetListings(InsetListings const & in)
|
||||||
: InsetERT(in), params_(in.params_)
|
: InsetCollapsable(in), params_(in.params_)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
@ -139,7 +140,7 @@ void InsetListings::read(Buffer const & buf, Lexer & lex)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
InsetERT::read(buf, lex);
|
InsetCollapsable::read(buf, lex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -244,11 +245,11 @@ void InsetListings::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
InsetListingsMailer(*this).showDialog(&cur.bv());
|
InsetListingsMailer(*this).showDialog(&cur.bv());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
InsetERT::doDispatch(cur, cmd);
|
InsetCollapsable::doDispatch(cur, cmd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
InsetERT::doDispatch(cur, cmd);
|
InsetCollapsable::doDispatch(cur, cmd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,7 +266,7 @@ bool InsetListings::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
status.enabled(!params().isInline());
|
status.enabled(!params().isInline());
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return InsetERT::getStatus(cur, cmd, status);
|
return InsetCollapsable::getStatus(cur, cmd, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,34 +274,17 @@ bool InsetListings::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
void InsetListings::setButtonLabel()
|
void InsetListings::setButtonLabel()
|
||||||
{
|
{
|
||||||
// FIXME UNICODE
|
// FIXME UNICODE
|
||||||
|
if (decoration() == Classic)
|
||||||
setLabel(isOpen() ? _("Listing") : getNewLabel(_("Listing")));
|
setLabel(isOpen() ? _("Listing") : getNewLabel(_("Listing")));
|
||||||
}
|
else
|
||||||
|
setLabel(getNewLabel(_("Listing")));
|
||||||
|
|
||||||
void InsetListings::metrics(MetricsInfo & mi, Dimension & dim) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = mi.base.font;
|
|
||||||
getDrawFont(mi.base.font);
|
|
||||||
mi.base.font.realize(tmpfont);
|
|
||||||
InsetCollapsable::metrics(mi, dim);
|
|
||||||
mi.base.font = tmpfont;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetListings::draw(PainterInfo & pi, int x, int y) const
|
|
||||||
{
|
|
||||||
FontInfo tmpfont = pi.base.font;
|
|
||||||
getDrawFont(pi.base.font);
|
|
||||||
pi.base.font.realize(tmpfont);
|
|
||||||
InsetCollapsable::draw(pi, x, y);
|
|
||||||
pi.base.font = tmpfont;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetListings::validate(LaTeXFeatures & features) const
|
void InsetListings::validate(LaTeXFeatures & features) const
|
||||||
{
|
{
|
||||||
features.require("listings");
|
features.require("listings");
|
||||||
InsetERT::validate(features);
|
InsetCollapsable::validate(features);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -311,15 +295,6 @@ bool InsetListings::showInsetDialog(BufferView * bv) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetListings::getDrawFont(FontInfo & font) const
|
|
||||||
{
|
|
||||||
font = inherit_font;
|
|
||||||
font.setFamily(TYPEWRITER_FAMILY);
|
|
||||||
// FIXME: define Color_listing?
|
|
||||||
font.setColor(Color_foreground);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
docstring InsetListings::getCaption(Buffer const & buf,
|
docstring InsetListings::getCaption(Buffer const & buf,
|
||||||
OutputParams const & runparams) const
|
OutputParams const & runparams) const
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@ namespace lyx {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class InsetListings : public InsetERT {
|
class InsetListings : public InsetCollapsable {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
InsetListings(BufferParams const &, InsetListingsParams const & par = InsetListingsParams());
|
InsetListings(BufferParams const &, InsetListingsParams const & par = InsetListingsParams());
|
||||||
@ -49,14 +49,8 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures &) const;
|
void validate(LaTeXFeatures &) const;
|
||||||
///
|
///
|
||||||
void metrics(MetricsInfo &, Dimension &) const;
|
|
||||||
///
|
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
|
||||||
///
|
|
||||||
bool showInsetDialog(BufferView *) const;
|
bool showInsetDialog(BufferView *) const;
|
||||||
///
|
///
|
||||||
void getDrawFont(FontInfo &) const;
|
|
||||||
///
|
|
||||||
InsetListingsParams const & params() const { return params_; }
|
InsetListingsParams const & params() const { return params_; }
|
||||||
///
|
///
|
||||||
InsetListingsParams & params() { return params_; }
|
InsetListingsParams & params() { return params_; }
|
||||||
|
Loading…
Reference in New Issue
Block a user