blob: 2624f1a13e0d74f90fa7dffe7117d32b48c272b2 [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.
13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14 * 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"
andersca@apple.com965cf1c2008-02-20 23:54:37 +000034#include <wtf/PassRefPtr.h>
ggaren@apple.com58ea1c12007-11-14 02:05:26 +000035#include <wtf/RefCounted.h>
ggaren52fd1072006-11-06 23:56:59 +000036
37namespace WebCore {
38
weinigb8d23232007-06-19 00:08:29 +000039 class Frame;
ggaren52fd1072006-11-06 23:56:59 +000040
abarth@webkit.org84fe60e2012-01-07 08:46:38 +000041 class Screen : public RefCounted<Screen>, public DOMWindowProperty {
weinigb8d23232007-06-19 00:08:29 +000042 public:
andersca@apple.com965cf1c2008-02-20 23:54:37 +000043 static PassRefPtr<Screen> create(Frame *frame) { return adoptRef(new Screen(frame)); }
dglazkov@chromium.orgf777f3b2009-03-30 14:49:39 +000044
fsamuel@chromium.orga33350a2011-12-08 03:03:47 +000045 unsigned horizontalDPI() const;
46 unsigned verticalDPI() const;
weinigb8d23232007-06-19 00:08:29 +000047 unsigned height() const;
48 unsigned width() const;
49 unsigned colorDepth() const;
50 unsigned pixelDepth() const;
simon.fraser@apple.com09d6f082010-10-12 21:06:01 +000051 int availLeft() const;
52 int availTop() const;
weinigb8d23232007-06-19 00:08:29 +000053 unsigned availHeight() const;
54 unsigned availWidth() const;
ggaren52fd1072006-11-06 23:56:59 +000055
weinigb8d23232007-06-19 00:08:29 +000056 private:
abarth@webkit.org84fe60e2012-01-07 08:46:38 +000057 explicit Screen(Frame*);
weinigb8d23232007-06-19 00:08:29 +000058 };
ggaren52fd1072006-11-06 23:56:59 +000059
60} // namespace WebCore
61
62#endif // Screen_h