fcfbc75780fb020a66eb2b6f028a659cafd80a91
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / public / platform / WebLockOrientationCallback.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef WebLockOrientationCallback_h
6 #define WebLockOrientationCallback_h
7
8 #include "public/platform/WebLockOrientationError.h"
9 #include "public/platform/WebScreenOrientationType.h"
10
11 namespace blink {
12
13 // WebScreenOrientationType is an interface to be used by the embedder in order
14 // to inform Blink when a screen lock operation has succeeded or failed.
15 // A success notification comes with the new orientation angle and orientation
16 // type and a failure notification comes with an information about the type of
17 // failure.
18 class WebLockOrientationCallback {
19 public:
20     enum ErrorType {
21         ErrorTypeNotAvailable, // If locking isn't available on the platform.
22         ErrorTypeFullScreenRequired, // If fullscreen is required to lock.
23         ErrorTypeCanceled, // If another lock/unlock got called before that one ended.
24     };
25
26     virtual ~WebLockOrientationCallback() { }
27
28     virtual void onSuccess(unsigned angle, WebScreenOrientationType) = 0;
29
30     // FIXME: those methods are defined and not virtual pure to not break the
31     // embedder during the transition period.
32     virtual void onError(ErrorType) { }
33     virtual void onError(WebLockOrientationError) { }
34 };
35
36 } // namespace blink
37
38 #endif // WebLockOrientationCallback_h