1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_MEDIA_GALLERY_CHECKBOX_VIEW_H_
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_MEDIA_GALLERY_CHECKBOX_VIEW_H_
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/macros.h"
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/strings/string16.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/gfx/size.h"
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/views/view.h"
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)struct MediaGalleryPrefInfo;
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace views {
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class ButtonListener;
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class Checkbox;
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class ContextMenuController;
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class ImageButton;
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class Label;
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}  // namespace views
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// A view composed of a checkbox, optional folder icon button, and secondary
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// text that will elide to its parent's width; used by MediaGalleriesDialogViews
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// and MediaGalleriesScanResultDialogViews.
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class MediaGalleryCheckboxView : public views::View {
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public:
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  MediaGalleryCheckboxView(const MediaGalleryPrefInfo& pref_info,
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                           bool show_button,
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                           int trailing_vertical_space,
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                           views::ButtonListener* button_listener,
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                           views::ContextMenuController* menu_controller);
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual ~MediaGalleryCheckboxView();
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Overrides from views::View.
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void Layout() OVERRIDE;
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::Checkbox* checkbox() { return checkbox_; }
39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::ImageButton* folder_viewer_button() { return folder_viewer_button_; }
40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::Label* secondary_text() { return secondary_text_; }
41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) private:
43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Owned by the parent class (views::View).
44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::Checkbox* checkbox_;
45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::ImageButton* folder_viewer_button_;
46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  views::Label* secondary_text_;
47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MediaGalleryCheckboxView);
49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)};
50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_MEDIA_GALLERY_CHECKBOX_VIEW_H_
52