mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Added support for changing label on collapsed InsetERT.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2305 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ce36c9bd16
commit
3ea708f4b6
@ -10,8 +10,8 @@ src/CutAndPaste.C
|
||||
src/debug.C
|
||||
src/exporter.C
|
||||
src/ext_l10n.h
|
||||
src/figureForm.C
|
||||
src/figure_form.C
|
||||
src/figureForm.C
|
||||
src/FontLoader.C
|
||||
src/frontends/controllers/biblio.C
|
||||
src/frontends/controllers/ButtonController.h
|
||||
@ -90,67 +90,67 @@ src/frontends/qt2/paragraphdlgimpl.C
|
||||
src/frontends/qt2/tabularcreatedlgimpl.C
|
||||
src/frontends/xforms/combox.C
|
||||
src/frontends/xforms/FileDialog.C
|
||||
src/frontends/xforms/FormAboutlyx.C
|
||||
src/frontends/xforms/form_aboutlyx.C
|
||||
src/frontends/xforms/FormBibitem.C
|
||||
src/frontends/xforms/FormAboutlyx.C
|
||||
src/frontends/xforms/form_bibitem.C
|
||||
src/frontends/xforms/FormBibtex.C
|
||||
src/frontends/xforms/FormBibitem.C
|
||||
src/frontends/xforms/form_bibtex.C
|
||||
src/frontends/xforms/FormBibtex.C
|
||||
src/frontends/xforms/form_browser.C
|
||||
src/frontends/xforms/FormCharacter.C
|
||||
src/frontends/xforms/form_character.C
|
||||
src/frontends/xforms/FormCitation.C
|
||||
src/frontends/xforms/FormCharacter.C
|
||||
src/frontends/xforms/form_citation.C
|
||||
src/frontends/xforms/FormDocument.C
|
||||
src/frontends/xforms/FormCitation.C
|
||||
src/frontends/xforms/form_document.C
|
||||
src/frontends/xforms/FormError.C
|
||||
src/frontends/xforms/FormDocument.C
|
||||
src/frontends/xforms/form_error.C
|
||||
src/frontends/xforms/FormExternal.C
|
||||
src/frontends/xforms/FormError.C
|
||||
src/frontends/xforms/form_external.C
|
||||
src/frontends/xforms/FormFiledialog.C
|
||||
src/frontends/xforms/FormExternal.C
|
||||
src/frontends/xforms/form_filedialog.C
|
||||
src/frontends/xforms/FormGraphics.C
|
||||
src/frontends/xforms/FormFiledialog.C
|
||||
src/frontends/xforms/form_graphics.C
|
||||
src/frontends/xforms/FormInclude.C
|
||||
src/frontends/xforms/FormGraphics.C
|
||||
src/frontends/xforms/form_include.C
|
||||
src/frontends/xforms/FormIndex.C
|
||||
src/frontends/xforms/FormInclude.C
|
||||
src/frontends/xforms/form_index.C
|
||||
src/frontends/xforms/FormIndex.C
|
||||
src/frontends/xforms/FormLog.C
|
||||
src/frontends/xforms/FormMathsBitmap.C
|
||||
src/frontends/xforms/FormMathsDeco.C
|
||||
src/frontends/xforms/form_maths_deco.C
|
||||
src/frontends/xforms/FormMathsDelim.C
|
||||
src/frontends/xforms/FormMathsDeco.C
|
||||
src/frontends/xforms/form_maths_delim.C
|
||||
src/frontends/xforms/FormMathsMatrix.C
|
||||
src/frontends/xforms/FormMathsDelim.C
|
||||
src/frontends/xforms/form_maths_matrix.C
|
||||
src/frontends/xforms/FormMathsPanel.C
|
||||
src/frontends/xforms/FormMathsMatrix.C
|
||||
src/frontends/xforms/form_maths_panel.C
|
||||
src/frontends/xforms/FormMathsSpace.C
|
||||
src/frontends/xforms/FormMathsPanel.C
|
||||
src/frontends/xforms/form_maths_space.C
|
||||
src/frontends/xforms/FormMinipage.C
|
||||
src/frontends/xforms/FormMathsSpace.C
|
||||
src/frontends/xforms/form_minipage.C
|
||||
src/frontends/xforms/FormParagraph.C
|
||||
src/frontends/xforms/FormMinipage.C
|
||||
src/frontends/xforms/form_paragraph.C
|
||||
src/frontends/xforms/FormPreamble.C
|
||||
src/frontends/xforms/FormParagraph.C
|
||||
src/frontends/xforms/form_preamble.C
|
||||
src/frontends/xforms/FormPreferences.C
|
||||
src/frontends/xforms/FormPreamble.C
|
||||
src/frontends/xforms/form_preferences.C
|
||||
src/frontends/xforms/FormPrint.C
|
||||
src/frontends/xforms/FormPreferences.C
|
||||
src/frontends/xforms/form_print.C
|
||||
src/frontends/xforms/FormRef.C
|
||||
src/frontends/xforms/FormPrint.C
|
||||
src/frontends/xforms/form_ref.C
|
||||
src/frontends/xforms/FormSearch.C
|
||||
src/frontends/xforms/FormRef.C
|
||||
src/frontends/xforms/form_search.C
|
||||
src/frontends/xforms/FormSpellchecker.C
|
||||
src/frontends/xforms/FormSearch.C
|
||||
src/frontends/xforms/form_spellchecker.C
|
||||
src/frontends/xforms/FormTabular.C
|
||||
src/frontends/xforms/FormSpellchecker.C
|
||||
src/frontends/xforms/form_tabular.C
|
||||
src/frontends/xforms/FormTabularCreate.C
|
||||
src/frontends/xforms/FormTabular.C
|
||||
src/frontends/xforms/form_tabular_create.C
|
||||
src/frontends/xforms/FormToc.C
|
||||
src/frontends/xforms/FormTabularCreate.C
|
||||
src/frontends/xforms/form_toc.C
|
||||
src/frontends/xforms/FormUrl.C
|
||||
src/frontends/xforms/FormToc.C
|
||||
src/frontends/xforms/form_url.C
|
||||
src/frontends/xforms/FormUrl.C
|
||||
src/frontends/xforms/FormVCLog.C
|
||||
src/frontends/xforms/input_validators.C
|
||||
src/frontends/xforms/Menubar_pimpl.C
|
||||
@ -171,6 +171,7 @@ src/insets/insetfoot.C
|
||||
src/insets/insetgraphics.C
|
||||
src/insets/insetinclude.C
|
||||
src/insets/insetindex.C
|
||||
src/insets/insetinfo.C
|
||||
src/insets/insetlabel.C
|
||||
src/insets/insetlist.C
|
||||
src/insets/insetmarginal.C
|
||||
@ -206,7 +207,6 @@ src/MenuBackend.C
|
||||
src/minibuffer.C
|
||||
src/paragraph.C
|
||||
src/print_form.C
|
||||
src/sp_form.C
|
||||
src/support/filetools.C
|
||||
src/support/getUserName.C
|
||||
src/support/path.C
|
||||
|
@ -1,3 +1,22 @@
|
||||
2001-07-23 Juergen Vigna <jug@sad.it>
|
||||
|
||||
* insetert.C (InsetERT): use setLabel with "true" flag.
|
||||
|
||||
* insetcollapsable.C: modified various functions to set the draw_label
|
||||
string right in any condition.
|
||||
(setLabel): added a bool parameter to set change_label_with_text.
|
||||
|
||||
* insetcollapsable.h: added draw_label string which is set to the
|
||||
actual drawn label-string, while label is the original static label
|
||||
of this collapsable inset. Added bool change_label_with_text to set
|
||||
if we want that the label changes to the start of the InsetText's
|
||||
text when collabpsed. You can set this flag with the setLabel funciton.
|
||||
Added bool inlined for inlined collapsable insets, but not handled
|
||||
yet.
|
||||
|
||||
* insetcollapsable.C (get_new_label): added should get a new label
|
||||
from the InsetText beginning (for now 10 chars).
|
||||
|
||||
2001-07-21 Yves Bastide <stid@libd-pc11.univ-bpclermont.fr>
|
||||
|
||||
* insetquotes.C (latex): fix the handling of french double quotes
|
||||
|
@ -34,9 +34,11 @@ using std::max;
|
||||
|
||||
InsetCollapsable::InsetCollapsable(bool collapsed)
|
||||
: UpdatableInset(), collapsed_(collapsed),
|
||||
button_length(0), button_top_y(0), button_bottom_y(0),
|
||||
label("Label"), autocollapse(true),
|
||||
widthCollapsed(0), oldWidth(0), need_update(FULL)
|
||||
button_length(0), button_top_y(0), button_bottom_y(0),
|
||||
label("Label"), draw_label(label), autocollapse(true),
|
||||
widthCollapsed(0), oldWidth(0), need_update(FULL),
|
||||
inlined(false), change_label_with_text(false)
|
||||
|
||||
|
||||
{
|
||||
inset.setOwner(this);
|
||||
@ -80,6 +82,11 @@ void InsetCollapsable::read(Buffer const * buf, LyXLex & lex)
|
||||
}
|
||||
}
|
||||
inset.read(buf, lex);
|
||||
if (collapsed_ && change_label_with_text) {
|
||||
draw_label = get_new_label();
|
||||
} else {
|
||||
draw_label = label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +95,7 @@ int InsetCollapsable::ascent_collapsed(Painter & pain, LyXFont const &) const
|
||||
int width = 0;
|
||||
int ascent = 0;
|
||||
int descent = 0;
|
||||
pain.buttonText(0, 0, label, labelfont, false,
|
||||
pain.buttonText(0, 0, draw_label, labelfont, false,
|
||||
width, ascent, descent);
|
||||
return ascent;
|
||||
}
|
||||
@ -99,7 +106,7 @@ int InsetCollapsable::descent_collapsed(Painter & pain, LyXFont const &) const
|
||||
int width = 0;
|
||||
int ascent = 0;
|
||||
int descent = 0;
|
||||
pain.buttonText(0, 0, label, labelfont, false,
|
||||
pain.buttonText(0, 0, draw_label, labelfont, false,
|
||||
width, ascent, descent);
|
||||
return descent;
|
||||
}
|
||||
@ -110,7 +117,7 @@ int InsetCollapsable::width_collapsed(Painter & pain, LyXFont const &) const
|
||||
int width;
|
||||
int ascent;
|
||||
int descent;
|
||||
pain.buttonText(TEXT_TO_INSET_OFFSET, 0, label, labelfont, false,
|
||||
pain.buttonText(TEXT_TO_INSET_OFFSET, 0, draw_label, labelfont, false,
|
||||
width, ascent, descent);
|
||||
return width + (2*TEXT_TO_INSET_OFFSET);
|
||||
}
|
||||
@ -136,8 +143,7 @@ int InsetCollapsable::descent(BufferView * bv, LyXFont const & font) const
|
||||
|
||||
int InsetCollapsable::width(BufferView * bv, LyXFont const & font) const
|
||||
{
|
||||
if (!widthCollapsed)
|
||||
widthCollapsed = width_collapsed(bv->painter(), font);
|
||||
widthCollapsed = width_collapsed(bv->painter(), font);
|
||||
|
||||
if (collapsed_)
|
||||
return widthCollapsed;
|
||||
@ -148,17 +154,17 @@ int InsetCollapsable::width(BufferView * bv, LyXFont const & font) const
|
||||
|
||||
|
||||
void InsetCollapsable::draw_collapsed(Painter & pain, LyXFont const &,
|
||||
int baseline, float & x) const
|
||||
int baseline, float & x) const
|
||||
{
|
||||
int width = 0;
|
||||
pain.buttonText(int(x) + TEXT_TO_INSET_OFFSET,
|
||||
baseline, label, labelfont, true, width);
|
||||
baseline, draw_label, labelfont, true, width);
|
||||
x += width + TEXT_TO_INSET_OFFSET;
|
||||
}
|
||||
|
||||
|
||||
void InsetCollapsable::draw(BufferView * bv, LyXFont const & f,
|
||||
int baseline, float & x, bool cleared) const
|
||||
int baseline, float & x, bool cleared) const
|
||||
{
|
||||
if (nodraw())
|
||||
return;
|
||||
@ -234,6 +240,7 @@ void InsetCollapsable::edit(BufferView * bv, int xp, int yp,
|
||||
UpdatableInset::edit(bv, xp, yp, button);
|
||||
|
||||
if (collapsed_) {
|
||||
draw_label = label;
|
||||
collapsed_ = false;
|
||||
if (!bv->lockInset(this))
|
||||
return;
|
||||
@ -257,6 +264,7 @@ void InsetCollapsable::edit(BufferView * bv, bool front)
|
||||
UpdatableInset::edit(bv, front);
|
||||
|
||||
if (collapsed_) {
|
||||
draw_label = label;
|
||||
collapsed_ = false;
|
||||
if (!bv->lockInset(this))
|
||||
return;
|
||||
@ -281,6 +289,11 @@ Inset::EDITABLE InsetCollapsable::editable() const
|
||||
void InsetCollapsable::insetUnlock(BufferView * bv)
|
||||
{
|
||||
if (autocollapse) {
|
||||
if (change_label_with_text) {
|
||||
draw_label = get_new_label();
|
||||
} else {
|
||||
draw_label = label;
|
||||
}
|
||||
collapsed_ = true;
|
||||
}
|
||||
inset.insetUnlock(bv);
|
||||
@ -310,10 +323,16 @@ void InsetCollapsable::insetButtonRelease(BufferView * bv,
|
||||
if ((x >= 0) && (x < button_length) &&
|
||||
(y >= button_top_y) && (y <= button_bottom_y)) {
|
||||
if (collapsed_) {
|
||||
draw_label = label;
|
||||
collapsed_ = false;
|
||||
inset.insetButtonRelease(bv, 0, 0, button);
|
||||
bv->updateInset(this, false);
|
||||
} else {
|
||||
if (change_label_with_text) {
|
||||
draw_label = get_new_label();
|
||||
} else {
|
||||
draw_label = label;
|
||||
}
|
||||
collapsed_ = true;
|
||||
bv->unlockInset(this);
|
||||
bv->updateInset(this, false);
|
||||
@ -585,5 +604,42 @@ void InsetCollapsable::open(BufferView * bv, bool flag)
|
||||
if (flag == !collapsed_)
|
||||
return;
|
||||
collapsed_ = !flag;
|
||||
if (collapsed_ && change_label_with_text) {
|
||||
draw_label = get_new_label();
|
||||
} else {
|
||||
draw_label = label;
|
||||
}
|
||||
bv->updateInset(this, false);
|
||||
}
|
||||
|
||||
|
||||
void InsetCollapsable::setLabel(string const & l, bool flag)
|
||||
{
|
||||
label = l;
|
||||
change_label_with_text = flag;
|
||||
if (collapsed_ && change_label_with_text) {
|
||||
draw_label = get_new_label();
|
||||
} else {
|
||||
draw_label = label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
string InsetCollapsable::get_new_label() const
|
||||
{
|
||||
string la;
|
||||
|
||||
int n = std::min(10, inset.paragraph()->size());
|
||||
int i,j;
|
||||
for(i=0,j=0; i < n && j < inset.paragraph()->size(); ++j) {
|
||||
if (inset.paragraph()->isInset(j))
|
||||
continue;
|
||||
la += inset.paragraph()->getChar(j);
|
||||
++i;
|
||||
}
|
||||
if ((i > 0) && (j < inset.paragraph()->size()))
|
||||
la += "...";
|
||||
if (la.empty())
|
||||
la = label;
|
||||
return la;
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ public:
|
||||
void setFont(BufferView *, LyXFont const &, bool toggleall = false,
|
||||
bool selectall = false);
|
||||
///
|
||||
void setLabel(string const & l) { label = l; }
|
||||
void setLabel(string const & l, bool flag = false);
|
||||
///
|
||||
void setLabelFont(LyXFont & f) { labelfont = f; }
|
||||
///
|
||||
@ -207,6 +207,9 @@ public:
|
||||
///
|
||||
InsetText inset;
|
||||
protected:
|
||||
///
|
||||
string get_new_label() const;
|
||||
|
||||
///
|
||||
mutable int button_length;
|
||||
///
|
||||
@ -217,6 +220,8 @@ private:
|
||||
///
|
||||
string label;
|
||||
///
|
||||
mutable string draw_label;
|
||||
///
|
||||
bool autocollapse;
|
||||
///
|
||||
mutable int widthCollapsed;
|
||||
@ -226,6 +231,10 @@ private:
|
||||
mutable int topx;
|
||||
mutable int topbaseline;
|
||||
mutable UpdateCodes need_update;
|
||||
///
|
||||
bool inlined;
|
||||
///
|
||||
bool change_label_with_text;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -25,7 +25,7 @@ using std::ostream;
|
||||
|
||||
InsetERT::InsetERT() : InsetCollapsable()
|
||||
{
|
||||
setLabel(_("666"));
|
||||
setLabel(_("666"), true);
|
||||
//LyXFont font(LyXFont::ALL_SANE);
|
||||
//font.setLatex (LyXFont::ON);
|
||||
labelfont = LyXFont(LyXFont::ALL_SANE);
|
||||
|
Loading…
Reference in New Issue
Block a user