Mercurial > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
14716:572a707408b2 | 14718:3df7ef0080c7 |
---|---|
16 */ | 16 */ |
17 | 17 |
18 #ifndef OCTAVEEVENT_H | 18 #ifndef OCTAVEEVENT_H |
19 #define OCTAVEEVENT_H | 19 #define OCTAVEEVENT_H |
20 | 20 |
21 #include <string> | |
22 #include "octave-event-observer.h" | |
23 | |
21 /** | 24 /** |
22 * \class octave_event | 25 * \class octave_event |
23 * \brief Base class for an octave event. | 26 * \brief Base class for an octave event. |
24 */ | 27 */ |
25 class octave_event | 28 class octave_event |
26 { | 29 { |
27 public: | 30 public: |
28 octave_event () | 31 enum event_type |
29 { | 32 { |
33 exit_event, | |
34 change_directory_event | |
35 }; | |
30 | 36 |
31 } | 37 octave_event (const octave_event_observer& o) |
38 : _octave_event_observer (o) | |
39 { } | |
32 | 40 |
33 virtual ~octave_event () | 41 virtual ~octave_event () |
34 { | 42 { } |
35 | 43 |
36 } | 44 virtual event_type get_event_type () const = 0; |
45 | |
46 void accept () | |
47 { _octave_event_observer.event_accepted (this); } | |
48 | |
49 void ignore () | |
50 { _octave_event_observer.event_ignored (this); } | |
51 | |
52 private: | |
53 const octave_event_observer& _octave_event_observer; | |
54 }; | |
55 | |
56 class octave_exit_event : public octave_event | |
57 { | |
58 public: | |
59 octave_exit_event (const octave_event_observer& o) | |
60 : octave_event (o) | |
61 { } | |
62 | |
63 event_type get_event_type () const | |
64 { return octave_event::exit_event; } | |
65 }; | |
66 | |
67 class octave_change_directory_event : public octave_event | |
68 { | |
69 public: | |
70 octave_change_directory_event (const octave_event_observer& o, | |
71 std::string directory) | |
72 : octave_event (o) | |
73 { _directory = directory; } | |
74 | |
75 event_type get_event_type () const | |
76 { return octave_event::change_directory_event; } | |
77 | |
78 std::string get_directory () const | |
79 { return _directory; } | |
80 | |
81 private: | |
82 std::string _directory; | |
37 }; | 83 }; |
38 | 84 |
39 #endif // OCTAVEEVENT_H | 85 #endif // OCTAVEEVENT_H |