]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetInfo.h
Better TOC output for XHTML, per Rob and Pavel.
[lyx.git] / src / insets / InsetInfo.h
index 57e7b8442d6165932adddf09aa5fa8d416c89aa9..44bc7b2bf3554b652a6b6f3313b866a203ae7cfc 100644 (file)
 #ifndef INSET_INFO_H
 #define INSET_INFO_H
 
-#include "InsetText.h"
-#include "RenderButton.h"
-#include "Cursor.h"
+#include "InsetCollapsable.h"
 
-#include "support/gettext.h"
-#include "support/Translator.h"
+namespace lyx {
+
+class Cursor;
 
 /* InsetInfo displays shortcuts, lyxrc, package and textclass
 availability and menu information in a non-editable boxed InsetText.
@@ -61,6 +60,9 @@ icon: argument is the name of the LFUN such as "paste". The syntax is the same
 
 buffer: argument can be one of "name", "path", "class". This inset output the
     filename, path, and textclass of this buffer.
+               
+lyxinfo: argument must (presently) be "version". This inset outputs information 
+               about the version of LyX currently in use.
 
 There is currently no GUI, no menu entry for this inset. A user can define a
 shortcut for "info-insert" (e.g. C-S-I), and
@@ -74,11 +76,7 @@ the command buffer (view->Toolbar->Command Buffer).
 
 */
 
-namespace lyx {
-
-/** Used to insert index labels
-  */
-class InsetInfo : public InsetText {
+class InsetInfo : public InsetCollapsable {
 public:
        enum info_type {
                UNKNOWN_INFO,   // Invalid type
@@ -90,16 +88,21 @@ public:
                MENU_INFO,      // Which menu item is used for certain function
                ICON_INFO,      // which toolbar icon is used for certain function
                BUFFER_INFO,    // Buffer related information
+               LYX_INFO        // LyX version information
        };
 
        ///
-       InsetInfo(Buffer const & buf, std::string const & info = std::string());
+       InsetInfo(Buffer * buf, std::string const & info = std::string());
+       ///
+       InsetCode lyxCode() const { return INFO_CODE; }
+       ///
+       docstring layoutName() const;
        ///
        Inset * editXY(Cursor & cur, int x, int y);
        ///
-       EDITABLE editable() const { return NOT_EDITABLE; }
+       bool editable() const { return false; }
        ///
-       void draw(PainterInfo & pi, int x, int y) const;
+       bool hasSettings() const { return true; }
        ///
        void read(Lexer & lex);
        ///
@@ -109,7 +112,7 @@ public:
        ///
        std::string infoName() const { return name_; }
        ///
-       bool validate(std::string const & argument) const;
+       bool validateModifyArgument(docstring const & argument) const;
        ///
        bool showInsetDialog(BufferView * bv) const;
        ///
@@ -117,33 +120,34 @@ public:
        ///
        void doDispatch(Cursor & cur, FuncRequest & cmd);
        ///
-       InsetCode lyxCode() const { return INFO_CODE; }
-       ///
        void setInfo(std::string const & info);
        /// update info_ and text
        void updateInfo();
        ///
-       bool setMouseHover(bool mouse_hover);
-       ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///
        docstring contextMenu(BufferView const &, int, int) const;
+       ///
+       docstring contextMenuName() const;
+       /// should paragraph indendation be ommitted in any case?
+       bool neverIndent() const { return true; }
 
 private:
-       /// The translator between the information type enum and corresponding string.
-       Translator<info_type, std::string> const & nameTranslator() const;
        ///
        virtual Inset * clone() const { return new InsetInfo(*this); }
        ///
+       void error(std::string const & err);
+       ///
+       void setText(docstring const & str);
+       // make sure that the other version of setText is still available.
+       using InsetCollapsable::setText;
+       ///
        info_type type_;
        ///
        std::string name_;
-       ///
-       bool mouse_hover_;
 };
 
 
-
 } // namespace lyx
 
 #endif