Index: pdf/fading_controls.h |
=================================================================== |
--- pdf/fading_controls.h (revision 0) |
+++ pdf/fading_controls.h (revision 0) |
@@ -0,0 +1,84 @@ |
+// 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_FADING_CONTROLS_H_ |
+#define PDF_FADING_CONTROLS_H_ |
+ |
+#include <list> |
+ |
+#include "pdf/control.h" |
+ |
+namespace chrome_pdf { |
+ |
+class FadingControls : public Control, |
+ public ControlOwner { |
+ public: |
+ enum FadingState { |
+ NONE, |
+ FADING_IN, |
+ FADING_OUT |
+ }; |
+ |
+ FadingControls(); |
+ virtual ~FadingControls(); |
+ virtual bool CreateFadingControls( |
+ uint32 id, const pp::Rect& rc, bool visible, |
+ Control::Owner* delegate, uint8 transparency); |
+ |
+ // Control interface. |
+ 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 EventCaptureReleased(); |
+ virtual void MoveBy(const pp::Point& offset, bool invalidate); |
+ |
+ // ControlOwner interface. |
+ virtual void OnEvent(uint32 control_id, uint32 event_id, void* data); |
+ virtual void Invalidate(uint32 control_id, const pp::Rect& rc); |
+ virtual uint32 ScheduleTimer(uint32 control_id, uint32 timeout_ms); |
+ virtual void SetEventCapture(uint32 control_id, bool set_capture); |
+ virtual void SetCursor(uint32 control_id, PP_CursorType_Dev cursor_type); |
+ virtual pp::Instance* GetInstance(); |
+ |
+ // FadingControls interface |
+ // This function takes ownership of the control, and will destoy it |
+ // when control is destroyed. |
+ // Input control MUST be located inside FadingControls boundaries, and has |
+ // this instance of FadingControls as a delegate. |
+ virtual bool AddControl(Control* control); |
+ virtual void RemoveControl(uint32 control_id); |
+ virtual Control* GetControl(uint32 id); |
+ virtual pp::Rect GetControlsRect(); |
+ |
+ // Expand/Shrink area which triggers inner control appearance to the left. |
+ virtual bool ExpandLeft(int offset); |
+ |
+ // Fade-in, then show controls for time_ms, and then fade-out. Any mouse |
+ // event in this control area will interrupt splash mode. |
+ virtual void Splash(uint32 time_ms); |
+ |
+ uint8 current_transparency() const { return current_transparency_; } |
+ |
+ private: |
+ bool NotifyControls(const pp::InputEvent& event); |
+ void FadeIn(); |
+ void FadeOut(); |
+ void OnFadingComplete(); |
+ void CancelSplashMode(); |
+ |
+ std::list<Control*> controls_; |
+ FadingState state_; |
+ uint8 current_transparency_; |
+ uint32 fading_timer_id_; |
+ uint32 current_capture_control_; |
+ uint32 fading_timeout_; |
+ uint32 alpha_shift_; |
+ bool splash_; |
+ uint32 splash_timeout_; |
+}; |
+ |
+} // namespace chrome_pdf |
+ |
+#endif // PDF_FADING_CONTROLS_H_ |
+ |
Property changes on: pdf\fading_controls.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |