X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcommand.h;h=6428e667fd006611b40e9b12438cebb3777e6f71;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=e335afc64e9c678d963f6551250ff8be85581fba;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/insets/insetcommand.h b/src/insets/insetcommand.h index e335afc64e..6428e667fd 100644 --- a/src/insets/insetcommand.h +++ b/src/insets/insetcommand.h @@ -1,23 +1,24 @@ // -*- C++ -*- /* This file is part of* - * ====================================================== + * ====================================================== * * LyX, The Document Processor * - * Copyright (C) 1995 Matthias Ettrich - * Copyright (C) 1996-1998 The LyX Team. + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. * - *======================================================*/ + * ====================================================== */ -#ifndef _INSET_LATEXCOMMAND_H -#define _INSET_LATEXCOMMAND_H +#ifndef INSET_LATEXCOMMAND_H +#define INSET_LATEXCOMMAND_H #ifdef __GNUG__ #pragma interface #endif -#include "lyxinset.h" -#include "LString.h" +#include "insetbutton.h" +#include +#include // Created by Alejandro 970222 /** Used to insert a LaTeX command automatically @@ -25,89 +26,104 @@ * Similar to InsetLaTeX but having control of the basic structure of a * LaTeX command: \name[options]{contents}. */ -class InsetCommand: public Inset { +class InsetCommandParams { public: /// - InsetCommand(); + InsetCommandParams(); /// - InsetCommand(LString const & name, LString const & arg = LString(), - LString const & opt = LString()); + explicit + InsetCommandParams(string const & n, + string const & c = string(), + string const & o = string()); /// - ~InsetCommand(); + bool operator==(InsetCommandParams const &) const; /// - int Ascent(LyXFont const &font) const; + bool operator!=(InsetCommandParams const &) const; /// - int Descent(LyXFont const &font) const; + void read(LyXLex &); + /// Parse the command + void scanCommand(string const &); /// - int Width(LyXFont const &font) const; + void write(std::ostream &) const; + /// Build the complete LaTeX command + string const getCommand() const; + /// + string const & getCmdName() const { return cmdname; } + /// + string const & getOptions() const { return options; } + /// + string const & getContents() const { return contents; } + /// + void setCmdName(string const & n) { cmdname = n; } + /// + void setOptions(string const & o) { options = o; } + /// + void setContents(string const & c) { contents = c; } + /// + string const getAsString() const; + /// + void setFromString(string const &); +private: + /// + string cmdname; + /// + string contents; + /// + string options; +}; + + +/// +class InsetCommand : public InsetButton, boost::noncopyable { +public: + /// + explicit + InsetCommand(InsetCommandParams const &, bool same_id = false); + /// + virtual ~InsetCommand() { hideDialog(); } /// - void Draw(LyXFont, LyXScreen &scr, int baseline, float &x); + void write(Buffer const *, std::ostream & os) const + { p_.write(os); } /// - void Write(FILE *file); - /// Parse the command. - void scanCommand(LString const &cmd); - /// Will not be used when lyxf3 - void Read(LyXLex &lex); + virtual void read(Buffer const *, LyXLex & lex) + { p_.read(lex); } + /// Can remove one InsetBibKey is modified + void scanCommand(string const & c) { p_.scanCommand(c); }; /// - virtual int Latex(FILE *file, signed char fragile); + virtual int latex(Buffer const *, std::ostream &, + bool fragile, bool free_spc) const; /// - virtual int Latex(LString &file, signed char fragile); + int ascii(Buffer const *, std::ostream &, int linelen) const; /// - virtual int Linuxdoc(LString &file); + virtual int linuxdoc(Buffer const *, std::ostream &) const; /// - virtual int DocBook(LString &file); + virtual int docbook(Buffer const *, std::ostream &) const; /// - Inset* Clone(); - /// - Inset::Code LyxCode() const - { - return Inset::NO_CODE; - } + 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 LString getScreenLabel() const - { - return getCommand(); - } - - /// Build the complete LaTeX command - LString getCommand() const; /// - LString const &getCmdName() const { - return command; - } + string const getCommand() const { return p_.getCommand(); } /// - LString const &getOptions() const { - return options; - } + string const & getCmdName() const { return p_.getCmdName(); } /// - LString const &getContents() const { - return contents; - } + string const & getOptions() const { return p_.getOptions(); } /// - void setCmdName(LString const & n) { - command = n; - } + string const & getContents() const { return p_.getContents(); } /// - void setOptions(LString const & o) { - options = o; - } + void setCmdName(string const & n) { p_.setCmdName(n); } /// - virtual void setContents(LString const & c) { - contents = c; - } -protected: - /// - LString command; - /// - LString options; - /// - LString contents; + void setOptions(string const & o) { p_.setOptions(o); } + /// + void setContents(string const & c) { p_.setContents(c); } + /// + InsetCommandParams const & params() const { return p_; } + /// + void setParams(InsetCommandParams const &); + /// + SigC::Signal0 hideDialog; +private: + /// + InsetCommandParams p_; }; #endif