1 package mhr.appandroid.views.imagepresentationview;
3 import mhr.appandroid.R;
4 import mhr.appandroid.adapters.APDBitmap;
5 import mhr.appandroid.views.SimpleBitmapView;
6 import mhr.appandroid.views.imagepresentationview.ImagePresentationEvent.EventType;
7 import mhr.appcore.image.ImageSelectedState;
8 import mhr.appcore.image.layers.LayerPDInfo;
9 import mhr.appcore.image.layers.LayerType;
10 import android.app.Activity;
11 import android.content.ClipData;
12 import android.content.Context;
13 import android.graphics.BitmapFactory;
14 import android.graphics.BitmapShader;
15 import android.graphics.Rect;
16 import android.graphics.Shader.TileMode;
17 import android.util.AttributeSet;
18 import android.widget.CheckBox;
19 import android.widget.CompoundButton;
20 import android.widget.CompoundButton.OnCheckedChangeListener;
21 import android.widget.PopupMenu.OnMenuItemClickListener;
22 import android.widget.FrameLayout;
23 import android.widget.ImageView;
24 import android.widget.PopupMenu;
25 import android.widget.TextView;
26 import android.view.DragEvent;
27 import android.view.MenuItem;
28 import android.view.View;
29 import android.view.View.OnClickListener;
30 import android.view.View.OnLongClickListener;
32 public class LayerView extends FrameLayout implements OnCheckedChangeListener, OnClickListener, OnLongClickListener, OnMenuItemClickListener {
91 public LayerView(Context context, AttributeSet attrs) {
92 super(context, attrs);
96 public LayerView(Context context, AttributeSet attrs,
int defStyle) {
97 super(context, attrs, defStyle);
164 ((Activity) getContext()).getLayoutInflater().inflate(
R.layout.view_layer,
this,
true);
165 }
catch (ClassCastException exc) {
167 TextView tv =
new TextView(getContext());
168 tv.setText(
"Prewiew not available, requires Activity to be Context.");
174 maskThumbIV = (ImageView) findViewById(
R.id.LayerMaskThumb);
196 maskPreviewSBV.
getBitmapBackground().setShader(
new BitmapShader(BitmapFactory.decodeResource(getResources(),
R.drawable.checkboard), TileMode.REPEAT, TileMode.REPEAT));
201 checkedColor = getResources().getColor(
R.color.SelectedToolBackground);
212 layerPopup =
new PopupMenu(getContext(),
this);
216 maskPopup =
new PopupMenu(getContext(),
this);
217 maskPopup.inflate(
R.menu.view_layer_view_mask);
218 maskPopup.setOnMenuItemClickListener(
this);
258 ClipData data = ClipData.newPlainText(
"LayerId", Integer.toString(
layerId));
259 DragShadowBuilder shadowBuilder =
new View.DragShadowBuilder(
this);
260 startDrag(data, shadowBuilder,
this, 0);
277 if (event.getAction() == DragEvent.ACTION_DRAG_ENDED) {
286 final int id = item.getItemId();
287 if (
id ==
R.id.LayerPopUpDelete) {
291 }
else if (
id ==
R.id.LayerPopUpDuplicate) {
296 }
else if (
id ==
R.id.LayerPopUpCopyLayerBitmap) {
300 }
else if (
id ==
R.id.LayerPopUpPasteLayerBitmap) {
304 }
else if (
id ==
R.id.LayerPopUpClearLayerBitmap) {
308 }
else if (
id ==
R.id.LayerPopUpAddLayerBitmap) {
312 }
else if (
id ==
R.id.LayerPopUpRemoveLayerBitmap) {
316 }
else if (
id ==
R.id.LayerPopUpBlendLayerBitmap) {
322 }
else if (
id ==
R.id.LayerPopUpCopyMaskBitmap) {
326 }
else if (
id ==
R.id.LayerPopUpPasteMaskBitmap) {
330 }
else if (
id ==
R.id.LayerPopUpClearMaskBitmap) {
334 }
else if (
id ==
R.id.LayerPopUpFillMaskBitmap) {
338 }
else if (
id ==
R.id.LayerPopUpInvertMaskBitmap) {
342 }
else if (
id ==
R.id.LayerPopUpAddMaskBitmap) {
346 }
else if (
id ==
R.id.LayerPopUpRemoveMaskBitmap) {