#pragma once #include "rawuievent.hpp" #ifdef __INPUT_RAWCSAMEVENT_CPP_ #define RAW_CSAM_EVENT_DECL FDX_DLL_EXPORT #else #define RAW_CSAM_EVENT_DECL FDX_DLL_IMPORT #endif namespace Input { /** Common data for RawMouseEvent and RawKeyboardEvent */ class RawCSAMEvent : public RawUIEvent { public: RAW_CSAM_EVENT_DECL RawCSAMEvent(); RAW_CSAM_EVENT_DECL RawCSAMEvent(const parameter_strings & parms); RAW_CSAM_EVENT_DECL virtual ~RawCSAMEvent(); DECL_CLASS_COMMON_TYPES(RawCSAMEvent); RAW_CSAM_EVENT_DECL void initialize(const parameter_strings & parms); ///Give comparisons value semantics RAW_CSAM_EVENT_DECL bool operator==(RawCSAMEvent const& cmp) const; public: /** (from W3C DOM L3 Events) true if the 'Control' (control) key modifier was active. The uninitialized value of this attribute must be false. */ bool ctrlKey; /** (from W3C DOM L3 Events) true if the 'Alt' (alternative) or Option key modifier was active. The uninitialized value of this attribute must be false. */ bool altKey; /** true if the shift (Shift) key modifier was active. The uninitialized value of this attribute must be false. */ bool shiftKey; /** (from W3C DOM L3 Events) true if the meta (Meta) key modifier was active. Note: The 'Command' key modifier on Macintosh systems is represented using this key modifier. The uninitialized value of this attribute must be false */ bool metaKey; protected: friend class boost::serialization::access; template RAW_CSAM_EVENT_DECL void serialize(Archive &ar, const unsigned int version); //{ // ar & boost::serialization::base_object(*this); // ar & ctrlKey; // ar & altKey; // ar & shiftKey; // ar & metaKey; //} }; } BOOST_CLASS_EXPORT_KEY(Input::RawCSAMEvent);