X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetexternal.h;h=2e33880a20132fb3bb492464c2f6da0b2c9c1128;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=cf5300ee782923432bc102ea97ba47cf5f7fe096;hpb=b0eb70e869128e30ab7e4538aa32a244fd4cea57;p=lyx.git diff --git a/src/insets/insetexternal.h b/src/insets/insetexternal.h index cf5300ee78..2e33880a20 100644 --- a/src/insets/insetexternal.h +++ b/src/insets/insetexternal.h @@ -21,25 +21,29 @@ #include #include +#include "mailinset.h" + /** No two InsetExternalParams variables can have the same temporary file. - * This struct has copy-semantics but the copy constructor + * This class has copy-semantics but the copy constructor * and assignment operator simply call the default constructor. - * Use of this struct enables us to use the compiler-generated + * Use of this class enables us to use the compiler-generated * copy constructor and assignment operator for the - * InsetExternalParams struct. + * InsetExternalParams class. */ namespace lyx { + namespace external { -struct TempName { +class TempName { +public: TempName(); TempName(TempName const &); ~TempName(); TempName & operator=(TempName const &); - std::string const & operator()() const { return tempname_; } + support::FileName const & operator()() const { return tempname_; } private: - std::string tempname_; + support::FileName tempname_; }; /// How is the image to be displayed on the LyX screen? @@ -57,37 +61,42 @@ enum DisplayType { Translator const & displayTranslator(); } // namespace external -} // namespace lyx /// hold parameters settable from the GUI -struct InsetExternalParams { +class InsetExternalParams { +public: InsetExternalParams(); void write(Buffer const &, std::ostream &) const; bool read(Buffer const &, LyXLex &); /// The name of the tempfile used for manipulations. - std::string const & tempname() const { return tempname_(); } + support::FileName const & tempname() const { return tempname_(); } /// The template currently in use. void settemplate(std::string const &); std::string const & templatename() const { return templatename_; } /// The external file. - lyx::support::FileName filename; + support::DocFileName filename; /// How the inset is to be displayed by LyX. - lyx::external::DisplayType display; + external::DisplayType display; /// The scale of the displayed graphic (if shown). unsigned int lyxscale; - lyx::external::ClipData clipdata; - lyx::external::ExtraData extradata; - lyx::external::ResizeData resizedata; - lyx::external::RotationData rotationdata; + external::ClipData clipdata; + external::ExtraData extradata; + external::ResizeData resizedata; + external::RotationData rotationdata; + + /** if \c true, simply output the filename, maybe wrapped in a + * box, rather than generate and display the image etc. + */ + bool draft; private: - lyx::external::TempName tempname_; + external::TempName tempname_; std::string templatename_; }; @@ -100,18 +109,14 @@ class InsetExternal : public InsetOld, public boost::signals::trackable public: InsetExternal(); /// - InsetExternal(InsetExternal const &); - /// virtual ~InsetExternal(); /// - virtual std::auto_ptr clone() const; - /// - virtual InsetOld::Code lyxCode() const { return EXTERNAL_CODE; } + virtual InsetBase::Code lyxCode() const { return EXTERNAL_CODE; } /// virtual EDITABLE editable() const { return IS_EDITABLE; } /// - void metrics(MetricsInfo &, Dimension &) const; + bool metrics(MetricsInfo &, Dimension &) const; /// void draw(PainterInfo & pi, int x, int y) const; /// @@ -120,31 +125,36 @@ public: virtual void read(Buffer const &, LyXLex & lex); /// \returns the number of rows (\n's) of generated code. - virtual int latex(Buffer const &, std::ostream &, - LatexRunParams const &) const; + virtual int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - virtual int ascii(Buffer const &, std::ostream &, int linelen) const; + virtual int plaintext(Buffer const &, odocstream &, + OutputParams const &) const; /// - virtual int linuxdoc(Buffer const &, std::ostream &) const; - /// - virtual int docbook(Buffer const &, std::ostream &, - bool mixcont) const; + virtual int docbook(Buffer const &, odocstream &, + OutputParams const &) const; /// Update needed features for this inset. virtual void validate(LaTeXFeatures & features) const; /// InsetExternalParams const & params() const; + /// void setParams(InsetExternalParams const &, Buffer const &); /// - void addPreview(lyx::graphics::PreviewLoader &) const; + void addPreview(graphics::PreviewLoader &) const; + /// + void edit(LCursor & cur, bool left); + /// + bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const; protected: + InsetExternal(InsetExternal const &); /// - virtual - DispatchResult - priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &); + virtual void doDispatch(LCursor & cur, FuncRequest & cmd); private: + virtual std::auto_ptr doClone() const; + /** This method is connected to the graphics loader, so we are * informed when the image has been loaded. */ @@ -162,8 +172,6 @@ private: }; -#include "mailinset.h" - class InsetExternalMailer : public MailInset { public: /// @@ -187,4 +195,6 @@ private: InsetExternal & inset_; }; +} // namespace lyx + #endif