Adam Barth 8031ab6bd7 Add padding values to View.idl
Rather than hardcoding the size and presence of the notification area in Dart,
we now expose padding values on the view. These values are set to non-zero
values when there are UI elements that overlap the view. We currently respect
only the top padding, but this CL paves the way to respect padding in other
directions.

We still hardcode the size of the notification area in Java. A future CL will
retrieve this value from the Android framework.

Fixes #257

R=ianh@google.com

Review URL: https://codereview.chromium.org/1220353002.
2015-07-06 10:56:02 -07:00

65 lines
2.2 KiB
C++

// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SKY_ENGINE_CORE_VIEW_VIEW_H_
#define SKY_ENGINE_CORE_VIEW_VIEW_H_
#include "base/callback.h"
#include "base/time/time.h"
#include "sky/engine/core/html/VoidCallback.h"
#include "sky/engine/core/painting/Picture.h"
#include "sky/engine/core/view/EventCallback.h"
#include "sky/engine/core/view/FrameCallback.h"
#include "sky/engine/public/platform/sky_display_metrics.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace blink {
class View : public RefCounted<View>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
~View() override;
static PassRefPtr<View> create(const base::Closure& scheduleFrameCallback);
double devicePixelRatio() const { return m_displayMetrics.device_pixel_ratio; }
double paddingTop() const { return m_displayMetrics.padding_top; }
double paddingRight() const { return m_displayMetrics.padding_right; }
double paddingBottom() const { return m_displayMetrics.padding_bottom; }
double paddingLeft() const { return m_displayMetrics.padding_left; }
double width() const;
double height() const;
Picture* picture() const { return m_picture.get(); }
void setPicture(Picture* picture) { m_picture = picture; }
void setEventCallback(PassOwnPtr<EventCallback> callback);
void setMetricsChangedCallback(PassOwnPtr<VoidCallback> callback);
void setFrameCallback(PassOwnPtr<FrameCallback> callback);
void scheduleFrame();
void setDisplayMetrics(const SkyDisplayMetrics& metrics);
void handleInputEvent(PassRefPtr<Event> event);
void beginFrame(base::TimeTicks frameTime);
private:
explicit View(const base::Closure& scheduleFrameCallback);
base::Closure m_scheduleFrameCallback;
SkyDisplayMetrics m_displayMetrics;
OwnPtr<EventCallback> m_eventCallback;
OwnPtr<VoidCallback> m_metricsChangedCallback;
OwnPtr<FrameCallback> m_frameCallback;
RefPtr<Picture> m_picture;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_VIEW_VIEW_H_