diff options
Diffstat (limited to 'android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java')
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java index 358617f208aa..34eff3fc3d9c 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java @@ -8,22 +8,77 @@ */ package org.libreoffice; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; + +import org.libreoffice.canvas.ImageUtils; +import org.libreoffice.kit.Document; /** * Controls the changes to the toolbar. */ public class ToolbarController { + private static final String LOGTAG = ToolbarController.class.getSimpleName(); private final Toolbar mToolbar; private final ActionBar mActionBar; + private Menu mOptionsMenu; + private Context mContext; - public ToolbarController(ActionBar actionBar, Toolbar toolbar) { + public ToolbarController(Context context, ActionBar actionBar, Toolbar toolbar) { mToolbar = toolbar; mActionBar = actionBar; + mContext = context; switchToViewMode(); } + public void onToggleStateChanged(int type, boolean pressed) { + MenuItem menuItem = null; + Bitmap icon = null; + switch (type) { + case Document.BOLD: + menuItem = mOptionsMenu.findItem(R.id.action_bold); + icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_bold); + break; + case Document.ITALIC: + menuItem = mOptionsMenu.findItem(R.id.action_italic); + icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_italic); + break; + case Document.UNDERLINE: + menuItem = mOptionsMenu.findItem(R.id.action_underline); + icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_underline); + break; + case Document.STRIKEOUT: + menuItem = mOptionsMenu.findItem(R.id.action_strikeout); + icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.action_strikeout); + break; + default: + Log.e(LOGTAG, "Uncaptured state change type: " + type); + return; + } + + if (menuItem == null) { + Log.e(LOGTAG, "MenuItem not found."); + return; + } + + if (pressed) { + icon = ImageUtils.bitmapToPressed(icon); + } + + menuItem.setIcon(new BitmapDrawable(mContext.getResources(), icon)); + } + + public void setOptionMenu(Menu menu) { + mOptionsMenu = menu; + } + /** * Change the toolbar to edit mode. */ |