diff -r 000000000000 -r 6474c204b198 mobile/android/base/menu/MenuItemActionBar.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobile/android/base/menu/MenuItemActionBar.java Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,69 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.menu; + +import org.mozilla.gecko.R; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.widget.ImageButton; + +public class MenuItemActionBar extends ImageButton + implements GeckoMenuItem.Layout { + private static final String LOGTAG = "GeckoMenuItemActionBar"; + + public MenuItemActionBar(Context context) { + this(context, null); + } + + public MenuItemActionBar(Context context, AttributeSet attrs) { + this(context, attrs, R.attr.menuItemActionBarStyle); + } + + public MenuItemActionBar(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public void initialize(GeckoMenuItem item) { + if (item == null) + return; + + setIcon(item.getIcon()); + setTitle(item.getTitle()); + setEnabled(item.isEnabled()); + setId(item.getItemId()); + } + + void setIcon(Drawable icon) { + if (icon == null) { + setVisibility(GONE); + } else { + setVisibility(VISIBLE); + setImageDrawable(icon); + } + } + + void setIcon(int icon) { + setIcon((icon == 0) ? null : getResources().getDrawable(icon)); + } + + void setTitle(CharSequence title) { + // set accessibility contentDescription here + setContentDescription(title); + } + + @Override + public void setEnabled(boolean enabled) { + super.setEnabled(enabled); + setColorFilter(enabled ? 0 : 0xFF999999); + } + + @Override + public void setShowIcon(boolean show) { + // Do nothing. + } +}