diff options
Diffstat (limited to 'content/browser/android/edge_effect.h')
-rw-r--r-- | content/browser/android/edge_effect.h | 66 |
1 files changed, 24 insertions, 42 deletions
diff --git a/content/browser/android/edge_effect.h b/content/browser/android/edge_effect.h index a8f944c..ced6a32 100644 --- a/content/browser/android/edge_effect.h +++ b/content/browser/android/edge_effect.h @@ -5,10 +5,8 @@ #ifndef CONTENT_BROWSER_ANDROID_EDGE_EFFECT_H_ #define CONTENT_BROWSER_ANDROID_EDGE_EFFECT_H_ -#include "base/basictypes.h" #include "base/memory/scoped_ptr.h" -#include "base/time/time.h" -#include "ui/gfx/size_f.h" +#include "content/browser/android/edge_effect_base.h" namespace cc { class Layer; @@ -20,57 +18,41 @@ class SystemUIResourceManager; namespace content { -/* |EdgeEffect| mirrors its Android counterpart, EdgeEffect.java. - * The primary difference is ownership; the Android version manages render - * resources directly, while this version simply applies the effect to - * existing resources. Conscious tradeoffs were made to align this as closely - * as possible with the original Android java version. - * All coordinates and dimensions are in device pixels. - */ -class EdgeEffect { +// |EdgeEffect| mirrors its Android counterpart, EdgeEffect.java. +// Conscious tradeoffs were made to align this as closely as possible with the +// the original Android java version. +// All coordinates and dimensions are in device pixels. +class EdgeEffect : public EdgeEffectBase { public: - enum Edge { - EDGE_TOP = 0, - EDGE_LEFT, - EDGE_BOTTOM, - EDGE_RIGHT, - EDGE_COUNT - }; + explicit EdgeEffect(ui::SystemUIResourceManager* resource_manager, + float device_scale_factor); + virtual ~EdgeEffect(); - explicit EdgeEffect(ui::SystemUIResourceManager* resource_manager); - ~EdgeEffect(); + virtual void Pull(base::TimeTicks current_time, + float delta_distance, + float displacement) OVERRIDE; + virtual void Absorb(base::TimeTicks current_time, float velocity) OVERRIDE; + virtual bool Update(base::TimeTicks current_time) OVERRIDE; + virtual void Release(base::TimeTicks current_time) OVERRIDE; - void Pull(base::TimeTicks current_time, float delta_distance); - void Absorb(base::TimeTicks current_time, float velocity); - bool Update(base::TimeTicks current_time); - void Release(base::TimeTicks current_time); + virtual void Finish() OVERRIDE; + virtual bool IsFinished() const OVERRIDE; - void Finish(); - bool IsFinished() const; - - void ApplyToLayers(gfx::SizeF window_size, - Edge edge, - float edge_height, - float glow_height, - float offset); - - void SetParent(cc::Layer* parent); + virtual void ApplyToLayers(const gfx::SizeF& size, + const gfx::Transform& transform) OVERRIDE; + virtual void SetParent(cc::Layer* parent) OVERRIDE; + // Thread-safe trigger to load resources. static void PreloadResources(ui::SystemUIResourceManager* resource_manager); private: - enum State { - STATE_IDLE = 0, - STATE_PULL, - STATE_ABSORB, - STATE_RECEDE, - STATE_PULL_DECAY - }; - class EffectLayer; scoped_ptr<EffectLayer> edge_; scoped_ptr<EffectLayer> glow_; + float base_edge_height_; + float base_glow_height_; + float edge_alpha_; float edge_scale_y_; float glow_alpha_; |