Mercurial > octave-nkf
diff gui/src/octave-adapter/octave-event.h @ 14718:3df7ef0080c7 gui
Added event based processing and implement exit and change directory event.
* octave-event-observer.h: Implements observer part for the observer pattern.
* main-window.cc: Posting events instead of emulating keypresses.
* octave-event.h: Added new event types.
* octave-link: Subclassed octave_event_observer and implemented events.
* src.pro: Added file for tracking.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Mon, 04 Jun 2012 01:42:58 +0200 |
parents | 4ff6c21c18c4 |
children | 89c64340e9ab |
line wrap: on
line diff
--- a/gui/src/octave-adapter/octave-event.h Sat Jun 02 16:38:36 2012 +0200 +++ b/gui/src/octave-adapter/octave-event.h Mon Jun 04 01:42:58 2012 +0200 @@ -18,6 +18,9 @@ #ifndef OCTAVEEVENT_H #define OCTAVEEVENT_H +#include <string> +#include "octave-event-observer.h" + /** * \class octave_event * \brief Base class for an octave event. @@ -25,15 +28,58 @@ class octave_event { public: - octave_event () + enum event_type { + exit_event, + change_directory_event + }; - } + octave_event (const octave_event_observer& o) + : _octave_event_observer (o) + { } virtual ~octave_event () - { + { } + + virtual event_type get_event_type () const = 0; + + void accept () + { _octave_event_observer.event_accepted (this); } + + void ignore () + { _octave_event_observer.event_ignored (this); } + + private: + const octave_event_observer& _octave_event_observer; +}; + +class octave_exit_event : public octave_event +{ + public: + octave_exit_event (const octave_event_observer& o) + : octave_event (o) + { } - } + event_type get_event_type () const + { return octave_event::exit_event; } +}; + +class octave_change_directory_event : public octave_event +{ + public: + octave_change_directory_event (const octave_event_observer& o, + std::string directory) + : octave_event (o) + { _directory = directory; } + + event_type get_event_type () const + { return octave_event::change_directory_event; } + + std::string get_directory () const + { return _directory; } + + private: + std::string _directory; }; #endif // OCTAVEEVENT_H