// 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 CHROME_BROWSER_CHROMEOS_WM_OVERVIEW_SNAPSHOT_H_ #define CHROME_BROWSER_CHROMEOS_WM_OVERVIEW_SNAPSHOT_H_ #pragma once #include "third_party/skia/include/core/SkBitmap.h" #include "views/controls/image_view.h" #include "views/view.h" #include "views/widget/widget_gtk.h" class Browser; namespace chromeos { // WmOverviewSnapshot contains a snapshot image of the tab at the // given index. class WmOverviewSnapshot : public views::WidgetGtk { public: WmOverviewSnapshot(); void Init(const gfx::Size& size, Browser* browser, int index); void SetImage(const SkBitmap& image); void UpdateIndex(Browser* browser, int index); int index() const { return index_; } // Returns the size of the snapshot widget. gfx::Size size() const { // TODO(beng): this should not be written as an accessor... return GetClientAreaScreenBounds().size(); } // Has the snapshot been configured? This is true after SetSnapshot // is invoked. bool configured_snapshot() const { return configured_snapshot_; } // This resets the configured_snapshot flag for this snapshot so it will // get reloaded the next time we check. void reload_snapshot() { configured_snapshot_ = false; } private: // This control is the contents view for this widget. views::ImageView* snapshot_view_; // This is the tab index of the snapshot in the associated browser. int index_; // This indicates whether or not the snapshot has been configured. bool configured_snapshot_; DISALLOW_COPY_AND_ASSIGN(WmOverviewSnapshot); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_WM_OVERVIEW_SNAPSHOT_H_