1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef mozilla_WidgetMessageUtils_h
6 #define mozilla_WidgetMessageUtils_h
8 #include "ipc/EnumSerializer.h"
9 #include "ipc/IPCMessageUtils.h"
10 #include "mozilla/LookAndFeel.h"
11 #include "mozilla/widget/ThemeChangeKind.h"
12 #include "nsIWidget.h"
13 #include "nsStyleConsts.h"
18 struct ParamTraits
<mozilla::widget::ThemeChangeKind
>
19 : public BitFlagsEnumSerializer
<mozilla::widget::ThemeChangeKind
,
20 mozilla::widget::ThemeChangeKind::AllBits
> {
24 struct ParamTraits
<mozilla::LookAndFeel::IntID
>
25 : ContiguousEnumSerializer
<mozilla::LookAndFeel::IntID
,
26 mozilla::LookAndFeel::IntID(0),
27 mozilla::LookAndFeel::IntID::End
> {
28 using IdType
= std::underlying_type_t
<mozilla::LookAndFeel::IntID
>;
32 struct ParamTraits
<mozilla::LookAndFeel::ColorID
>
33 : ContiguousEnumSerializer
<mozilla::LookAndFeel::ColorID
,
34 mozilla::LookAndFeel::ColorID(0),
35 mozilla::LookAndFeel::ColorID::End
> {
36 using IdType
= std::underlying_type_t
<mozilla::LookAndFeel::ColorID
>;
40 struct ParamTraits
<nsTransparencyMode
>
41 : ContiguousEnumSerializerInclusive
<nsTransparencyMode
, eTransparencyOpaque
,
42 eTransparencyBorderlessGlass
> {};
45 struct ParamTraits
<nsCursor
>
46 : ContiguousEnumSerializer
<nsCursor
, eCursor_standard
, eCursorCount
> {};
49 struct ParamTraits
<nsIWidget::TouchpadGesturePhase
>
50 : ContiguousEnumSerializerInclusive
<
51 nsIWidget::TouchpadGesturePhase
,
52 nsIWidget::TouchpadGesturePhase::PHASE_BEGIN
,
53 nsIWidget::TouchpadGesturePhase::PHASE_END
> {};
56 struct ParamTraits
<nsIWidget::TouchPointerState
>
57 : public BitFlagsEnumSerializer
<nsIWidget::TouchPointerState
,
58 nsIWidget::TouchPointerState::ALL_BITS
> {};
62 #endif // WidgetMessageUtils_h