mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-17 21:36:00 +00:00
ba738d0167
The enum DisplayType is replaced with the flags RowFlags that can be combined. Here is the correspondence between the old DisplayType and the new Inset::RowFlags: DisplayType RowFLags Meaning Inline Inline plain inline inset -- BreakBefore row ends before this inset -- BreakAfter the row ends after this inset AlignCenter Display the inset is centered on its own row AlignLeft Display | AlignLeft the inset is left-aligned on its row AlignRight Display | AlignRight the inset is right-aligned on its row -- RowAfter an extra row is needed after this inset Display is just a shortcut for BreakBefore | BreakAfter. The flags for the newline inset will be BreakAfter | RowAfter, while the separator inset will just use BreakAfter. This groundwork does not introduce any new feature at this point. It aims to remve the numerous isNewLine and isSeparator all over the code, and to eventually optional break after some insets like spaces (see #11621). Most display() methods are renamed to rowFlags(). Some are removed because they returned Inline. Now display() is only a helper function for hull insets.
92 lines
2.3 KiB
C++
92 lines
2.3 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file InsetListings.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Bo Peng
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef INSET_LISTINGS_H
|
|
#define INSET_LISTINGS_H
|
|
|
|
#include "InsetListingsParams.h"
|
|
|
|
|
|
namespace lyx {
|
|
|
|
class LaTeXFeatures;
|
|
struct TexString;
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// InsetListings
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
/// A captionable and collapsible text inset for program listings.
|
|
class InsetListings : public InsetCaptionable
|
|
{
|
|
public:
|
|
///
|
|
InsetListings(Buffer *, InsetListingsParams const & par = InsetListingsParams());
|
|
///
|
|
~InsetListings();
|
|
///
|
|
static void string2params(std::string const &, InsetListingsParams &);
|
|
///
|
|
static std::string params2string(InsetListingsParams const &);
|
|
private:
|
|
///
|
|
bool isLabeled() const { return true; }
|
|
/// false is needed since listings do their own font handling.
|
|
bool inheritFont() const { return false; }
|
|
///
|
|
InsetCode lyxCode() const { return LISTINGS_CODE; }
|
|
/// lstinline is inlined, normal listing is displayed
|
|
RowFlags rowFlags() const;
|
|
///
|
|
docstring layoutName() const;
|
|
///
|
|
void write(std::ostream & os) const;
|
|
///
|
|
void read(Lexer & lex);
|
|
///
|
|
void latex(otexstream &, OutputParams const &) const;
|
|
///
|
|
docstring xhtml(XMLStream &, OutputParams const &) const;
|
|
///
|
|
void validate(LaTeXFeatures &) const;
|
|
///
|
|
bool showInsetDialog(BufferView *) const;
|
|
///
|
|
InsetListingsParams const & params() const { return params_; }
|
|
///
|
|
InsetListingsParams & params() { return params_; }
|
|
///
|
|
std::string contextMenuName() const;
|
|
///
|
|
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
|
///
|
|
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
|
///
|
|
Inset * clone() const { return new InsetListings(*this); }
|
|
///
|
|
docstring const buttonLabel(BufferView const & bv) const;
|
|
///
|
|
TexString getCaption(OutputParams const &) const;
|
|
///
|
|
bool insetAllowed(InsetCode c) const { return c == CAPTION_CODE || c == QUOTE_CODE; }
|
|
///
|
|
Encoding const * forcedEncoding(Encoding const *, Encoding const *) const;
|
|
|
|
///
|
|
InsetListingsParams params_;
|
|
};
|
|
|
|
} // namespace lyx
|
|
|
|
#endif // INSET_LISTINGS_H
|