15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef CHROME_BROWSER_UI_COCOA_EXTENSIONS_MEDIA_GALLERY_LIST_ENTRY_VIEW_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define CHROME_BROWSER_UI_COCOA_EXTENSIONS_MEDIA_GALLERY_LIST_ENTRY_VIEW_H_ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#import <Cocoa/Cocoa.h> 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#import "base/mac/scoped_nsobject.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/media_galleries/media_galleries_preferences.h" 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#import "ui/base/models/menu_model.h" 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu@class MediaGalleryButton; 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass MediaGalleryListEntryController { 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void OnCheckboxToggled(MediaGalleryPrefId pref_id, bool checked) {} 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void OnFolderViewerClicked(MediaGalleryPrefId pref_id) {} 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual ui::MenuModel* GetContextMenu(MediaGalleryPrefId pref_id); 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu protected: 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual ~MediaGalleryListEntryController() {} 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu@interface MediaGalleryListEntry : NSView { 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu @private 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MediaGalleryListEntryController* controller_; // |controller_| owns |this|. 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MediaGalleryPrefId prefId_; 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::scoped_nsobject<MediaGalleryButton> checkbox_; 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::scoped_nsobject<MediaGalleryButton> folderViewer_; 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::scoped_nsobject<NSTextField> details_; 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Does size to fit if frameRect is empty. 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu- (id)initWithFrame:(NSRect)frameRect 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu controller:(MediaGalleryListEntryController*)controller_ 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) prefInfo:(const MediaGalleryPrefInfo&)prefInfo 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu showFolderViewer:(bool)showFolderViewer; 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu- (void)setState:(bool)selected; 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu@end 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_MEDIA_GALLERY_LIST_ENTRY_VIEW_H_ 47