diff options
author | Bo Xu <bo_xu@foxitsoftware.com> | 2014-10-28 23:03:33 -0700 |
---|---|---|
committer | Bo Xu <bo_xu@foxitsoftware.com> | 2014-11-03 11:10:11 -0800 |
commit | fdc00a7042d912aafaabddae4d9c84199921ef23 (patch) | |
tree | 32ab8ac91cc68d2cd15b9168782a71b3f3f5e7b9 /xfa_test/pdf/thumbnail_control.h | |
parent | e9b38fa38de2c95d8260be31c57d9272c4d127ed (diff) | |
download | pdfium-fdc00a7042d912aafaabddae4d9c84199921ef23.tar.xz |
Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
Diffstat (limited to 'xfa_test/pdf/thumbnail_control.h')
-rw-r--r-- | xfa_test/pdf/thumbnail_control.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/xfa_test/pdf/thumbnail_control.h b/xfa_test/pdf/thumbnail_control.h new file mode 100644 index 0000000000..d10a32896d --- /dev/null +++ b/xfa_test/pdf/thumbnail_control.h @@ -0,0 +1,67 @@ +// Copyright (c) 2010 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_THUMBNAIL_CONTROL_H_ +#define PDF_THUMBNAIL_CONTROL_H_ + +#include <map> +#include <vector> + +#include "pdf/control.h" +#include "pdf/pdf_engine.h" +#include "ppapi/cpp/input_event.h" + +namespace chrome_pdf { + +class NumberImageGenerator; + +class ThumbnailControl : public Control { + public: + enum ThumbnailEventIds { + EVENT_ID_THUMBNAIL_SELECTED = 100, + }; + + explicit ThumbnailControl(); + virtual ~ThumbnailControl(); + + // Sets current position of the thumnail control. + void SetPosition(int position, int total, bool invalidate); + void SlideIn(); + void SlideOut(); + + virtual bool CreateThumbnailControl( + uint32 id, const pp::Rect& rc, + bool visible, Owner* owner, PDFEngine* engine, + NumberImageGenerator* number_image_generator); + + // Control interface. + virtual void Show(bool visible, bool invalidate); + virtual void Paint(pp::ImageData* image_data, const pp::Rect& rc); + virtual bool HandleEvent(const pp::InputEvent& event); + virtual void OnTimerFired(uint32 timer_id); + + virtual void ResetEngine(PDFEngine* engine); + + private: + void ClearCache(); + + struct PageInfo { + int index; + pp::Rect rect; + }; + + PDFEngine* engine_; + pp::Rect visible_rect_; + std::vector<PageInfo> visible_pages_; + std::map<int, pp::ImageData*> image_cache_; + int sliding_width_; + int sliding_shift_; + int sliding_timeout_; + uint32 sliding_timer_id_; + NumberImageGenerator* number_image_generator_; +}; + +} // namespace chrome_pdf + +#endif // PDF_THUMBNAIL_CONTROL_H_ |