1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_
6 #define CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_
8 #import <AppKit/AppKit.h>
10 #import "base/mac/scoped_nsobject.h"
11 #include "chrome/browser/media/desktop_media_picker_model.h"
13 // Stores the data representing a |DesktopMediaPicker| source for displaying in
14 // a |IKImageBrowserView|. Implements the |IKImageBrowserItem| informal
16 @interface DesktopMediaPickerItem : NSObject {
18 content::DesktopMediaID sourceID_;
19 base::scoped_nsobject<NSString> imageUID_;
20 base::scoped_nsobject<NSString> imageTitle_;
21 base::scoped_nsobject<NSImage> image_;
22 NSUInteger imageVersion_;
25 // Designated initializer.
26 // |sourceID| is the corresponding source's ID as provided by the model.
27 // |imageUID| is a unique number in the context of the |IKImageBrowserView|
29 // |imageTitle| is the source's name to be used as the label in
30 // |IKImageBrowserView|.
31 - (id)initWithSourceId:(content::DesktopMediaID)sourceID
32 imageUID:(int)imageUID
33 imageTitle:(NSString*)imageTitle;
35 // Returns the source's ID.
36 - (content::DesktopMediaID)sourceID;
38 // Sets the image of the item to be displayed in |IKImageBrowserView|.
39 - (void)setImageRepresentation:(NSImage*)image;
41 // Sets the label of the item to be displayed in |IKImageBrowserView|.
42 - (void)setImageTitle:(NSString*)imageTitle;
46 #endif // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_