mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 19:59:46 +00:00
a48581f48c
The special mode used by macros where the macro name is displayed as grey text in a box is now one of the possible marker types for any inset. The new code puts the macro name below the text, which means that only the text below the current line will be moved. This makes edition much more comfortable. The grey border around the contents has been removed too. The marker_type enum has been moved from Inset to InsetMath. A markerMargin() function returns the horizontal margin required on each side for the marker. Only the corner-type markers MARKER and MARKER2 need some. A new BOX_MARKER enum value has been added and is taken care of in afterMetricsMarkers (renamed from metricsMarkerVertical) and drawMarkers. The InsetMath::marker() macro now takes a BufferView pointer as argument, so that the marker type can depend on editing state. MathRow::metrics now makes changes to the MathRow object when needed. The specific metrics/draw code in MathMacro has been removed and replaced by assertions. Code in addToMathRow and marker is adapted to reflect the cases where linearization is possible.
83 lines
1.8 KiB
C++
83 lines
1.8 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file InsetMathDelim.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Alejandro Aguilar Sierra
|
|
* \author André Pönitz
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef MATH_DELIMINSET_H
|
|
#define MATH_DELIMINSET_H
|
|
|
|
#include "InsetMathNest.h"
|
|
|
|
|
|
namespace lyx {
|
|
|
|
/// A delimiter like '{' or '(' or '<'
|
|
class InsetMathDelim : public InsetMathNest {
|
|
public:
|
|
///
|
|
InsetMathDelim(Buffer * buf, docstring const & left, docstring const & right);
|
|
///
|
|
InsetMathDelim(Buffer * buf, docstring const & left, docstring const & right,
|
|
MathData const &);
|
|
///
|
|
InsetMathDelim * asDelimInset() { return this; }
|
|
///
|
|
InsetMathDelim const * asDelimInset() const { return this; }
|
|
///
|
|
MathClass mathClass() const { return MC_INNER; }
|
|
///
|
|
marker_type marker(BufferView const *) const { return NO_MARKER; }
|
|
/// is it (...)?
|
|
bool isParenthesis() const;
|
|
/// is it [...]?
|
|
bool isBrackets() const;
|
|
/// is it |...|?
|
|
bool isAbs() const;
|
|
///
|
|
mode_type currentMode() const { return MATH_MODE; }
|
|
///
|
|
void metrics(MetricsInfo & mi, Dimension & dim) const;
|
|
///
|
|
void draw(PainterInfo &, int x, int y) const;
|
|
|
|
///
|
|
void validate(LaTeXFeatures & features) const;
|
|
///
|
|
void write(WriteStream & os) const;
|
|
/// write normalized content
|
|
void normalize(NormalStream &) const;
|
|
///
|
|
void maple(MapleStream &) const;
|
|
///
|
|
void maxima(MaximaStream &) const;
|
|
///
|
|
void mathematica(MathematicaStream &) const;
|
|
///
|
|
void mathmlize(MathStream &) const;
|
|
///
|
|
void htmlize(HtmlStream &) const;
|
|
///
|
|
void octave(OctaveStream &) const;
|
|
///
|
|
InsetCode lyxCode() const { return MATH_DELIM_CODE; }
|
|
///
|
|
docstring left_;
|
|
///
|
|
docstring right_;
|
|
private:
|
|
virtual Inset * clone() const;
|
|
///
|
|
mutable int dw_;
|
|
};
|
|
|
|
} // namespace lyx
|
|
|
|
#endif
|