1 // Copyright (c) 2012 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 "ui/wm/public/tooltip_client.h"
7 #include "ui/aura/window.h"
8 #include "ui/aura/window_property.h"
10 DECLARE_WINDOW_PROPERTY_TYPE(aura::client::TooltipClient
*)
11 DECLARE_WINDOW_PROPERTY_TYPE(base::string16
*)
12 DECLARE_WINDOW_PROPERTY_TYPE(void**)
17 DEFINE_LOCAL_WINDOW_PROPERTY_KEY(
18 TooltipClient
*, kRootWindowTooltipClientKey
, NULL
);
19 DEFINE_LOCAL_WINDOW_PROPERTY_KEY(base::string16
*, kTooltipTextKey
, NULL
);
20 DEFINE_LOCAL_WINDOW_PROPERTY_KEY(void*, kTooltipIdKey
, NULL
);
22 void SetTooltipClient(Window
* root_window
, TooltipClient
* client
) {
23 DCHECK_EQ(root_window
->GetRootWindow(), root_window
);
24 root_window
->SetProperty(kRootWindowTooltipClientKey
, client
);
27 TooltipClient
* GetTooltipClient(Window
* root_window
) {
29 DCHECK_EQ(root_window
->GetRootWindow(), root_window
);
31 root_window
->GetProperty(kRootWindowTooltipClientKey
) : NULL
;
34 void SetTooltipText(Window
* window
, base::string16
* tooltip_text
) {
35 window
->SetProperty(kTooltipTextKey
, tooltip_text
);
38 void SetTooltipId(Window
* window
, void* id
) {
39 window
->SetProperty(kTooltipIdKey
, id
);
42 const base::string16
GetTooltipText(Window
* window
) {
43 base::string16
* string_ptr
= window
->GetProperty(kTooltipTextKey
);
44 return string_ptr
? *string_ptr
: base::string16();
47 const void* GetTooltipId(Window
* window
) {
48 return window
->GetProperty(kTooltipIdKey
);