Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Unified Diff: pdf/page_indicator.cc

Issue 294793003: Add the pdf plugin's source in src\pdf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: review comments and sync past DEPS roll to fix gyp Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pdf/page_indicator.h ('k') | pdf/paint_aggregator.h » ('j') | pdf/pdf.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pdf/page_indicator.cc
===================================================================
--- pdf/page_indicator.cc (revision 0)
+++ pdf/page_indicator.cc (revision 0)
@@ -0,0 +1,126 @@
+// Copyright (c) 2012 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 "pdf/page_indicator.h"
+
+#include "base/logging.h"
+#include "base/strings/string_util.h"
+#include "pdf/draw_utils.h"
+#include "pdf/number_image_generator.h"
+#include "pdf/resource_consts.h"
+
+namespace chrome_pdf {
+
+
+PageIndicator::PageIndicator()
+ : current_page_(0),
+ splash_timeout_(kPageIndicatorSplashTimeoutMs),
+ fade_timeout_(kPageIndicatorScrollFadeTimeoutMs),
+ always_visible_(false) {
+}
+
+PageIndicator::~PageIndicator() {
+}
+
+bool PageIndicator::CreatePageIndicator(
+ uint32 id,
+ bool visible,
+ Control::Owner* delegate,
+ NumberImageGenerator* number_image_generator,
+ bool always_visible) {
+ number_image_generator_ = number_image_generator;
+ always_visible_ = always_visible;
+
+ pp::Rect rc;
+ bool res = Control::Create(id, rc, visible, delegate);
+ return res;
+}
+
+void PageIndicator::Configure(const pp::Point& origin,
+ const pp::ImageData& background) {
+ background_ = background;
+ pp::Rect rc(origin, background_.size());
+ Control::SetRect(rc, false);
+}
+
+void PageIndicator::set_current_page(int current_page) {
+ if (current_page_ < 0)
+ return;
+
+ current_page_ = current_page;
+}
+
+void PageIndicator::Paint(pp::ImageData* image_data, const pp::Rect& rc) {
+ if (!visible())
+ return;
+
+ pp::Rect draw_rc = rc.Intersect(rect());
+ if (draw_rc.IsEmpty())
+ return;
+
+ // Copying the background image to a temporary buffer.
+ pp::ImageData buffer(owner()->GetInstance(), background_.format(),
+ background_.size(), false);
+ CopyImage(background_, pp::Rect(background_.size()),
+ &buffer, pp::Rect(background_.size()), false);
+
+ // Creating the page number image.
+ pp::ImageData page_number_image;
+ number_image_generator_->GenerateImage(current_page_, &page_number_image);
+
+ pp::Point origin2(
+ (buffer.size().width() - page_number_image.size().width()) / 2.5,
+ (buffer.size().height() - page_number_image.size().height()) / 2);
+
+ // Drawing page number image on the buffer.
+ if (origin2.x() > 0 && origin2.y() > 0) {
+ CopyImage(page_number_image,
+ pp::Rect(pp::Point(), page_number_image.size()),
+ &buffer,
+ pp::Rect(origin2, page_number_image.size()),
+ false);
+ }
+
+ // Drawing the buffer.
+ pp::Point origin = draw_rc.point();
+ draw_rc.Offset(-rect().x(), -rect().y());
+ AlphaBlend(buffer, draw_rc, image_data, origin, transparency());
+}
+
+void PageIndicator::OnTimerFired(uint32 timer_id) {
+ FadingControl::OnTimerFired(timer_id);
+ if (timer_id == fade_out_timer_id_) {
+ Fade(false, fade_timeout_);
+ }
+}
+
+void PageIndicator::ResetFadeOutTimer() {
+ fade_out_timer_id_ =
+ owner()->ScheduleTimer(id(), splash_timeout_);
+}
+
+void PageIndicator::OnFadeInComplete() {
+ if (!always_visible_)
+ ResetFadeOutTimer();
+}
+
+void PageIndicator::Splash() {
+ Splash(kPageIndicatorSplashTimeoutMs, kPageIndicatorScrollFadeTimeoutMs);
+}
+
+void PageIndicator::Splash(uint32 splash_timeout, uint32 fade_timeout) {
+ splash_timeout_ = splash_timeout;
+ fade_timeout_ = fade_timeout;
+ if (!always_visible_)
+ fade_out_timer_id_ = 0;
+ Fade(true, fade_timeout_);
+}
+
+int PageIndicator::GetYPosition(
+ int vertical_scrollbar_y, int document_height, int plugin_height) {
+ double percent = static_cast<double>(vertical_scrollbar_y) / document_height;
+ return (plugin_height - rect().height()) * percent;
+}
+
+} // namespace chrome_pdf
Property changes on: pdf\page_indicator.cc
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « pdf/page_indicator.h ('k') | pdf/paint_aggregator.h » ('j') | pdf/pdf.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698