blob: b0fa7e527f0bc5f2338ef6a77304ac18cc184802 [file] [log] [blame]
// Copyright 2017 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 UI_VIEWS_TEST_TEST_LAYOUT_PROVIDER_H_
#define UI_VIEWS_TEST_TEST_LAYOUT_PROVIDER_H_
#include <map>
#include "base/macros.h"
#include "ui/views/layout/layout_provider.h"
#include "ui/views/style/typography_provider.h"
namespace gfx {
class FontList;
}
namespace views {
namespace test {
// Helper to test LayoutProvider overrides.
class TestLayoutProvider : public LayoutProvider,
public DefaultTypographyProvider {
public:
TestLayoutProvider();
~TestLayoutProvider() override;
// Override requests for the |metric| DistanceMetric to return |value| rather
// than the default.
void SetDistanceMetric(int metric, int value);
// Override the return value of GetSnappedDialogWidth().
void SetSnappedDialogWidth(int width);
// Override the font provided by style::GetFont().
void SetFont(int context, int style, const gfx::FontList& font);
// LayoutProvider:
int GetDistanceMetric(int metric) const override;
const TypographyProvider& GetTypographyProvider() const override;
int GetSnappedDialogWidth(int min_width) const override;
// TypographyProvider:
const gfx::FontList& GetFont(int context, int style) const override;
private:
std::map<int, int> distance_metrics_;
std::map<std::pair<int, int>, gfx::FontList> fonts_;
int snapped_dialog_width_ = 0;
DISALLOW_COPY_AND_ASSIGN(TestLayoutProvider);
};
} // namespace test
} // namespace views
#endif // UI_VIEWS_TEST_TEST_LAYOUT_PROVIDER_H_