15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/aura/client/tooltip_client.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/aura/root_window.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/aura/window_property.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DECLARE_WINDOW_PROPERTY_TYPE(aura::client::TooltipClient*)
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)DECLARE_WINDOW_PROPERTY_TYPE(base::string16*)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace aura {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace client {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DEFINE_LOCAL_WINDOW_PROPERTY_KEY(
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    TooltipClient*, kRootWindowTooltipClientKey, NULL);
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)DEFINE_LOCAL_WINDOW_PROPERTY_KEY(base::string16*, kTooltipTextKey, NULL);
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetTooltipClient(RootWindow* root_window, TooltipClient* client) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  root_window->SetProperty(kRootWindowTooltipClientKey, client);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TooltipClient* GetTooltipClient(RootWindow* root_window) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return root_window ?
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      root_window->GetProperty(kRootWindowTooltipClientKey) : NULL;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void SetTooltipText(Window* window, base::string16* tooltip_text) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  window->SetProperty(kTooltipTextKey, tooltip_text);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)const base::string16 GetTooltipText(Window* window) {
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  base::string16* string_ptr = window->GetProperty(kTooltipTextKey);
35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return string_ptr ? *string_ptr : base::string16();
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace client
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace aura
40