/* 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/DimensionRequest.h" #include "mozilla/GfxMessageUtils.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; }; template <> struct ParamTraits : ContiguousEnumSerializer { using IdType = std::underlying_type_t; }; template <> struct ParamTraits : ContiguousEnumSerializerInclusive< mozilla::widget::TransparencyMode, mozilla::widget::TransparencyMode::Opaque, mozilla::widget::TransparencyMode::Transparent> {}; template <> struct ParamTraits : ContiguousEnumSerializer {}; template <> struct ParamTraits : ContiguousEnumSerializerInclusive< nsIWidget::TouchpadGesturePhase, nsIWidget::TouchpadGesturePhase::PHASE_BEGIN, nsIWidget::TouchpadGesturePhase::PHASE_END> {}; template <> struct ParamTraits : public BitFlagsEnumSerializer {}; template <> struct ParamTraits : public ContiguousEnumSerializerInclusive { }; DEFINE_IPC_SERIALIZER_WITH_FIELDS(mozilla::DimensionRequest, mDimensionKind, mX, mY, mWidth, mHeight); } // namespace IPC #endif // WidgetMessageUtils_h