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}