MenuItemHoverListener.java revision ac5fe7c617c66850fff75a9fce9979c6e5674b0f
16142a54baae3289f734947c6b5375b12eb0fb722Chris Banes/*
26142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * Copyright (C) 2016 The Android Open Source Project
36142a54baae3289f734947c6b5375b12eb0fb722Chris Banes *
46142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
56142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * you may not use this file except in compliance with the License.
66142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * You may obtain a copy of the License at
76142a54baae3289f734947c6b5375b12eb0fb722Chris Banes *
86142a54baae3289f734947c6b5375b12eb0fb722Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
96142a54baae3289f734947c6b5375b12eb0fb722Chris Banes *
106142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * Unless required by applicable law or agreed to in writing, software
116142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
126142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * See the License for the specific language governing permissions and
146142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * limitations under the License
156142a54baae3289f734947c6b5375b12eb0fb722Chris Banes */
166142a54baae3289f734947c6b5375b12eb0fb722Chris Banes
17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.widget;
186142a54baae3289f734947c6b5375b12eb0fb722Chris Banes
19ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
208e10080c914d1ad0784394fa3026b85535535847Aurimas Liutikas
21ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.annotation.NonNull;
22ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.annotation.RestrictTo;
23ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.appcompat.view.menu.MenuBuilder;
246142a54baae3289f734947c6b5375b12eb0fb722Chris Banesimport android.view.MenuItem;
256142a54baae3289f734947c6b5375b12eb0fb722Chris Banes
266142a54baae3289f734947c6b5375b12eb0fb722Chris Banes/**
276142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * An interface notified when a menu item is hovered. Useful for cases when hover should trigger
286142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * some behavior at a higher level, like managing the opening and closing of submenus.
296142a54baae3289f734947c6b5375b12eb0fb722Chris Banes *
306142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @hide
316142a54baae3289f734947c6b5375b12eb0fb722Chris Banes */
328e10080c914d1ad0784394fa3026b85535535847Aurimas Liutikas@RestrictTo(LIBRARY_GROUP)
336142a54baae3289f734947c6b5375b12eb0fb722Chris Banespublic interface MenuItemHoverListener {
346142a54baae3289f734947c6b5375b12eb0fb722Chris Banes    /**
356142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * Called when hover exits a menu item.
366142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * <p>
376142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * If hover is moving to another item, this method will be called before
386142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * {@link #onItemHoverEnter(MenuBuilder, MenuItem)} for the newly-hovered item.
396142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     *
406142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * @param menu the item's parent menu
416142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * @param item the hovered menu item
426142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     */
436142a54baae3289f734947c6b5375b12eb0fb722Chris Banes    void onItemHoverExit(@NonNull MenuBuilder menu, @NonNull MenuItem item);
446142a54baae3289f734947c6b5375b12eb0fb722Chris Banes
456142a54baae3289f734947c6b5375b12eb0fb722Chris Banes    /**
466142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * Called when hover enters a menu item.
476142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     *
486142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * @param menu the item's parent menu
496142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     * @param item the hovered menu item
506142a54baae3289f734947c6b5375b12eb0fb722Chris Banes     */
516142a54baae3289f734947c6b5375b12eb0fb722Chris Banes    void onItemHoverEnter(@NonNull MenuBuilder menu, @NonNull MenuItem item);
526142a54baae3289f734947c6b5375b12eb0fb722Chris Banes}