blob: 7e58ae89d32220466e0dfa450700610f90dc4408 [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_ZOOM_PAGE_ZOOM_H_
#define COMPONENTS_ZOOM_PAGE_ZOOM_H_
#include <vector>
#include "content/public/common/page_zoom.h"
namespace content {
class WebContents;
}
namespace zoom {
// This class provides a means of zooming pages according to a predetermined
// set of zoom levels/factors. In future, the static methods in this class
// can be made non-static, with PresetZoomX() being virtual, to allow clients
// to create custom sets of zoom levels.
class PageZoom {
public:
PageZoom(const PageZoom&) = delete;
PageZoom& operator=(const PageZoom&) = delete;
// Return a sorted vector of zoom factors. The vector will consist of preset
// values along with a custom value (if the custom value is not already
// represented.)
static std::vector<double> PresetZoomFactors(double custom_factor);
// Return a sorted vector of zoom levels. The vector will consist of preset
// values along with a custom value (if the custom value is not already
// represented.)
static std::vector<double> PresetZoomLevels(double custom_level);
// Adjusts the zoom level of |web_contents|.
static void Zoom(content::WebContents* web_contents, content::PageZoom zoom);
private:
// We don't expect (currently) to create instances of this class.
PageZoom() {}
};
} // namespace zoom
#endif // COMPONENTS_ZOOM_PAGE_ZOOM_H_