From fdc00a7042d912aafaabddae4d9c84199921ef23 Mon Sep 17 00:00:00 2001 From: Bo Xu Date: Tue, 28 Oct 2014 23:03:33 -0700 Subject: Merge XFA to PDFium master at 4dc95e7 on 10/28/2014 --- xfa_test/pdf/page_indicator.h | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 xfa_test/pdf/page_indicator.h (limited to 'xfa_test/pdf/page_indicator.h') diff --git a/xfa_test/pdf/page_indicator.h b/xfa_test/pdf/page_indicator.h new file mode 100644 index 0000000000..0d06ee1a0b --- /dev/null +++ b/xfa_test/pdf/page_indicator.h @@ -0,0 +1,72 @@ +// 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. + +#ifndef PDF_PAGE_INDICATOR_H_ +#define PDF_PAGE_INDICATOR_H_ + +#include +#include + +#include "pdf/control.h" +#include "pdf/fading_control.h" +#include "ppapi/cpp/image_data.h" +#include "ppapi/cpp/point.h" +#include "ppapi/cpp/rect.h" + +namespace chrome_pdf { + +class NumberImageGenerator; + +const uint32 kPageIndicatorScrollFadeTimeoutMs = 240; +const uint32 kPageIndicatorInitialFadeTimeoutMs = 960; +const uint32 kPageIndicatorSplashTimeoutMs = 2000; + +class PageIndicator : public FadingControl { + public: + PageIndicator(); + virtual ~PageIndicator(); + virtual bool CreatePageIndicator( + uint32 id, + bool visible, + Control::Owner* delegate, + NumberImageGenerator* number_image_generator, + bool always_visible); + + void Configure(const pp::Point& origin, const pp::ImageData& background); + + int current_page() const { return current_page_; } + void set_current_page(int current_page); + + virtual void Splash(); + void Splash(uint32 splash_timeout, uint32 page_timeout); + + // Returns the y position where the page indicator should be drawn given the + // position of the scrollbar and the total document height and the plugin + // height. + int GetYPosition( + int vertical_scrollbar_y, int document_height, int plugin_height); + + // Control interface. + virtual void Paint(pp::ImageData* image_data, const pp::Rect& rc); + virtual void OnTimerFired(uint32 timer_id); + + // FadingControl interface. + virtual void OnFadeInComplete(); + + private: + void ResetFadeOutTimer(); + + int current_page_; + pp::ImageData background_; + NumberImageGenerator* number_image_generator_; + uint32 fade_out_timer_id_; + uint32 splash_timeout_; + uint32 fade_timeout_; + + bool always_visible_; +}; + +} // namespace chrome_pdf + +#endif // PDF_PAGE_INDICATOR_H_ -- cgit v1.2.3