forked from mirrors/gecko-dev
		
	We should not be declaring forward declarations for nsString classes directly, instead we should use nsStringFwd.h. This will make changing the underlying types easier. --HG-- extra : rebase_source : b2c7554e8632f078167ff2f609392e63a136c299
		
			
				
	
	
		
			175 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | 
						|
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
#ifndef mozilla_EventForwards_h__
 | 
						|
#define mozilla_EventForwards_h__
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
#include "nsStringFwd.h"
 | 
						|
#include "nsTArray.h"
 | 
						|
 | 
						|
/**
 | 
						|
 * XXX Following enums should be in BasicEvents.h.  However, currently, it's
 | 
						|
 *     impossible to use foward delearation for enum.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Return status for event processors.
 | 
						|
 */
 | 
						|
enum nsEventStatus
 | 
						|
{
 | 
						|
  // The event is ignored, do default processing
 | 
						|
  nsEventStatus_eIgnore,
 | 
						|
  // The event is consumed, don't do default processing
 | 
						|
  nsEventStatus_eConsumeNoDefault,
 | 
						|
  // The event is consumed, but do default processing
 | 
						|
  nsEventStatus_eConsumeDoDefault,
 | 
						|
  // Value is not for use, only for serialization
 | 
						|
  nsEventStatus_eSentinel
 | 
						|
};
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
 | 
						|
/**
 | 
						|
 * Event messages
 | 
						|
 */
 | 
						|
 | 
						|
typedef uint16_t EventMessageType;
 | 
						|
 | 
						|
enum EventMessage : EventMessageType
 | 
						|
{
 | 
						|
 | 
						|
#define NS_EVENT_MESSAGE(aMessage) aMessage,
 | 
						|
#define NS_EVENT_MESSAGE_FIRST_LAST(aMessage, aFirst, aLast) \
 | 
						|
  aMessage##First = aFirst, aMessage##Last = aLast,
 | 
						|
 | 
						|
#include "mozilla/EventMessageList.h"
 | 
						|
 | 
						|
#undef NS_EVENT_MESSAGE
 | 
						|
#undef NS_EVENT_MESSAGE_FIRST_LAST
 | 
						|
 | 
						|
  // For preventing bustage due to "," after the last item.
 | 
						|
  eEventMessage_MaxValue
 | 
						|
};
 | 
						|
 | 
						|
const char* ToChar(EventMessage aEventMessage);
 | 
						|
 | 
						|
/**
 | 
						|
 * Event class IDs
 | 
						|
 */
 | 
						|
 | 
						|
typedef uint8_t EventClassIDType;
 | 
						|
 | 
						|
enum EventClassID : EventClassIDType
 | 
						|
{
 | 
						|
  // The event class name will be:
 | 
						|
  //   eBasicEventClass for WidgetEvent
 | 
						|
  //   eFooEventClass for WidgetFooEvent or InternalFooEvent
 | 
						|
#define NS_ROOT_EVENT_CLASS(aPrefix, aName)   eBasic##aName##Class
 | 
						|
#define NS_EVENT_CLASS(aPrefix, aName)      , e##aName##Class
 | 
						|
 | 
						|
#include "mozilla/EventClassList.h"
 | 
						|
 | 
						|
#undef NS_EVENT_CLASS
 | 
						|
#undef NS_ROOT_EVENT_CLASS
 | 
						|
};
 | 
						|
 | 
						|
const char* ToChar(EventClassID aEventClassID);
 | 
						|
 | 
						|
typedef uint16_t Modifiers;
 | 
						|
 | 
						|
#define NS_DEFINE_KEYNAME(aCPPName, aDOMKeyName) \
 | 
						|
  KEY_NAME_INDEX_##aCPPName,
 | 
						|
 | 
						|
typedef uint16_t KeyNameIndexType;
 | 
						|
