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 #include "ash/shelf/shelf_util.h"
7 #include "ash/shelf/shelf_constants.h"
8 #include "ui/aura/window_property.h"
10 DECLARE_WINDOW_PROPERTY_TYPE(ash::ShelfID
);
11 DECLARE_WINDOW_PROPERTY_TYPE(ash::ShelfItemDetails
*);
15 DEFINE_LOCAL_WINDOW_PROPERTY_KEY(ShelfID
, kShelfID
, kInvalidShelfID
);
17 // ShelfItemDetails for kShelfItemDetaildKey is owned by the window
18 // and will be freed automatically.
19 DEFINE_OWNED_WINDOW_PROPERTY_KEY(ShelfItemDetails
,
23 void SetShelfIDForWindow(ShelfID id
, aura::Window
* window
) {
27 window
->SetProperty(kShelfID
, id
);
30 ShelfID
GetShelfIDForWindow(aura::Window
* window
) {
32 return window
->GetProperty(kShelfID
);
35 void SetShelfItemDetailsForWindow(aura::Window
* window
,
36 const ShelfItemDetails
& details
) {
37 // |item_details| is owned by |window|.
38 ShelfItemDetails
* item_details
= new ShelfItemDetails(details
);
39 window
->SetProperty(kShelfItemDetailsKey
, item_details
);
42 void ClearShelfItemDetailsForWindow(aura::Window
* window
) {
43 window
->ClearProperty(kShelfItemDetailsKey
);
46 const ShelfItemDetails
* GetShelfItemDetailsForWindow(
47 aura::Window
* window
) {
48 return window
->GetProperty(kShelfItemDetailsKey
);