| Index: chrome/browser/cocoa/view_id_util.h
|
| diff --git a/chrome/browser/cocoa/view_id_util.h b/chrome/browser/cocoa/view_id_util.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f8d6ee8757fabd4a1a1b5425d6766fc762067bcb
|
| --- /dev/null
|
| +++ b/chrome/browser/cocoa/view_id_util.h
|
| @@ -0,0 +1,51 @@
|
| +// Copyright (c) 2010 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_COCOA_VIEW_ID_UTIL_H_
|
| +#define CHROME_BROWSER_COCOA_VIEW_ID_UTIL_H_
|
| +
|
| +#import <Cocoa/Cocoa.h>
|
| +
|
| +#include "gfx/native_widget_types.h"
|
| +#include "chrome/browser/view_ids.h"
|
| +
|
| +// ViewIDs are a system that indexes important views in the browser window by a
|
| +// ViewID identifier (integer). This is a useful compatibility for finding a
|
| +// view object in cross-platform tests. See BrowserFocusTest.* for an example
|
| +// of how ViewIDs are used.
|
| +
|
| +// For views with fixed ViewIDs, we add a -viewID method to them to return their
|
| +// ViewIDs directly. But for views with changeable ViewIDs, as NSView itself
|
| +// doesn't provide a facility to store its ViewID, to avoid modifying each
|
| +// individual classes for adding ViewID support, we use an internal map to store
|
| +// ViewIDs of each view and provide some utility functions for NSView to
|
| +// set/unset the ViewID and lookup a view with a specified ViewID.
|
| +
|
| +namespace view_id_util {
|
| +
|
| +// Associates the given ViewID with the view. It shall be called upon the view's
|
| +// initialization.
|
| +void SetID(NSView* view, ViewID viewID);
|
| +
|
| +// Removes the association between the view and its ViewID. It shall be called
|
| +// just before the view's destruction.
|
| +void UnsetID(NSView* view);
|
| +
|
| +// Returns the view with a specific ViewID in a window, or nil if no view in the
|
| +// window has that ViewID.
|
| +NSView* GetView(NSWindow* window, ViewID viewID);
|
| +
|
| +} // namespace view_id_util
|
| +
|
| +
|
| +@interface NSView (ViewID)
|
| +
|
| +// Returns the ViewID associated to the receiver. The default implementation
|
| +// looks up the view's ViewID in the internal view to ViewID map. A subclass may
|
| +// override this method to return its fixed ViewID.
|
| +- (ViewID)viewID;
|
| +
|
| +@end
|
| +
|
| +#endif // CHROME_BROWSER_COCOA_VIEW_ID_UTIL_H_
|
|
|