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. 4 5 #ifndef ASH_SHELF_SHELF_UTIL_H_ 6 #define ASH_SHELF_SHELF_UTIL_H_ 7 8 #include "ash/ash_export.h" 9 #include "ash/shelf/shelf_item_types.h" 10 #include "ui/aura/window.h" 11 12 namespace aura { 13 class Window; 14 } 15 16 namespace ash { 17 18 // A property key to store the id of the ShelfItem associated with the window. 19 extern const aura::WindowProperty<ShelfID>* const kShelfID; 20 21 // A property key to store the resource id and title of the item shown on the 22 // shelf for this window. 23 extern const aura::WindowProperty<ShelfItemDetails*>* const 24 kShelfItemDetailsKey; 25 26 // Associates ShelfItem of |id| with specified |window|. 27 ASH_EXPORT void SetShelfIDForWindow(ShelfID id, aura::Window* window); 28 29 // Returns the id of the ShelfItem associated with the specified |window|, 30 // or 0 if there isn't one. 31 // Note: Window of a tabbed browser will return the |ShelfID| of the 32 // currently active tab. 33 ASH_EXPORT ShelfID GetShelfIDForWindow(const aura::Window* window); 34 35 // Creates a new ShelfItemDetails instance from |details| and sets it for 36 // |window|. 37 ASH_EXPORT void SetShelfItemDetailsForWindow(aura::Window* window, 38 const ShelfItemDetails& details); 39 40 // Creates a new ShelfItemDetails instance with type DIALOG and image id 41 // |image_resource_id| and sets it for |window|. 42 ASH_EXPORT void SetShelfItemDetailsForDialogWindow(aura::Window* window, 43 int image_resource_id); 44 45 // Clears ShelfItemDetails for |window|. 46 // If |window| has a ShelfItem by SetShelfItemDetailsForWindow(), it will 47 // be removed. 48 ASH_EXPORT void ClearShelfItemDetailsForWindow(aura::Window* window); 49 50 // Returns ShelfItemDetails for |window| or NULL if it doesn't have. 51 // Returned ShelfItemDetails object is owned by the |window|. 52 ASH_EXPORT const ShelfItemDetails* GetShelfItemDetailsForWindow( 53 aura::Window* window); 54 55 } // namespace ash 56 57 #endif // ASH_SHELF_SHELF_UTIL_H_ 58