blob: 4ef986fcfa4ae66e8b3fc545a709fe48412f28d8 [file] [log] [blame]
// 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 THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_CONTROLS_OVERLAY_CHANGED_DELEGATE_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_CONTROLS_OVERLAY_CHANGED_DELEGATE_H_
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
namespace gfx {
class Rect;
}
namespace blink {
class LocalFrame;
// Extension point for observing changes to Window Controls Overlay geometry
// (e.g. the titlebar area); only supported on desktop platforms.
class CORE_EXPORT WindowControlsOverlayChangedDelegate
: public GarbageCollectedMixin {
public:
// Notifies about a change to the Window Controls Overlay geometry.
// `titlebar_area_rect` is the updated available titlebar area in the viewport
// coordinate space.
virtual void WindowControlsOverlayChanged(
const gfx::Rect& titlebar_area_rect) = 0;
protected:
// If `LocalFrame` not null, `this` will be registered to observe window
// controls overlay geometry changes. Otherwise, no notifications will be
// dispatched.
explicit WindowControlsOverlayChangedDelegate(LocalFrame*);
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_CONTROLS_OVERLAY_CHANGED_DELEGATE_H_