Home | History | Annotate | Download | only in android
      1 /*
      2  * Copyright 2009, The Android Open Source Project
      3  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  * 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  *
     14  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
     15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
     18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     25  */
     26 
     27 #define LOG_TAG "WebCore"
     28 
     29 #include "config.h"
     30 #include "Screen.h"
     31 
     32 // This include must come first.
     33 #undef LOG // FIXME: Still have to do this to get the log to show up
     34 #include "utils/Log.h"
     35 
     36 #include "FloatRect.h"
     37 #include "Widget.h"
     38 #include <ui/DisplayInfo.h>
     39 #include <ui/PixelFormat.h>
     40 #include <surfaceflinger/SurfaceComposerClient.h>
     41 #include "ScrollView.h"
     42 #include "WebCoreViewBridge.h"
     43 
     44 namespace WebCore {
     45 
     46 int screenDepth(Widget* page)
     47 {
     48     android::DisplayInfo info;
     49     android::SurfaceComposerClient::getDisplayInfo(android::DisplayID(0), &info);
     50     return info.pixelFormatInfo.bitsPerPixel;
     51 }
     52 
     53 int screenDepthPerComponent(Widget* page)
     54 {
     55     android::DisplayInfo info;
     56     android::SurfaceComposerClient::getDisplayInfo(android::DisplayID(0), &info);
     57     return info.pixelFormatInfo.bitsPerPixel;
     58 }
     59 
     60 bool screenIsMonochrome(Widget* page)
     61 {
     62     return false;
     63 }
     64 
     65 // The only place I have seen these values used is
     66 // positioning popup windows. If we support multiple windows
     67 // they will be most likely full screen. Therefore,
     68 // the accuracy of these number are not too important.
     69 FloatRect screenRect(Widget* page)
     70 {
     71     IntRect rect = page->root()->platformWidget()->getBounds();
     72     return FloatRect(0.0, 0.0, rect.width(), rect.height());
     73 }
     74 
     75 // Similar screenRect, this function is commonly used by javascripts
     76 // to position and resize windows (usually to full screen).
     77 FloatRect screenAvailableRect(Widget* page)
     78 {
     79     IntRect rect = page->root()->platformWidget()->getBounds();
     80     return FloatRect(0.0, 0.0, rect.width(), rect.height());
     81 }
     82 
     83 } // namespace WebCore
     84