00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef VIEWEVENTS_H
00026 #define VIEWEVENTS_H
00027
00028
00029 #include "mvcevent.h"
00030 #include "mvccontainers.h"
00031
00032
00033 class QObject;
00034
00035 class AbstractController;
00036 class AbstractModel;
00037
00038
00053 class VEvent : public MvcEvent {
00054 public:
00055 enum Type {
00056 ChangeController = MvcEvent::User,
00057 ModelChanged,
00058 Reset,
00059 User = MvcEvent::User + 1000
00060 };
00061
00062 VEvent( Type type, MvcBase* sender )
00063 : MvcEvent((MvcEvent::Type)type),
00064 m_sender(sender) {}
00065
00067 inline static DestType classDestType() { return View; }
00069 virtual DestType destType() const { return classDestType(); }
00070
00071 MvcBase* sender() const { return m_sender; }
00072
00073 private:
00074
00075 MvcBase* m_sender;
00076 };
00077
00078
00079 class VChangeControllerEvent : public VEvent, public AbstractControllerContainer {
00080 public:
00081 VChangeControllerEvent( AbstractController* controller, MvcBase* sender )
00082 : VEvent(ChangeController, sender),
00083 AbstractControllerContainer(controller) {}
00084 };
00085
00086
00087 class VModelChangedEvent : public VEvent, public AbstractModelContainer {
00088 public:
00089 VModelChangedEvent( AbstractModel* model, MvcBase* sender )
00090 : VEvent(ModelChanged, sender),
00091 AbstractModelContainer(model) {}
00092 };
00093
00094
00095 #endif // ! VIEWEVENTS_H