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