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_BRIDGE_H_
6 #define CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_
8 #include "base/basictypes.h"
9 #include "chrome/browser/media/desktop_media_list_observer.h"
11 // Protocol corresponding to |DesktopMediaListObserver|.
12 @protocol DesktopMediaPickerObserver
13 - (void)sourceAddedAtIndex
:(int)index
;
14 - (void)sourceRemovedAtIndex
:(int)index
;
15 - (void)sourceMovedFrom
:(int)oldIndex to
:(int)newIndex
;
16 - (void)sourceNameChangedAtIndex
:(int)index
;
17 - (void)sourceThumbnailChangedAtIndex
:(int)index
;
20 // Provides a |DesktopMediaListObserver| implementation that forwards
21 // notifications to a objective-c object implementing the
22 // |DesktopMediaPickerObserver| protocol.
23 class DesktopMediaPickerBridge
: public DesktopMediaListObserver
{
25 DesktopMediaPickerBridge(id
<DesktopMediaPickerObserver
> observer
);
26 virtual ~DesktopMediaPickerBridge();
28 // DesktopMediaListObserver overrides.
29 virtual void OnSourceAdded(int index
) OVERRIDE
;
30 virtual void OnSourceRemoved(int index
) OVERRIDE
;
31 virtual void OnSourceMoved(int old_index
, int new_index
) OVERRIDE
;
32 virtual void OnSourceNameChanged(int index
) OVERRIDE
;
33 virtual void OnSourceThumbnailChanged(int index
) OVERRIDE
;
36 id
<DesktopMediaPickerObserver
> observer_
; // weak; owns this
38 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerBridge
);
41 #endif // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_