/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.internal.widget;
import android.animation.Animator;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
import android.util.SparseArray;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.SpinnerAdapter;
import com.android.internal.view.menu.MenuBuilder;
import com.android.internal.view.menu.MenuPresenter;
/**
* Common interface for a toolbar that sits as part of the window decor.
* Layouts that control window decor use this as a point of interaction with different
* bar implementations.
*
* @hide
*/
public interface DecorToolbar {
ViewGroup getViewGroup();
Context getContext();
boolean isSplit();
boolean hasExpandedActionView();
void collapseActionView();
void setWindowCallback(Window.Callback cb);
void setWindowTitle(CharSequence title);
CharSequence getTitle();
void setTitle(CharSequence title);
CharSequence getSubtitle();
void setSubtitle(CharSequence subtitle);
void initProgress();
void initIndeterminateProgress();
boolean canSplit();
void setSplitView(ViewGroup splitView);
void setSplitToolbar(boolean split);
void setSplitWhenNarrow(boolean splitWhenNarrow);
boolean hasIcon();
boolean hasLogo();
void setIcon(int resId);
void setIcon(Drawable d);
void setLogo(int resId);
void setLogo(Drawable d);
boolean canShowOverflowMenu();
boolean isOverflowMenuShowing();
boolean isOverflowMenuShowPending();
boolean showOverflowMenu();
boolean hideOverflowMenu();
void setMenuPrepared();
void setMenu(Menu menu, MenuPresenter.Callback cb);
void dismissPopupMenus();
int getDisplayOptions();
void setDisplayOptions(int opts);
void setEmbeddedTabView(ScrollingTabContainerView tabView);
boolean hasEmbeddedTabs();
boolean isTitleTruncated();
void setCollapsible(boolean collapsible);
void setHomeButtonEnabled(boolean enable);
int getNavigationMode();
void setNavigationMode(int mode);
void setDropdownParams(SpinnerAdapter adapter, AdapterView.OnItemSelectedListener listener);
void setDropdownSelectedPosition(int position);
int getDropdownSelectedPosition();
int getDropdownItemCount();
void setCustomView(View view);
View getCustomView();
void animateToVisibility(int visibility);
Animator setupAnimatorToVisibility(int visibility, long duration);
void setNavigationIcon(Drawable icon);
void setNavigationIcon(int resId);
void setNavigationContentDescription(CharSequence description);
void setNavigationContentDescription(int resId);
void setDefaultNavigationContentDescription(int defaultNavigationContentDescription);
void setDefaultNavigationIcon(Drawable icon);
void saveHierarchyState(SparseArray<Parcelable> toolbarStates);
void restoreHierarchyState(SparseArray<Parcelable> toolbarStates);
void setBackgroundDrawable(Drawable d);
int getHeight();
void setVisibility(int visible);
int getVisibility();
void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
MenuBuilder.Callback menuBuilderCallback);
Menu getMenu();
}