blob: 5b9075a9700e139be88204d819849d3601ebf9fa [file] [log] [blame]
ggaren52fd1072006-11-06 23:56:59 +00001/*
weinigb8d23232007-06-19 00:08:29 +00002 * Copyright (C) 2007 Apple Inc. All rights reserved.
ggaren52fd1072006-11-06 23:56:59 +00003 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
ggaren52fd1072006-11-06 23:56:59 +00007 *
weinig8b5bc0d2007-06-19 02:03:22 +00008 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
mjs@apple.com92047332014-03-15 04:08:27 +000013 * 3. Neither the name of Apple Inc. ("Apple") nor the names of
weinig8b5bc0d2007-06-19 02:03:22 +000014 * its contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ggaren52fd1072006-11-06 23:56:59 +000027 */
28
weinig8b5bc0d2007-06-19 02:03:22 +000029
ggaren52fd1072006-11-06 23:56:59 +000030#ifndef Screen_h
31#define Screen_h
32
abarth@webkit.org84fe60e2012-01-07 08:46:38 +000033#include "DOMWindowProperty.h"
eric@webkit.org1373a742012-11-18 03:37:49 +000034#include "ScriptWrappable.h"
ggaren@apple.com58ea1c12007-11-14 02:05:26 +000035#include <wtf/RefCounted.h>
achristensen@apple.com964a6252016-08-15 17:21:13 +000036#include <wtf/Ref.h>
ggaren52fd1072006-11-06 23:56:59 +000037
38namespace WebCore {
39
simon.fraser@apple.com5c745732014-10-31 23:21:36 +000040class Frame;
ggaren52fd1072006-11-06 23:56:59 +000041
simon.fraser@apple.com5c745732014-10-31 23:21:36 +000042class Screen final : public ScriptWrappable, public RefCounted<Screen>, public DOMWindowProperty {
43public:
gyuyoung.kim@webkit.org1b1e5fa2015-05-11 05:53:20 +000044 static Ref<Screen> create(Frame* frame) { return adoptRef(*new Screen(frame)); }
dglazkov@chromium.orgf777f3b2009-03-30 14:49:39 +000045
simon.fraser@apple.com5c745732014-10-31 23:21:36 +000046 unsigned height() const;
47 unsigned width() const;
48 unsigned colorDepth() const;
49 unsigned pixelDepth() const;
50 int availLeft() const;
51 int availTop() const;
52 unsigned availHeight() const;
53 unsigned availWidth() const;
ggaren52fd1072006-11-06 23:56:59 +000054
simon.fraser@apple.com5c745732014-10-31 23:21:36 +000055private:
56 explicit Screen(Frame*);
57};
ggaren52fd1072006-11-06 23:56:59 +000058
59} // namespace WebCore
60
61#endif // Screen_h