Index: chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h |
diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bef95c6d48e2e32d5fbd7d1ac8b69ed2a5b94b1c |
--- /dev/null |
+++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h |
@@ -0,0 +1,107 @@ |
+// Copyright 2015 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 CHROME_BROWSER_ANDROID_COMPOSITOR_SCENE_LAYER_TAB_STRIP_SCENE_LAYER_H_ |
+#define CHROME_BROWSER_ANDROID_COMPOSITOR_SCENE_LAYER_TAB_STRIP_SCENE_LAYER_H_ |
+ |
+#include <vector> |
+ |
+#include "base/android/jni_android.h" |
+#include "base/android/jni_weak_ref.h" |
+#include "base/android/scoped_java_ref.h" |
+#include "base/basictypes.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "cc/layers/layer.h" |
+#include "cc/layers/ui_resource_layer.h" |
+#include "chrome/browser/android/compositor/scene_layer/scene_layer.h" |
+ |
+namespace cc { |
+class SolidColorLayer; |
+} |
+ |
+namespace chrome { |
+namespace android { |
+ |
+class LayerTitleCache; |
+class TabHandleLayer; |
+ |
+class TabStripSceneLayer : public SceneLayer { |
+ public: |
+ TabStripSceneLayer(JNIEnv* env, jobject jobj); |
+ ~TabStripSceneLayer() override; |
+ |
+ void SetContentTree(JNIEnv* env, jobject jobj, jobject jcontent_tree); |
+ |
+ void BeginBuildingFrame(JNIEnv* env, jobject jobj); |
+ void FinishBuildingFrame(JNIEnv* env, jobject jobj); |
+ |
+ void UpdateTabStripLayer(JNIEnv* env, |
+ jobject jobj, |
+ jfloat width, |
+ jfloat height, |
+ jfloat y_offset, |
+ jfloat strip_brightness); |
+ void UpdateNewTabButton(JNIEnv* env, |
+ jobject jobj, |
+ jint resource_id, |
+ jfloat x, |
+ jfloat y, |
+ jfloat width, |
+ jfloat height, |
+ jboolean visible, |
+ jobject jresource_manager); |
+ void UpdateModelSelectorButton(JNIEnv* env, |
+ jobject jobj, |
+ jint resource_id, |
+ jfloat x, |
+ jfloat y, |
+ jfloat width, |
+ jfloat height, |
+ jboolean incognito, |
+ jboolean visible, |
+ jobject jresource_manager); |
+ void PutStripTabLayer(JNIEnv* env, |
+ jobject jobj, |
+ jint id, |
+ jint close_resource_id, |
+ jint handle_resource_id, |
+ jboolean foreground, |
+ jboolean close_pressed, |
+ jfloat toolbar_width, |
+ jfloat x, |
+ jfloat y, |
+ jfloat width, |
+ jfloat height, |
+ jfloat content_offset_x, |
+ jfloat close_button_alpha, |
+ jboolean is_loading, |
+ jfloat spinner_rotation, |
+ jfloat border_opacity, |
+ jobject jlayer_title_cache, |
+ jobject jresource_manager); |
+ |
+ private: |
+ scoped_refptr<TabHandleLayer> GetNextLayer( |
+ LayerTitleCache* layer_title_cache); |
+ |
+ typedef std::vector<scoped_refptr<TabHandleLayer>> TabHandleLayerList; |
+ |
+ scoped_refptr<cc::SolidColorLayer> background_layer_; |
+ scoped_refptr<cc::UIResourceLayer> new_tab_button_; |
+ scoped_refptr<cc::UIResourceLayer> model_selector_button_; |
+ |
+ float strip_brightness_; |
+ unsigned write_index_; |
+ TabHandleLayerList tab_handle_layers_; |
+ SceneLayer* content_tree_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TabStripSceneLayer); |
+}; |
+ |
+bool RegisterTabStripSceneLayer(JNIEnv* env); |
+ |
+} // namespace android |
+} // namespace chrome |
+ |
+#endif // CHROME_BROWSER_ANDROID_COMPOSITOR_SCENE_LAYER_TAB_STRIP_SCENE_LAYER_H_ |