/* 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_WidgetMessageUtils_h #define mozilla_WidgetMessageUtils_h #include "ipc/EnumSerializer.h" #include "ipc/IPCMessageUtils.h" #include "mozilla/LookAndFeel.h" #include "mozilla/widget/ThemeChangeKind.h" #include "nsIWidget.h" #include "nsStyleConsts.h" namespace IPC { template <> struct ParamTraits : public BitFlagsEnumSerializer { }; template <> struct ParamTraits : ContiguousEnumSerializer { using IdType = std::underlying_type_t; static_assert(static_cast( mozilla::LookAndFeel::IntID::CaretBlinkTime) == IdType(0)); }; template <> struct ParamTraits : ContiguousEnumSerializer { using IdType = std::underlying_type_t; static_assert( static_cast(mozilla::LookAndFeel::ColorID::WindowBackground) == IdType(0)); }; template <> struct ParamTraits : ContiguousEnumSerializerInclusive {}; template <> struct ParamTraits : ContiguousEnumSerializer {}; template <> struct ParamTraits : ContiguousEnumSerializerInclusive< nsIWidget::TouchpadPinchPhase, nsIWidget::TouchpadPinchPhase::PHASE_BEGIN, nsIWidget::TouchpadPinchPhase::PHASE_END> {}; template <> struct ParamTraits : public BitFlagsEnumSerializer {}; } // namespace IPC #endif // WidgetMessageUtils_h