mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
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.
65 lines
2.2 KiB
C++
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_
|