Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: Source/modules/screen_orientation/ScreenOrientationController.h

Issue 132113006: Add initial Blink-side support for the Screen Orientation API (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update compile-time assertion for matching enum Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 ScreenOrientationController_h
6 #define ScreenOrientationController_h
7
8 #include "core/page/Page.h"
9 #include "modules/screen_orientation/ScreenOrientation.h"
10 #include "wtf/PassRefPtr.h"
11
12 namespace WebCore {
13
14 class ScreenOrientationClient;
15
16 class ScreenOrientationController : public Supplement<Page> {
17 WTF_MAKE_NONCOPYABLE(ScreenOrientationController);
18 public:
19 static PassOwnPtr<ScreenOrientationController> create(ScreenOrientationClien t*);
20 virtual ~ScreenOrientationController();
21
22 void addObserver(ScreenOrientation*);
23 void removeObserver(ScreenOrientation*);
24
25 // API for Supplement<Page>.
26 static const char* supplementName();
27 static ScreenOrientationController* from(Page* page) { return static_cast<Sc reenOrientationController*>(Supplement<Page>::from(page, supplementName())); }
28 static ScreenOrientationClient* clientFrom(Page*);
29
30 void orientationChanged(ScreenOrientationValue);
31 ScreenOrientationValue orientation() const { return m_orientation; }
32
33 void setClientForTest(ScreenOrientationClient*);
34 bool hasClientForTest() { return m_hasClientForTest; }
35 ScreenOrientationClient* client() { return m_client; }
36
37 private:
38 explicit ScreenOrientationController(ScreenOrientationClient*);
39
40 ScreenOrientationClient* m_client;
41 ScreenOrientationValue m_orientation;
42 bool m_hasClientForTest;
43
44 typedef HashSet<ScreenOrientation*> ObserversSet;
45 ObserversSet m_observers;
46 };
47
48 void provideScreenOrientation(Page*, ScreenOrientationClient*);
49
50 } // namespace WebCore
51
52 #endif // ScreenOrientationController_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698