15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <cmath> 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/page_zoom.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const double kMinimumZoomFactor = 0.25; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const double kMaximumZoomFactor = 5.0; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const double kEpsilon = 0.001; 1458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochconst double kTextSizeMultiplierRatio = 1.2; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ZoomValuesEqual(double value_a, double value_b) { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return (std::fabs(value_a - value_b) <= kEpsilon); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2058e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochdouble ZoomLevelToZoomFactor(double zoom_level) { 2158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch return std::pow(kTextSizeMultiplierRatio, zoom_level); 2258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch} 2358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 2458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochdouble ZoomFactorToZoomLevel(double factor) { 2558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch return std::log(factor) / std::log(kTextSizeMultiplierRatio); 2658e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch} 2758e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 29