* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author none
- * \author Lars Gullik Bjønnes
+ * \author Peter Kümmel
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
#ifndef DISPATCH_RESULT_H
#define DISPATCH_RESULT_H
-#include "UpdateFlags.h"
+#include "update_flags.h"
+
+#include "support/docstring.h"
namespace lyx {
-/// Maybe this can go entirely
-class DispatchResult {
+
+class DispatchResult
+{
public:
///
- DispatchResult() : dispatched_(false), update_(Update::None) {}
+ DispatchResult() = default;
+ ///
+ DispatchResult(bool dispatched, Update::flags f) :
+ dispatched_(dispatched), update_(f) {}
///
- 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_; }
+ bool error() const { return error_; }
+ ///
+ void setError(bool e) { error_ = e; }
+ ///
+ docstring message() const { return message_; }
+ ///
+ void setMessage(docstring const & m) { message_ = m; }
///
- void update(Update::flags f) { update_ = f; }
+ void setMessage(std::string const & m) { message_ = from_utf8(m); }
+ ///
+ Update::flags screenUpdate() const { return update_; }
+ ///
+ void screenUpdate(Update::flags f) { update_ = f; }
+ /// Does the buffer need updating?
+ bool needBufferUpdate() const { return need_buf_update_; }
+ /// Force the buffer to be updated
+ void forceBufferUpdate() { need_buf_update_ = true; }
+ /// Clear the flag indicating we need an update
+ void clearBufferUpdate() { need_buf_update_ = false; }
+ /// Do we need to display a message in the status bar?
+ bool needMessageUpdate() const { return need_msg_update_; }
+ /// Force the message to be displayed
+ void forceMessageUpdate() { need_msg_update_ = true; }
+ /// Clear the flag indicating we need to display the message
+ void clearMessageUpdate() { need_msg_update_ = false; }
+
private:
/// was the event fully dispatched?
- bool dispatched_;
+ bool dispatched_ = false;
+ /// was there an error?
+ bool error_ = false;
/// do we need to redraw the screen afterwards?
- Update::flags update_;
+ Update::flags update_ = Update::None;
+ ///
+ docstring message_;
+ ///
+ bool need_buf_update_ = false;
+ ///
+ bool need_msg_update_ = true;
};