diff options
Diffstat (limited to 'chrome/browser/views/tabs/tab_2.h')
-rw-r--r-- | chrome/browser/views/tabs/tab_2.h | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/chrome/browser/views/tabs/tab_2.h b/chrome/browser/views/tabs/tab_2.h deleted file mode 100644 index 58e5909..0000000 --- a/chrome/browser/views/tabs/tab_2.h +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright (c) 2009 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_VIEWS_TABS_TAB_2_H_ -#define CHROME_BROWSER_VIEWS_TABS_TAB_2_H_ - -#include "app/animation.h" -#include "base/string16.h" -#include "views/controls/button/button.h" -#include "views/view.h" - -namespace gfx { -class Canvas; -class Path; -}; -class SkBitmap; -class SlideAnimation; -class Tab2; -class ThrobAnimation; -namespace views { -class AnimationContext; -class Animator; -class AnimatorDelegate; -class ImageButton; -} - -// An interface implemented by an object that provides data to the Tab2. -// The Tab2 sometimes owns the Tab2Model. See |removing_model_| in Tab2. -class Tab2Model { - public: - virtual ~Tab2Model() {} - - // Tab presentation state. - virtual string16 GetTitle(Tab2* tab) const = 0; - virtual SkBitmap GetIcon(Tab2* tab) const = 0; - virtual bool IsSelected(Tab2* tab) const = 0; - virtual bool ShouldShowIcon(Tab2* tab) const = 0; - virtual bool IsLoading(Tab2* tab) const = 0; - virtual bool IsCrashed(Tab2* tab) const = 0; - virtual bool IsIncognito(Tab2* tab) const = 0; - - // The tab has been clicked and should become selected. - virtual void SelectTab(Tab2* tab) = 0; - - // The tab should be closed. - virtual void CloseTab(Tab2* tab) = 0; - - // The mouse has been pressed down on the tab, pertinent information for any - // drag that might occur should be captured at this time. - virtual void CaptureDragInfo(Tab2* tab, - const views::MouseEvent& drag_event) = 0; - - // The mouse has been dragged after a press on the tab. - virtual bool DragTab(Tab2* tab, const views::MouseEvent& drag_event) = 0; - - // The current drag operation has ended. - virtual void DragEnded(Tab2* tab) = 0; - - // TODO(beng): get rid of this once animator is on View. - virtual views::AnimatorDelegate* AsAnimatorDelegate() = 0; -}; - -// A view that represents a Tab in a TabStrip2. -class Tab2 : public views::View, - public views::ButtonListener, - public AnimationDelegate { - public: - explicit Tab2(Tab2Model* model); - virtual ~Tab2(); - - bool dragging() const { return dragging_; } - - bool removing() const { return removing_; } - void set_removing(bool removing) { removing_ = removing; } - - // Assigns and takes ownership of a model object to be used when painting this - // Tab2 after the underlying data object has been removed from TabStrip2's - // model. - void SetRemovingModel(Tab2Model* model); - - // Returns true if the Tab2 is being animated. - bool IsAnimating() const; - - // Returns the Tab2's animator, creating one if necessary. - // TODO(beng): consider moving to views::View. - views::Animator* GetAnimator(); - - // Set the background offset used to match the image in the inactive tab - // to the frame image. - void set_background_offset(gfx::Point offset) { - background_offset_ = offset; - } - - // Set the theme provider - because we get detached, we are frequently - // outside of a hierarchy with a theme provider at the top. This should be - // called whenever we're detached or attached to a hierarchy. - void set_theme_provider(ThemeProvider* provider) { - theme_provider_ = provider; - } - - // Adds the shape of the tab to the specified path. Used to create a clipped - // window during detached window dragging operations. - void AddTabShapeToPath(gfx::Path* path) const; - - // Returns the minimum possible size of a single unselected Tab. - static gfx::Size GetMinimumUnselectedSize(); - - // Returns the minimum possible size of a selected Tab. Selected tabs must - // always show a close button and have a larger minimum size than unselected - // tabs. - static gfx::Size GetMinimumSelectedSize(); - - // Returns the preferred size of a single Tab, assuming space is - // available. - static gfx::Size GetStandardSize(); - - // Loads the themable resources associated with this View. - static void LoadTabImages(); - - private: - // Possible animation states. - enum AnimationState { - ANIMATION_NONE, - ANIMATION_WAITING, - ANIMATION_LOADING - }; - - // views::ButtonListener overrides: - virtual void ButtonPressed(views::Button* sender, const views::Event& event); - - // Overridden from views::View: - virtual void Layout(); - virtual void Paint(gfx::Canvas* canvas); - virtual void OnMouseEntered(const views::MouseEvent& event); - virtual void OnMouseExited(const views::MouseEvent& event); - virtual bool OnMousePressed(const views::MouseEvent& event); - virtual bool OnMouseDragged(const views::MouseEvent& event); - virtual void OnMouseReleased(const views::MouseEvent& event, - bool canceled); - virtual void ThemeChanged(); - virtual void ViewHierarchyChanged(bool is_add, - views::View* parent, - views::View* child); - virtual ThemeProvider* GetThemeProvider(); - - // Overridden from AnimationDelegate: - virtual void AnimationProgressed(const Animation* animation); - virtual void AnimationCanceled(const Animation* animation); - virtual void AnimationEnded(const Animation* animation); - - // Layout various portions of the tab. For each of the below, |content_height| - // is the actual height of the content based on the font, icon size etc. - // |content_rect| is the rectangle within which the content is laid out, and - // may be larger. - void LayoutIcon(int content_height, const gfx::Rect& content_rect); - void LayoutCloseButton(int content_height, const gfx::Rect& content_rect); - void LayoutTitle(int content_height, const gfx::Rect& content_rect); - - // Paint various portions of the tab. - void PaintIcon(gfx::Canvas* canvas); - void PaintTitle(gfx::Canvas* canvas); - void PaintTabBackground(gfx::Canvas* canvas); - void PaintInactiveTabBackground(gfx::Canvas* canvas); - void PaintActiveTabBackground(gfx::Canvas* canvas); - void PaintHoverTabBackground(gfx::Canvas* canvas, double opacity); - void PaintLoadingAnimation(gfx::Canvas* canvas); - - // Returns the number of icon-size elements that can fit in the tab's - // current size. - int IconCapacity() const; - - // Returns whether the Tab should display a icon. - bool ShouldShowIcon() const; - - // Returns whether the Tab should display a close button. - bool ShouldShowCloseBox() const; - - // The object that provides state for this tab. - Tab2Model* model_; - - // True if the Tab2 is being dragged currently. - bool dragging_; - - // True if the Tab2 represents an object removed from its containing - // TabStrip2's model, and is currently being animated closed. - bool removing_; - - // Our animator. - scoped_ptr<views::Animator> animator_; - - // A dummy model to use for painting the tab after it's been removed from the - // TabStrip2's model but while it's still visible in the presentation (being - // animated out of existence). - scoped_ptr<Tab2Model> removing_model_; - - // The bounds of various sections of the display. - gfx::Rect icon_bounds_; - gfx::Rect title_bounds_; - - // The offset used to paint the inactive background image. - gfx::Point background_offset_; - - // Current state of the animation. - AnimationState animation_state_; - - // The current index into the Animation image strip. - int animation_frame_; - - // Close Button. - views::ImageButton* close_button_; - - // Hover animation. - scoped_ptr<SlideAnimation> hover_animation_; - - // Pulse animation. - scoped_ptr<ThrobAnimation> pulse_animation_; - - // Whether we're showing the icon. It is cached so that we can detect when it - // changes and layout appropriately. - bool showing_icon_; - - // Whether we are showing the close button. It is cached so that we can - // detect when it changes and layout appropriately. - bool showing_close_button_; - - // The offset used to animate the icon location. - int icon_hiding_offset_; - - // The theme provider to source tab images from. - ThemeProvider* theme_provider_; - - // Resources used in the tab display. - struct TabImage { - SkBitmap* image_l; - SkBitmap* image_c; - SkBitmap* image_r; - int l_width; - int r_width; - }; - static TabImage tab_active_; - static TabImage tab_inactive_; - static TabImage tab_alpha_; - - DISALLOW_COPY_AND_ASSIGN(Tab2); -}; - -#endif // CHROME_BROWSER_VIEWS_TABS_TAB_2_H_ |