3 * \file updatableinset.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Alejandro Aguilar Sierra
9 * \author Lars Gullik Bjønnes
10 * \author Matthias Ettrich
12 * Full author contact details are available in file CREDITS.
15 #ifndef UPDATABLEINSET_H
16 #define UPDATABLEINSET_H
18 // Updatable Insets. These insets can receive directly user interaction.
19 // Note that all pure methods from Inset class are pure here too.
24 class UpdatableInset : public InsetOld {
26 /// check if the font of the char we want inserting is correct
27 /// and modify it if it is not.
28 virtual bool checkInsertChar(LyXFont &) { return true; }
30 virtual EDITABLE editable() const;
32 /// return the cursor pos, relative to the inset pos
33 virtual void getCursorPos(int &, int &) const {}
34 /// return the cursor dim
35 virtual void getCursorDim(int &, int &) const;
37 virtual bool insertInset(BufferView *, InsetOld *) { return false; }
39 virtual int insetInInsetY() const { return 0; }
40 // We need this method to not clobber the real method in Inset
41 int scroll(bool recursive = true) const
42 { return InsetOld::scroll(recursive); }
44 virtual bool showInsetDialog(BufferView *) const { return false; }
46 virtual void toggleSelection(BufferView *, bool /*kill_selection*/) {}
49 /// An updatable inset could handle lyx editing commands
52 priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &);
53 /// scrolls to absolute position in bufferview-workwidth * sx units
54 void scroll(BufferView *, float sx) const;
55 /// scrolls offset pixels
56 void scroll(BufferView *, int offset) const;