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