#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);