| // Copyright (c) 2012 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. |
| |
| #include "ui/wm/public/tooltip_client.h" |
| |
| #include "ui/aura/window.h" |
| #include "ui/aura/window_property.h" |
| |
| DECLARE_WINDOW_PROPERTY_TYPE(aura::client::TooltipClient*) |
| DECLARE_WINDOW_PROPERTY_TYPE(base::string16*) |
| DECLARE_WINDOW_PROPERTY_TYPE(void**) |
| |
| namespace aura { |
| namespace client { |
| |
| DEFINE_LOCAL_WINDOW_PROPERTY_KEY( |
| TooltipClient*, kRootWindowTooltipClientKey, NULL); |
| DEFINE_LOCAL_WINDOW_PROPERTY_KEY(base::string16*, kTooltipTextKey, NULL); |
| DEFINE_LOCAL_WINDOW_PROPERTY_KEY(void*, kTooltipIdKey, NULL); |
| |
| void SetTooltipClient(Window* root_window, TooltipClient* client) { |
| DCHECK_EQ(root_window->GetRootWindow(), root_window); |
| root_window->SetProperty(kRootWindowTooltipClientKey, client); |
| } |
| |
| TooltipClient* GetTooltipClient(Window* root_window) { |
| if (root_window) |
| DCHECK_EQ(root_window->GetRootWindow(), root_window); |
| return root_window ? |
| root_window->GetProperty(kRootWindowTooltipClientKey) : NULL; |
| } |
| |
| void SetTooltipText(Window* window, base::string16* tooltip_text) { |
| window->SetProperty(kTooltipTextKey, tooltip_text); |
| } |
| |
| void SetTooltipId(Window* window, void* id) { |
| window->SetProperty(kTooltipIdKey, id); |
| } |
| |
| const base::string16 GetTooltipText(Window* window) { |
| base::string16* string_ptr = window->GetProperty(kTooltipTextKey); |
| return string_ptr ? *string_ptr : base::string16(); |
| } |
| |
| const void* GetTooltipId(Window* window) { |
| return window->GetProperty(kTooltipIdKey); |
| } |
| |
| } // namespace client |
| } // namespace aura |