// -*- C++ -*-
-/* This file is part of*
- * ======================================================
+/**
+ * \file insetoptarg.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * LyX, The Document Processor
+ * \author Martin Vermeer
*
- * Copyright 1995 Matthias Ettrich
- * Copyright 1995-2001 The LyX Team
- *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS.
+ */
#ifndef INSETOPTARG_H
#define INSETOPTARG_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-#include "insettext.h"
#include "insetcollapsable.h"
+
+namespace lyx {
+
+
+/**
+ * InsetOptArg. Used to insert a short version of sectioning header etc.
+ * automatically, or other optional LaTeX arguments
+ */
class InsetOptArg : public InsetCollapsable {
public:
InsetOptArg(BufferParams const &);
- ///
- InsetOptArg(InsetOptArg const &, bool same_id = false);
-
- Inset * clone(Buffer const &, bool same_id = false) const;
- ///
- EDITABLE editable() const { return IS_EDITABLE; }
- ///
- Inset::Code lyxCode() const { return Inset::OPTARG_CODE; }
- ///
- string const editMessage() const;
+
+ /// code of the inset
+ InsetBase::Code lyxCode() const { return InsetBase::OPTARG_CODE; }
+ /// return an message upon editing
+ virtual docstring const editMessage() const;
+
/// Standard LaTeX output -- short-circuited
- int latex(Buffer const *, std::ostream &,
- bool fragile, bool fp) const;
+ int latex(Buffer const &, odocstream &,
+ OutputParams const &) const;
+ /// Standard DocBook output -- short-circuited
+ int docbook(Buffer const &, odocstream &,
+ OutputParams const &) const;
+
+ /// Standard plain text output -- short-circuited
+ int plaintext(Buffer const &, odocstream &,
+ OutputParams const &) const;
+
/// Outputting the optional parameter of a LaTeX command
- int latexOptional(Buffer const *, std::ostream &,
- bool fragile, bool fp) const;
- ///
- void write(Buffer const * buf, ostream & os) const;
+ int latexOptional(Buffer const &, odocstream &,
+ OutputParams const &) const;
+ /// Write out tothe .lyx file
+ void write(Buffer const & buf, std::ostream & os) const;
+
+ /// should paragraph indendation be ommitted in any case?
+ virtual bool neverIndent(Buffer const &) const { return true; }
+protected:
+ InsetOptArg(InsetOptArg const &);
+private:
+ virtual std::auto_ptr<InsetBase> doClone() const;
};
-#endif
+
+} // namespace lyx
+
+#endif // INSETOPTARG_H