chromium/ui/android/java/src/org/chromium/ui/listmenu/ListMenuButtonDelegate.java

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.ui.listmenu;

import android.view.View;

import org.chromium.ui.widget.RectProvider;
import org.chromium.ui.widget.ViewRectProvider;

/** A delegate used to populate the menu. */
public interface ListMenuButtonDelegate {
    /**
     * @param listMenuButton The anchor for the {@link ListMenu}.
     * @return A {@link RectProvider} representing a position in screen space.
     */
    default RectProvider getRectProvider(View listMenuButton) {
        ViewRectProvider provider = new ViewRectProvider(listMenuButton);
        provider.setIncludePadding(true);
        return provider;
    }

    /**
     * @return The {@link ListMenu} displayed by {@link ListMenuButton}.
     */
    ListMenu getListMenu();
}