root/chrome/browser/ui/cocoa/media_picker/desktop_media_picker_item.h

/* [<][>][^][v][top][bottom][index][help] */
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_
#define CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_

#import <AppKit/AppKit.h>

#import "base/mac/scoped_nsobject.h"
#include "chrome/browser/media/desktop_media_list.h"

// Stores the data representing a |DesktopMediaPicker| source for displaying in
// a |IKImageBrowserView|. Implements the |IKImageBrowserItem| informal
// protocol.
@interface DesktopMediaPickerItem : NSObject {
 @private
  content::DesktopMediaID sourceID_;
  base::scoped_nsobject<NSString> imageUID_;
  base::scoped_nsobject<NSString> imageTitle_;
  base::scoped_nsobject<NSImage> image_;
  NSUInteger imageVersion_;
}

// Designated initializer.
// |sourceID| is the corresponding source's ID as provided by the media list.
// |imageUID| is a unique number in the context of the |IKImageBrowserView|
// instance.
// |imageTitle| is the source's name to be used as the label in
// |IKImageBrowserView|.
- (id)initWithSourceId:(content::DesktopMediaID)sourceID
              imageUID:(int)imageUID
            imageTitle:(NSString*)imageTitle;

// Returns the source's ID.
- (content::DesktopMediaID)sourceID;

// Sets the image of the item to be displayed in |IKImageBrowserView|.
- (void)setImageRepresentation:(NSImage*)image;

// Sets the label of the item to be displayed in |IKImageBrowserView|.
- (void)setImageTitle:(NSString*)imageTitle;

@end

#endif  // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_ITEM_H_

/* [<][>][^][v][top][bottom][index][help] */