mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
145 lines
3.4 KiB
C++
145 lines
3.4 KiB
C++
// Copyright 2014 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.
|
|
|
|
#include "sky/engine/core/css/MediaValuesDynamic.h"
|
|
|
|
#include "sky/engine/core/css/CSSHelper.h"
|
|
#include "sky/engine/core/css/CSSPrimitiveValue.h"
|
|
#include "sky/engine/core/css/CSSToLengthConversionData.h"
|
|
#include "sky/engine/core/css/MediaValuesCached.h"
|
|
#include "sky/engine/core/dom/Document.h"
|
|
#include "sky/engine/core/frame/LocalFrame.h"
|
|
|
|
namespace blink {
|
|
|
|
PassRefPtr<MediaValues> MediaValuesDynamic::create(Document& document)
|
|
{
|
|
return MediaValuesDynamic::create(frameFrom(document));
|
|
}
|
|
|
|
PassRefPtr<MediaValues> MediaValuesDynamic::create(LocalFrame* frame)
|
|
{
|
|
if (!frame || !frame->view() || !frame->document() || !frame->document()->renderView())
|
|
return MediaValuesCached::create();
|
|
return adoptRef(new MediaValuesDynamic(frame));
|
|
}
|
|
|
|
MediaValuesDynamic::MediaValuesDynamic(LocalFrame* frame)
|
|
: m_frame(frame)
|
|
{
|
|
ASSERT(m_frame);
|
|
}
|
|
|
|
PassRefPtr<MediaValues> MediaValuesDynamic::copy() const
|
|
{
|
|
return adoptRef(new MediaValuesDynamic(m_frame));
|
|
}
|
|
|
|
bool MediaValuesDynamic::computeLength(double value, CSSPrimitiveValue::UnitType type, int& result) const
|
|
{
|
|
return MediaValues::computeLength(value,
|
|
type,
|
|
calculateDefaultFontSize(m_frame),
|
|
calculateViewportWidth(m_frame),
|
|
calculateViewportHeight(m_frame),
|
|
result);
|
|
}
|
|
|
|
bool MediaValuesDynamic::computeLength(double value, CSSPrimitiveValue::UnitType type, double& result) const
|
|
{
|
|
return MediaValues::computeLength(value,
|
|
type,
|
|
calculateDefaultFontSize(m_frame),
|
|
calculateViewportWidth(m_frame),
|
|
calculateViewportHeight(m_frame),
|
|
result);
|
|
}
|
|
|
|
bool MediaValuesDynamic::isSafeToSendToAnotherThread() const
|
|
{
|
|
return false;
|
|
}
|
|
|
|
int MediaValuesDynamic::viewportWidth() const
|
|
{
|
|
return calculateViewportWidth(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::viewportHeight() const
|
|
{
|
|
return calculateViewportHeight(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::deviceWidth() const
|
|
{
|
|
return calculateDeviceWidth(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::deviceHeight() const
|
|
{
|
|
return calculateDeviceHeight(m_frame);
|
|
}
|
|
|
|
float MediaValuesDynamic::devicePixelRatio() const
|
|
{
|
|
return calculateDevicePixelRatio(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::colorBitsPerComponent() const
|
|
{
|
|
return calculateColorBitsPerComponent(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::monochromeBitsPerComponent() const
|
|
{
|
|
return calculateMonochromeBitsPerComponent(m_frame);
|
|
}
|
|
|
|
PointerType MediaValuesDynamic::primaryPointerType() const
|
|
{
|
|
return calculatePrimaryPointerType(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::availablePointerTypes() const
|
|
{
|
|
return calculateAvailablePointerTypes(m_frame);
|
|
}
|
|
|
|
HoverType MediaValuesDynamic::primaryHoverType() const
|
|
{
|
|
return calculatePrimaryHoverType(m_frame);
|
|
}
|
|
|
|
int MediaValuesDynamic::availableHoverTypes() const
|
|
{
|
|
return calculateAvailableHoverTypes(m_frame);
|
|
}
|
|
|
|
bool MediaValuesDynamic::threeDEnabled() const
|
|
{
|
|
return calculateThreeDEnabled(m_frame);
|
|
}
|
|
|
|
const String MediaValuesDynamic::mediaType() const
|
|
{
|
|
return calculateMediaType(m_frame);
|
|
}
|
|
|
|
bool MediaValuesDynamic::strictMode() const
|
|
{
|
|
return calculateStrictMode(m_frame);
|
|
}
|
|
|
|
Document* MediaValuesDynamic::document() const
|
|
{
|
|
return m_frame->document();
|
|
}
|
|
|
|
bool MediaValuesDynamic::hasValues() const
|
|
{
|
|
return m_frame;
|
|
}
|
|
|
|
} // namespace
|