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 213de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport android.view.MenuItem; 223de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikas 23ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.annotation.NonNull; 24ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.annotation.RestrictTo; 25ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.appcompat.view.menu.MenuBuilder; 266142a54baae3289f734947c6b5375b12eb0fb722Chris Banes 276142a54baae3289f734947c6b5375b12eb0fb722Chris Banes/** 286142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * An interface notified when a menu item is hovered. Useful for cases when hover should trigger 296142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * some behavior at a higher level, like managing the opening and closing of submenus. 306142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * 316142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @hide 326142a54baae3289f734947c6b5375b12eb0fb722Chris Banes */ 338e10080c914d1ad0784394fa3026b85535535847Aurimas Liutikas@RestrictTo(LIBRARY_GROUP) 346142a54baae3289f734947c6b5375b12eb0fb722Chris Banespublic interface MenuItemHoverListener { 356142a54baae3289f734947c6b5375b12eb0fb722Chris Banes /** 366142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * Called when hover exits a menu item. 376142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * <p> 386142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * If hover is moving to another item, this method will be called before 396142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * {@link #onItemHoverEnter(MenuBuilder, MenuItem)} for the newly-hovered item. 406142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * 416142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @param menu the item's parent menu 426142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @param item the hovered menu item 436142a54baae3289f734947c6b5375b12eb0fb722Chris Banes */ 446142a54baae3289f734947c6b5375b12eb0fb722Chris Banes void onItemHoverExit(@NonNull MenuBuilder menu, @NonNull MenuItem item); 456142a54baae3289f734947c6b5375b12eb0fb722Chris Banes 466142a54baae3289f734947c6b5375b12eb0fb722Chris Banes /** 476142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * Called when hover enters a menu item. 486142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * 496142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @param menu the item's parent menu 506142a54baae3289f734947c6b5375b12eb0fb722Chris Banes * @param item the hovered menu item 516142a54baae3289f734947c6b5375b12eb0fb722Chris Banes */ 526142a54baae3289f734947c6b5375b12eb0fb722Chris Banes void onItemHoverEnter(@NonNull MenuBuilder menu, @NonNull MenuItem item); 536142a54baae3289f734947c6b5375b12eb0fb722Chris Banes}