X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fformat.h;h=9c5c32180f9849b4ad5beb8b6e2422cbab15d77f;hb=095625dc3cd0542d13d8cc62362aa71c896eb3e0;hp=8a888e44317f89051be068ba73c9cb4ef1934682;hpb=a6444784dca48da8b1f7723be12069b2e1dbb4c5;p=lyx.git diff --git a/src/format.h b/src/format.h index 8a888e4431..9c5c32180f 100644 --- a/src/format.h +++ b/src/format.h @@ -15,16 +15,30 @@ #include "support/docstring.h" #include -#include + + +namespace lyx { + +namespace support { class FileName; } class Buffer; class Format { public: + /// Flags for some format properties + enum Flags { + none = 0, + /// Set if this format is a document format (as opposed to + /// e.g. image formats). + /// Some formats are both (e.g. pdf), they have this flag set. + document = 1, + /// Set if this format can contain vector graphics. + vector = 2, + }; /// Format(std::string const & n, std::string const & e, std::string const & p, std::string const & s, std::string const & v, std::string const & ed, - bool ex); + int); /// bool dummy() const; /// Tell whether this format is a child format. @@ -66,7 +80,11 @@ public: } /// bool documentFormat() const { - return document_; + return flags_ & document; + } + /// + bool vectorFormat() const { + return flags_ & vector; } private: /// Internal name. Needs to be unique. @@ -87,14 +105,14 @@ private: std::string viewer_; /// Editor for this format. \sa viewer_. std::string editor_; - /// Is this format a document format? (as opposed to e.g. image formats) - /// Some formats are both (e.g. pdf), they have this flag set. - bool document_; + /// + int flags_; }; bool operator<(Format const & a, Format const & b); + /// class Formats { public: @@ -114,7 +132,7 @@ public: * \returns file format if it could be found, otherwise an empty * string. */ - std::string getFormatFromFile(std::string const & filename) const; + std::string getFormatFromFile(support::FileName const & filename) const; /// Set editor and/or viewer to "auto" for formats that can be /// opened by the OS. void setAutoOpen(); @@ -126,7 +144,7 @@ public: void add(std::string const & name, std::string const & extension, std::string const & prettyname, std::string const & shortcut, std::string const & viewer, std::string const & editor, - bool document); + int flags); /// void erase(std::string const & name); /// @@ -134,27 +152,21 @@ public: /// void setViewer(std::string const & name, std::string const & command); /// - bool view(Buffer const & buffer, std::string const & filename, + bool view(Buffer const & buffer, support::FileName const & filename, std::string const & format_name) const; /// - bool edit(Buffer const & buffer, std::string const & filename, + bool edit(Buffer const & buffer, support::FileName const & filename, std::string const & format_name) const; /// - lyx::docstring const prettyName(std::string const & name) const; + docstring const prettyName(std::string const & name) const; /// std::string const extension(std::string const & name) const; /// - const_iterator begin() const { - return formatlist.begin(); - } + const_iterator begin() const { return formatlist.begin(); } /// - const_iterator end() const { - return formatlist.end(); - } + const_iterator end() const { return formatlist.end(); } /// - FormatList::size_type size() const { - return formatlist.size(); - } + FormatList::size_type size() const { return formatlist.size(); } private: /// FormatList formatlist; @@ -164,4 +176,7 @@ extern Formats formats; extern Formats system_formats; + +} // namespace lyx + #endif //FORMAT_H