// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_EVENT_TYPES_H
#define BASE_EVENT_TYPES_H

#include "build/build_config.h"

#if defined(OS_WIN)
#include <windows.h>
#elif defined(USE_X11)
typedef union _XEvent XEvent;
#elif defined(OS_MACOSX)
#if defined(__OBJC__)
@class NSEvent;
#else  // __OBJC__
class NSEvent;
#endif // __OBJC__
#endif

namespace base {

// Cross platform typedefs for native event types.
#if defined(OS_WIN)
typedef MSG NativeEvent;
#elif defined(USE_X11)
typedef XEvent* NativeEvent;
#elif defined(OS_MACOSX)
typedef NSEvent* NativeEvent;
#else
typedef void* NativeEvent;
#endif

} // namespace base

#endif  // BASE_EVENT_TYPES_H
