// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_WM_PUBLIC_TOOLTIP_OBSERVER_H_
#define UI_WM_PUBLIC_TOOLTIP_OBSERVER_H_
#include <string_view>
#include "base/observer_list_types.h"
#include "ui/wm/public/wm_public_export.h"
namespace aura {
class Window;
}
namespace gfx {
class Rect;
}
namespace wm {
class WM_PUBLIC_EXPORT TooltipObserver : public base::CheckedObserver {
public:
~TooltipObserver() override = default;
// Called when tooltip is shown.
// `target` is a target window of show tooltip. This may be null if the target
// window is already destroyed,
// `bounds` is relative to the target window position.
// TODO(crbug.com/40246673): Use tooltip's parent window for `target`.
virtual void OnTooltipShown(aura::Window* target,
std::u16string_view text,
const gfx::Rect& bounds) = 0;
// Called when tooltip is hidden.
// `target` is a target window of show tooltip. This may be null if the target
// window is already destroyed,
// TODO(crbug.com/40246673): Use tooltip's parent window for `target`.
virtual void OnTooltipHidden(aura::Window* target) = 0;
};
} // namespace wm
#endif // UI_WM_PUBLIC_TOOLTIP_OBSERVER_H_