summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/tabs/tab_renderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/tabs/tab_renderer.h')
-rw-r--r--chrome/browser/views/tabs/tab_renderer.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/chrome/browser/views/tabs/tab_renderer.h b/chrome/browser/views/tabs/tab_renderer.h
index 2e309c6..dfb7272 100644
--- a/chrome/browser/views/tabs/tab_renderer.h
+++ b/chrome/browser/views/tabs/tab_renderer.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// 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.
@@ -6,12 +6,14 @@
#define CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__
#include "app/animation.h"
+#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
#include "base/string16.h"
#include "gfx/point.h"
#include "views/controls/button/image_button.h"
#include "views/view.h"
+class AnimationContainer;
class SlideAnimation;
class TabContents;
class ThrobAnimation;
@@ -37,6 +39,11 @@ class TabRenderer : public views::View,
TabRenderer();
virtual ~TabRenderer();
+ // Sizes the renderer to the size of the new tab images. This is used when
+ // during the new tab animation. See TabStrip's description of AnimationType
+ // for details.
+ void SizeToNewTabButtonImages();
+
// Overridden from views:
void ViewHierarchyChanged(bool is_add, View* parent, View* child);
ThemeProvider* GetThemeProvider();
@@ -59,6 +66,18 @@ class TabRenderer : public views::View,
void set_phantom(bool phantom) { data_.phantom = phantom; }
bool phantom() const { return data_.phantom; }
+ // Used during new tab animation to force the tab to render a new tab like
+ // animation.
+ void set_render_as_new_tab(bool value) { data_.render_as_new_tab = value; }
+
+ // Sets the alpha value to render the tab at. This is used during the new
+ // tab animation.
+ void set_alpha(double value) { data_.alpha = value; }
+
+ // Forces the tab to render unselected even though it is selected.
+ void set_render_unselected(bool value) { data_.render_unselected = value; }
+ bool render_unselected() const { return data_.render_unselected; }
+
// Are we in the process of animating a mini tab state change on this tab?
void set_animating_mini_change(bool value);
@@ -93,6 +112,9 @@ class TabRenderer : public views::View,
theme_provider_ = provider;
}
+ // Sets the container all animations run from.
+ void SetAnimationContainer(AnimationContainer* container);
+
// Paints the icon. Most of the time you'll want to invoke Paint directly, but
// in certain situations this invoked outside of Paint.
void PaintIcon(gfx::Canvas* canvas);
@@ -158,6 +180,7 @@ class TabRenderer : public views::View,
void PaintInactiveTabBackground(gfx::Canvas* canvas);
void PaintActiveTabBackground(gfx::Canvas* canvas);
void PaintLoadingAnimation(gfx::Canvas* canvas);
+ void PaintAsNewTab(gfx::Canvas* canvas);
// Returns the number of favicon-size elements that can fit in the tab's
// current size.
@@ -211,7 +234,10 @@ class TabRenderer : public views::View,
mini(false),
blocked(false),
animating_mini_change(false),
- phantom(false) {
+ phantom(false),
+ render_as_new_tab(false),
+ render_unselected(false),
+ alpha(1) {
}
SkBitmap favicon;
@@ -224,6 +250,9 @@ class TabRenderer : public views::View,
bool blocked;
bool animating_mini_change;
bool phantom;
+ bool render_as_new_tab;
+ bool render_unselected;
+ double alpha;
};
TabData data_;
@@ -260,6 +289,8 @@ class TabRenderer : public views::View,
ThemeProvider* theme_provider_;
+ scoped_refptr<AnimationContainer> container_;
+
static void InitClass();
static bool initialized_;