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_picker_model.h"
11 // Protocol corresponding to |DesktopMediaPickerModel::Observer|.
12 @protocol DesktopMediaPickerObserver
13 - (void)sourceAddedAtIndex:(int)index;
14 - (void)sourceRemovedAtIndex:(int)index;
15 - (void)sourceNameChangedAtIndex:(int)index;
16 - (void)sourceThumbnailChangedAtIndex:(int)index;
19 // Provides a |DesktopMediaPickerModel::Observer| implementation that forwards
20 // notifications to a objective-c object implementing the
21 // |DesktopMediaPickerObserver| protocol.
22 class DesktopMediaPickerBridge : public DesktopMediaPickerModel::Observer {
24 DesktopMediaPickerBridge(id<DesktopMediaPickerObserver> observer);
25 virtual ~DesktopMediaPickerBridge();
27 // DesktopMediaPickerModel::Observer overrides
28 virtual void OnSourceAdded(int index) OVERRIDE;
29 virtual void OnSourceRemoved(int index) OVERRIDE;
30 virtual void OnSourceNameChanged(int index) OVERRIDE;
31 virtual void OnSourceThumbnailChanged(int index) OVERRIDE;
34 id<DesktopMediaPickerObserver> observer_; // weak; owns this
36 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerBridge);
39 #endif // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_