X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetexternal.h;h=e6fb0e946140bc0ea3eedfa3665a462060ea2fd2;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=ae5568b88e7d5054f94d6bdf7ffadadb5b62191c;hpb=71f8ac34a96741c40c876c66ae199f9677559a5c;p=lyx.git diff --git a/src/insets/insetexternal.h b/src/insets/insetexternal.h index ae5568b88e..e6fb0e9461 100644 --- a/src/insets/insetexternal.h +++ b/src/insets/insetexternal.h @@ -1,11 +1,11 @@ // -*- C++ -*- /* This file is part of* - * ====================================================== + * ====================================================== * * LyX, The Document Processor - * + * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ @@ -17,139 +17,117 @@ #endif #include "insetbutton.h" +#include "ExternalTemplate.h" #include "LString.h" -#include "../lyx.h" - -struct ExternalTemplate; +#include /// class InsetExternal : public InsetButton { public: + /// hold parameters settable from the GUI + struct Params { + Params(string const & f = string(), + string const & p = string(), + ExternalTemplate const & t = ExternalTemplate()) + : filename(f), parameters(p), templ(t) {} + /// the filename + string filename; + /// the parameters of the current choice + string parameters; + /// the current template used + ExternalTemplate templ; + }; + InsetExternal(); /// virtual ~InsetExternal(); /// what appears in the minibuffer when opening - virtual string const EditMessage() const; + virtual string const editMessage() const; /// - virtual void Edit(BufferView *, int x, int y, unsigned int button); + virtual void edit(BufferView *, int x, int y, unsigned int button); /// - virtual EDITABLE Editable() const { return IS_EDITABLE; } + virtual void edit(BufferView * bv, bool front = true); /// - virtual void Write(Buffer const *, std::ostream &) const; + virtual EDITABLE editable() const { return IS_EDITABLE; } /// - virtual void Read(Buffer const *, LyXLex & lex); + virtual void write(Buffer const *, std::ostream &) const; + /// + virtual void read(Buffer const *, LyXLex & lex); + /** returns the number of rows (\n's) of generated tex code. fragile == true means, that the inset should take care about fragile commands by adding a \protect before. If the free_spc (freespacing) variable is set, then this inset is in a free-spacing paragraph. */ - virtual int Latex(Buffer const *, std::ostream &, bool fragile, - bool free_spc) const; - /// - virtual int Ascii(Buffer const *, std::ostream &, int linelen) const; - /// - virtual int Linuxdoc(Buffer const *, std::ostream &) const; - /// - virtual int DocBook(Buffer const *, std::ostream &) const; + virtual int latex(Buffer const *, std::ostream &, bool fragile, + bool free_spc) const; + /// write ASCII output to the ostream + virtual int ascii(Buffer const *, std::ostream &, int linelen) const; + /// write LinuxDoc output to the ostream + virtual int linuxdoc(Buffer const *, std::ostream &) const; + /// write DocBook output to the ostream + virtual int docbook(Buffer const *, std::ostream &) const; + /// Updates needed features for this inset. - virtual void Validate(LaTeXFeatures & features) const; + virtual void validate(LaTeXFeatures & features) const; /// returns LyX code associated with the inset. Used for TOC, ...) - virtual Inset::Code LyxCode() const { return EXTERNAL_CODE; } - + virtual Inset::Code lyxCode() const { return EXTERNAL_CODE; } + /// - virtual Inset * Clone(Buffer const &) const; + virtual Inset * clone(Buffer const &, bool same_id = false) const; /// returns the text of the button - virtual string const getScreenLabel() const; + virtual string const getScreenLabel(Buffer const *) const; - /// Callback function for the template drop-down - static void templateCB(FL_OBJECT *, long); + // The following public members are used from the frontends code - /// Callback function for the browse button - static void browseCB(FL_OBJECT *, long); + /// set the parameters from a Params structure + virtual void setFromParams(Params const &); - /// Callback function for the edit button - static void editCB(FL_OBJECT *, long); + /// + void updateExternal() const; + + /// update the file represented by the template + void updateExternal(string const &, Buffer const *) const; - /// Callback function for the view button - static void viewCB(FL_OBJECT *, long); + /// edit file of this template + void editExternal() const; - /// Callback function for the update production button - static void updateCB(FL_OBJECT *, long); + /// view file of this template + void viewExternal() const; - /// Callback function for the ok button - static void okCB(FL_OBJECT *, long); + /// return a copy of our current params + Params params() const; + + /// hide connection + SigC::Signal0 hideDialog; - /// Callback function for the cancel button - static void cancelCB(FL_OBJECT *, long); private: /// Write the output for a specific file format int write(string const & format, Buffer const *, std::ostream &) const; - /// Apply the changes - void doApply(BufferView * bv); - /// Execute this command in the directory of this document void executeCommand(string const & s, Buffer const * buf) const; - /// Update if automatic - void automaticUpdate(BufferView const *) const; - - /// Do update - void doUpdate(BufferView const *) const; - /// Do edit - void doEdit(BufferView const *) const; - /// Do view - void doView(BufferView const *) const; - /// Substitute meta-variables in this string string const doSubstitution(Buffer const *, string const & s) const; - /** Get the LyX name of the currently selected - template in the choice list - */ - string const getCurrentTemplate() const; + /// our owning view + BufferView * view_; - /// Get a certain template from a LyX name - ExternalTemplate const getTemplate(string const & lyxname) const; - - /** - Get the number starting from 1 of a template with a - specific LyX name for the choice list - */ - int getTemplateNumber(string const & guiname) const; - - /// Get the LyX name of a template with a given number starting from 1 - string const getTemplateName(int n) const; - - /// Get a string with all the GUI template names separated by | - string const getTemplateString() const; - - /// - struct Holder { - InsetExternal * inset; - BufferView * view; - }; - /// - Holder holder; - - /// The external inset form - FD_form_external * form_external; - - /// - string templatename; - - /// - string filename; - - /// - string parameters; + /// the current params + Params params_; /// A temp filename - string tempname; + string tempname_; }; +/// +bool operator==(InsetExternal::Params const &, InsetExternal::Params const &); +/// +bool operator!=(InsetExternal::Params const &, InsetExternal::Params const &); + #endif