#ifndef DISPATCH_RESULT_H
#define DISPATCH_RESULT_H
-/** Dispatch result codes
- DISPATCHED = the inset catched the action
- DISPATCHED_NOUPDATE = the inset catched the action and no update
- is needed here to redraw the inset
- FINISHED = the inset must be unlocked as a result
- of the action
- FINISHED_RIGHT = FINISHED, but put the cursor to the RIGHT of
- the inset.
- FINISHED_UP = FINISHED, but put the cursor UP of
- the inset.
- FINISHED_DOWN = FINISHED, but put the cursor DOWN of
- the inset.
- UNDISPATCHED = the action was not catched, it should be
- dispatched by lower level insets
-*/
-enum dispatch_result_t {
- UNDISPATCHED = 0,
- DISPATCHED,
- DISPATCHED_NOUPDATE,
- FINISHED,
- FINISHED_RIGHT,
- FINISHED_UP,
- FINISHED_DOWN,
- DISPATCHED_POP
-};
+#include "UpdateFlags.h"
-/** \c DispatchResult is a wrapper for dispatch_result_t.
- * It can be forward-declared and passed as a function argument without
- * having to expose insetbase.h.
- */
+namespace lyx {
+
+/// Maybe this can go entirely
class DispatchResult {
- dispatch_result_t val_;
public:
- DispatchResult()
- : val_(UNDISPATCHED) {}
- DispatchResult(dispatch_result_t val) : val_(val) {}
- operator dispatch_result_t() const{ return val_; }
+ ///
+ DispatchResult() : dispatched_(false), update_(Update::None) {}
+ ///
+ DispatchResult(bool disp, Update::flags f) : dispatched_(disp), update_(f) {}
+ //
+ bool dispatched() const { return dispatched_; }
+ ///
+ void dispatched(bool disp) { dispatched_ = disp; }
+ ///
+ Update::flags update() const { return update_; }
+ ///
+ void update(Update::flags f) { update_ = f; }
+private:
+ /// was the event fully dispatched?
+ bool dispatched_;
+ /// do we need to redraw the screen afterwards?
+ Update::flags update_;
};
+
+} // namespace lyx
+
#endif // DISPATCH_RESULT_H