diff options
Diffstat (limited to 'xfa_test/pdf/page_indicator.h')
-rw-r--r-- | xfa_test/pdf/page_indicator.h | 72 |
1 files changed, 72 insertions, 0 deletions
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 <string> +#include <vector> + +#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_ |