4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS
24 /** Dispatch result codes
25 DISPATCHED = the inset catched the action
26 DISPATCHED_NOUPDATE = the inset catched the action and no update
27 is needed here to redraw the inset
28 FINISHED = the inset must be unlocked as a result
30 FINISHED_RIGHT = FINISHED, but put the cursor to the RIGHT of
32 FINISHED_UP = FINISHED, but put the cursor UP of
34 FINISHED_DOWN = FINISHED, but put the cursor DOWN of
36 UNDISPATCHED = the action was not catched, it should be
37 dispatched by lower level insets
39 enum dispatch_result {
51 /// Common base class to all insets
55 typedef int difference_type;
56 /// short of anything else reasonable
57 typedef size_t size_type;
58 /// type for cell indices
59 typedef size_t idx_type;
60 /// type for cursor positions
61 typedef size_t pos_type;
62 /// type for row numbers
63 typedef size_t row_type;
64 /// type for column numbers
65 typedef size_t col_type;
67 // the real dispatcher
68 virtual dispatch_result dispatch
69 (FuncRequest const & cmd, idx_type & idx, pos_type & pos);
71 /// small wrapper for the time being
72 virtual dispatch_result localDispatch(FuncRequest const & cmd);
73 /// compute the size of the object returned in dim
74 virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
75 /// draw inset and update (xo, yo)-cache
76 virtual void draw(PainterInfo & pi, int x, int y) const = 0;
79 virtual ~InsetBase() {}
81 /// Methods to cache and retrieve a cached BufferView.
82 virtual void cache(BufferView *) const {}
84 virtual BufferView * view() const { return 0; }
85 /// request "external features"
86 virtual void validate(LaTeXFeatures &) const {}