DecorToolbar.java revision acce58688e2c3e5abd0b13e78dcf2c26710eabd0
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2014 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.support.v7.internal.widget;
19519494e207322581075c8ea884fde9d33bb9209eAlan Viverette
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.drawable.Drawable;
2252b999f0721b53e9c6e18a4bd664e89aeb65b2d5Alan Viveretteimport android.os.Parcelable;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.support.v4.view.ViewPropertyAnimatorCompat;
244d971c1fa0c71400ff1e843b8d8b4826d0aece16Alan Viveretteimport android.support.v7.internal.view.menu.MenuBuilder;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.support.v7.internal.view.menu.MenuPresenter;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.SparseArray;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.Menu;
28b49f446c98096c4790a11d9b5bc83a4e585278c9Chris Craikimport android.view.View;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.ViewGroup;
30519494e207322581075c8ea884fde9d33bb9209eAlan Viveretteimport android.view.Window;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.SpinnerAdapter;
3243027b7bca554818cc4223389747d661819d5706Alan Viverette
3343027b7bca554818cc4223389747d661819d5706Alan Viverette/**
34519494e207322581075c8ea884fde9d33bb9209eAlan Viverette * Common interface for a toolbar that sits as part of the window decor.
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Layouts that control window decor use this as a point of interaction with different
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * bar implementations.
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface DecorToolbar {
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ViewGroup getViewGroup();
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Context getContext();
4352b999f0721b53e9c6e18a4bd664e89aeb65b2d5Alan Viverette    boolean hasExpandedActionView();
4452b999f0721b53e9c6e18a4bd664e89aeb65b2d5Alan Viverette    void collapseActionView();
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setWindowCallback(Window.Callback cb);
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setWindowTitle(CharSequence title);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CharSequence getTitle();
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setTitle(CharSequence title);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CharSequence getSubtitle();
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setSubtitle(CharSequence subtitle);
5117dafdc8d8cb92a03294657d3a6e36c9c546d130Alan Viverette    void initProgress();
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void initIndeterminateProgress();
53dfe5c204403bc56c29bb36410574eab8b1950417Scott Main    boolean hasIcon();
54dfe5c204403bc56c29bb36410574eab8b1950417Scott Main    boolean hasLogo();
55dfe5c204403bc56c29bb36410574eab8b1950417Scott Main    void setIcon(int resId);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setIcon(Drawable d);
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLogo(int resId);
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLogo(Drawable d);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canShowOverflowMenu();
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOverflowMenuShowing();
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOverflowMenuShowPending();
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean showOverflowMenu();
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hideOverflowMenu();
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMenuPrepared();
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMenu(Menu menu, MenuPresenter.Callback cb);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dismissPopupMenus();
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getDisplayOptions();
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDisplayOptions(int opts);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setEmbeddedTabView(ScrollingTabContainerView tabView);
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasEmbeddedTabs();
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isTitleTruncated();
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCollapsible(boolean collapsible);
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setHomeButtonEnabled(boolean enable);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getNavigationMode();
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNavigationMode(int mode);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDropdownParams(SpinnerAdapter adapter, AdapterViewCompat.OnItemSelectedListener listener);
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDropdownSelectedPosition(int position);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getDropdownSelectedPosition();
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getDropdownItemCount();
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCustomView(View view);
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    View getCustomView();
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void animateToVisibility(int visibility);
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ViewPropertyAnimatorCompat setupAnimatorToVisibility(int visibility, long duration);
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNavigationIcon(Drawable icon);
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNavigationIcon(int resId);
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNavigationContentDescription(CharSequence description);
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNavigationContentDescription(int resId);
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDefaultNavigationContentDescription(int defaultNavigationContentDescription);
9017dafdc8d8cb92a03294657d3a6e36c9c546d130Alan Viverette    void setDefaultNavigationIcon(Drawable icon);
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void saveHierarchyState(SparseArray<Parcelable> toolbarStates);
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void restoreHierarchyState(SparseArray<Parcelable> toolbarStates);
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setBackgroundDrawable(Drawable d);
9417dafdc8d8cb92a03294657d3a6e36c9c546d130Alan Viverette    int getHeight();
9517dafdc8d8cb92a03294657d3a6e36c9c546d130Alan Viverette    void setVisibility(int visible);
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getVisibility();
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MenuBuilder.Callback menuBuilderCallback);
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Menu getMenu();
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}