lyx_mirror/src/insets/insetcommand.h

114 lines
2.3 KiB
C
Raw Normal View History

// -*- C++ -*-
/* This file is part of*
* ======================================================
*
* LyX, The Document Processor
*
* Copyright (C) 1995 Matthias Ettrich
* Copyright (C) 1996-1999 The LyX Team.
*
* ======================================================*/
#ifndef INSET_LATEXCOMMAND_H
#define INSET_LATEXCOMMAND_H
#ifdef __GNUG__
#pragma interface
#endif
#include "lyxinset.h"
#include "LString.h"
// Created by Alejandro 970222
/** Used to insert a LaTeX command automatically
*
* Similar to InsetLaTeX but having control of the basic structure of a
* LaTeX command: \name[options]{contents}.
*/
class InsetCommand: public Inset {
public:
///
InsetCommand();
///
InsetCommand(string const & name, string const & arg = string(),
string const & opt = string());
///
~InsetCommand();
///
int Ascent(LyXFont const & font) const;
///
int Descent(LyXFont const & font) const;
///
int Width(LyXFont const & font) const;
///
void Draw(LyXFont, LyXScreen & scr, int baseline, float & x);
///
void Write(FILE * file);
/// Parse the command.
void scanCommand(string const & cmd);
/// Will not be used when lyxf3
void Read(LyXLex & lex);
///
virtual int Latex(FILE * file, signed char fragile);
///
virtual int Latex(string & file, signed char fragile);
///
virtual int Linuxdoc(string & file);
///
virtual int DocBook(string & file);
///
Inset * Clone();
///
Inset::Code LyxCode() const
{
return Inset::NO_CODE;
}
/** Get the label that appears at screen.
I thought it was enough to eliminate the argument to avoid
confusion with lyxinset::getLabel(int), but I've seen that
it wasn't. I hope you never confuse again both methods. (ale)
*/
virtual string getScreenLabel() const
{
return getCommand();
}
/// Build the complete LaTeX command
string getCommand() const;
///
string const & getCmdName() const {
return command;
}
///
string const & getOptions() const {
return options;
}
///
string const & getContents() const {
return contents;
}
///
void setCmdName(string const & n) {
command = n;
}
///
void setOptions(string const & o) {
options = o;
}
///
virtual void setContents(string const & c) {
contents = c;
}
protected:
///
string command;
///
string options;
///
string contents;
};
#endif