mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 20:47:44 +00:00
63 lines
1.9 KiB
C++
63 lines
1.9 KiB
C++
/* 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_dom_ScreenOrientation_h
|
|
#define mozilla_dom_ScreenOrientation_h
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
// Make sure that any change here is also made in
|
|
// * mobile/android/base/GeckoScreenOrientationListener.java
|
|
// * embedding/android/GeckoScreenOrientationListener.java
|
|
enum ScreenOrientation {
|
|
eScreenOrientation_None = 0,
|
|
eScreenOrientation_PortraitPrimary = 1, // 00000001
|
|
eScreenOrientation_PortraitSecondary = 2, // 00000010
|
|
eScreenOrientation_Portrait = 3, // 00000011
|
|
eScreenOrientation_LandscapePrimary = 4, // 00000100
|
|
eScreenOrientation_LandscapeSecondary = 8, // 00001000
|
|
eScreenOrientation_Landscape = 12, // 00001100
|
|
eScreenOrientation_EndGuard
|
|
};
|
|
|
|
/**
|
|
* ScreenOrientationWrapper is a class wrapping ScreenOrientation so it can be
|
|
* used with Observer<T> which is taking a class, not an enum.
|
|
* C++11 should make this useless.
|
|
*/
|
|
class ScreenOrientationWrapper {
|
|
public:
|
|
ScreenOrientationWrapper()
|
|
: orientation(eScreenOrientation_None)
|
|
{}
|
|
|
|
ScreenOrientationWrapper(ScreenOrientation aOrientation)
|
|
: orientation(aOrientation)
|
|
{}
|
|
|
|
ScreenOrientation orientation;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
namespace IPC {
|
|
|
|
/**
|
|
* Screen orientation serializer.
|
|
* Note that technically, 5, 6, 7, 9, 10 and 11 are illegal values but will
|
|
* not make the serializer to fail. We might want to write our own serializer.
|
|
*/
|
|
template <>
|
|
struct ParamTraits<mozilla::dom::ScreenOrientation>
|
|
: public EnumSerializer<mozilla::dom::ScreenOrientation,
|
|
mozilla::dom::eScreenOrientation_None,
|
|
mozilla::dom::eScreenOrientation_EndGuard>
|
|
{};
|
|
|
|
} // namespace IPC
|
|
|
|
#endif // mozilla_dom_ScreenOrientation_h
|