#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.
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
*/
-namespace lyx {
-
-/** Used to insert index labels
- */
-class InsetInfo : public InsetText {
+class InsetInfo : public InsetCollapsable {
public:
enum info_type {
UNKNOWN_INFO, // Invalid type
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);
///
///
std::string infoName() const { return name_; }
///
- bool validate(docstring const & argument) const;
+ bool validateModifyArgument(docstring const & argument) const;
///
bool showInsetDialog(BufferView * bv) const;
///
///
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;
+ std::string contextMenu(BufferView const &, int, int) const;
+ ///
+ std::string 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