enum KeyNameIndex : KeyNameIndexType
 | 
						|
{
 | 
						|
#include "mozilla/KeyNameList.h"
 | 
						|
  // If a DOM keyboard event is synthesized by script, this is used.  Then,
 | 
						|
  // specified key name should be stored and use it as .key value.
 | 
						|
  KEY_NAME_INDEX_USE_STRING
 | 
						|
};
 | 
						|
 | 
						|
#undef NS_DEFINE_KEYNAME
 | 
						|
 | 
						|
const nsCString ToString(KeyNameIndex aKeyNameIndex);
 | 
						|
 | 
						|
#define NS_DEFINE_PHYSICAL_KEY_CODE_NAME(aCPPName, aDOMCodeName) \
 | 
						|
  CODE_NAME_INDEX_##aCPPName,
 | 
						|
 | 
						|
typedef uint8_t CodeNameIndexType;
 | 
						|
enum CodeNameIndex : CodeNameIndexType
 | 
						|
{
 | 
						|
#include "mozilla/PhysicalKeyCodeNameList.h"
 | 
						|
  // If a DOM keyboard event is synthesized by script, this is used.  Then,
 | 
						|
  // specified code name should be stored and use it as .code value.
 | 
						|
  CODE_NAME_INDEX_USE_STRING
 | 
						|
};
 | 
						|
 | 
						|
#undef NS_DEFINE_PHYSICAL_KEY_CODE_NAME
 | 
						|
 | 
						|
const nsCString ToString(CodeNameIndex aCodeNameIndex);
 | 
						|
 | 
						|
#define NS_DEFINE_COMMAND(aName, aCommandStr) , Command##aName
 | 
						|
 | 
						|
typedef int8_t CommandInt;
 | 
						|
enum Command : CommandInt
 | 
						|
{
 | 
						|
  CommandDoNothing
 | 
						|
 | 
						|
#include "mozilla/CommandList.h"
 | 
						|
};
 | 
						|
#undef NS_DEFINE_COMMAND
 | 
						|
 | 
						|
} // namespace mozilla
 | 
						|
 | 
						|
/**
 | 
						|
 * All header files should include this header instead of *Events.h.
 | 
						|
 */
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
 | 
						|
#define NS_EVENT_CLASS(aPrefix, aName) class aPrefix##aName;
 | 
						|
#define NS_ROOT_EVENT_CLASS(aPrefix, aName) NS_EVENT_CLASS(aPrefix, aName)
 | 
						|
 | 
						|
#include "mozilla/EventClassList.h"
 | 
						|
 | 
						|
#undef NS_EVENT_CLASS
 | 
						|
#undef NS_ROOT_EVENT_CLASS
 | 
						|
 | 
						|
// BasicEvents.h
 | 
						|
struct BaseEventFlags;
 | 
						|
struct EventFlags;
 | 
						|
 | 
						|
class WidgetEventTime;
 | 
						|
 | 
						|
class NativeEventData;
 | 
						|
 | 
						|
// TextEvents.h
 | 
						|
enum class AccessKeyType;
 | 
						|
 | 
						|
struct AlternativeCharCode;
 | 
						|
struct ShortcutKeyCandidate;
 | 
						|
 | 
						|
typedef nsTArray<ShortcutKeyCandidate> ShortcutKeyCandidateArray;
 | 
						|
typedef AutoTArray<ShortcutKeyCandidate, 10> AutoShortcutKeyCandidateArray;
 | 
						|
 | 
						|
// TextRange.h
 | 
						|
typedef uint8_t RawTextRangeType;
 | 
						|
enum class TextRangeType : RawTextRangeType;
 | 
						|
 | 
						|
struct TextRangeStyle;
 | 
						|
struct TextRange;
 | 
						|
 | 
						|
class EditCommands;
 | 
						|
class TextRangeArray;
 | 
						|
 | 
						|
// FontRange.h
 | 
						|
struct FontRange;
 | 
						|
 | 
						|
} // namespace mozilla
 | 
						|
 | 
						|
#endif // mozilla_EventForwards_h__
 |