OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_view.h" | 5 #include "content/renderer/render_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 3310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3321 const std::string& mime_type) { | 3321 const std::string& mime_type) { |
3322 return new webkit::npapi::WebPluginImpl( | 3322 return new webkit::npapi::WebPluginImpl( |
3323 frame, params, path, mime_type, AsWeakPtr()); | 3323 frame, params, path, mime_type, AsWeakPtr()); |
3324 } | 3324 } |
3325 | 3325 |
3326 void RenderView::OnZoom(PageZoom::Function function) { | 3326 void RenderView::OnZoom(PageZoom::Function function) { |
3327 if (!webview()) // Not sure if this can happen, but no harm in being safe. | 3327 if (!webview()) // Not sure if this can happen, but no harm in being safe. |
3328 return; | 3328 return; |
3329 | 3329 |
3330 webview()->hidePopups(); | 3330 webview()->hidePopups(); |
3331 | 3331 #ifndef TOUCH_UI |
jam
2011/08/11 20:44:56
nit: normal convention is "!defined(TOUCH_UI)"
Fady Samuel
2011/08/12 21:58:13
Done.
| |
3332 double old_zoom_level = webview()->zoomLevel(); | 3332 double old_zoom_level = webview()->zoomLevel(); |
3333 double zoom_level; | 3333 double zoom_level; |
3334 if (function == PageZoom::RESET) { | 3334 if (function == PageZoom::RESET) { |
3335 zoom_level = 0; | 3335 zoom_level = 0; |
3336 } else if (static_cast<int>(old_zoom_level) == old_zoom_level) { | 3336 } else if (static_cast<int>(old_zoom_level) == old_zoom_level) { |
3337 // Previous zoom level is a whole number, so just increment/decrement. | 3337 // Previous zoom level is a whole number, so just increment/decrement. |
3338 zoom_level = old_zoom_level + function; | 3338 zoom_level = old_zoom_level + function; |
3339 } else { | 3339 } else { |
3340 // Either the user hit the zoom factor limit and thus the zoom level is now | 3340 // Either the user hit the zoom factor limit and thus the zoom level is now |
3341 // not a whole number, or a plugin changed it to a custom value. We want | 3341 // not a whole number, or a plugin changed it to a custom value. We want |
3342 // to go to the next whole number so that the user can always get back to | 3342 // to go to the next whole number so that the user can always get back to |
3343 // 100% with the keyboard/menu. | 3343 // 100% with the keyboard/menu. |
3344 if ((old_zoom_level > 1 && function > 0) || | 3344 if ((old_zoom_level > 1 && function > 0) || |
3345 (old_zoom_level < 1 && function < 0)) { | 3345 (old_zoom_level < 1 && function < 0)) { |
3346 zoom_level = static_cast<int>(old_zoom_level + function); | 3346 zoom_level = static_cast<int>(old_zoom_level + function); |
3347 } else { | 3347 } else { |
3348 // We're going towards 100%, so first go to the next whole number. | 3348 // We're going towards 100%, so first go to the next whole number. |
3349 zoom_level = static_cast<int>(old_zoom_level); | 3349 zoom_level = static_cast<int>(old_zoom_level); |
3350 } | 3350 } |
3351 } | 3351 } |
3352 | |
3353 webview()->setZoomLevel(false, zoom_level); | 3352 webview()->setZoomLevel(false, zoom_level); |
3353 #else | |
3354 double old_page_scale_factor = webview()->pageScaleFactor(); | |
3355 double page_scale_factor; | |
3356 if (function == PageZoom::RESET) { | |
3357 page_scale_factor = 1.0; | |
3358 } else { | |
3359 page_scale_factor = old_page_scale_factor + (function > 0 ? 0.1 : -0.1); | |
jam
2011/08/11 20:44:56
these all need to be constants
| |
3360 } | |
3361 webview()->scalePage(page_scale_factor, WebPoint(0, 0)); | |
3362 #endif | |
3354 zoomLevelChanged(); | 3363 zoomLevelChanged(); |
3355 } | 3364 } |
3356 | 3365 |
3357 void RenderView::OnSetZoomLevel(double zoom_level) { | 3366 void RenderView::OnSetZoomLevel(double zoom_level) { |
3358 // Don't set zoom level for full-page plugin since they don't use the same | 3367 // Don't set zoom level for full-page plugin since they don't use the same |
3359 // zoom settings. | 3368 // zoom settings. |
3360 if (webview()->mainFrame()->document().isPluginDocument()) | 3369 if (webview()->mainFrame()->document().isPluginDocument()) |
3361 return; | 3370 return; |
3362 | 3371 |
3363 webview()->hidePopups(); | 3372 webview()->hidePopups(); |
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4489 } | 4498 } |
4490 #endif | 4499 #endif |
4491 | 4500 |
4492 void RenderView::OnContextMenuClosed( | 4501 void RenderView::OnContextMenuClosed( |
4493 const webkit_glue::CustomContextMenuContext& custom_context) { | 4502 const webkit_glue::CustomContextMenuContext& custom_context) { |
4494 if (custom_context.is_pepper_menu) | 4503 if (custom_context.is_pepper_menu) |
4495 pepper_delegate_.OnContextMenuClosed(custom_context); | 4504 pepper_delegate_.OnContextMenuClosed(custom_context); |
4496 else | 4505 else |
4497 context_menu_node_.reset(); | 4506 context_menu_node_.reset(); |
4498 } | 4507 } |
OLD | NEW |