package org.holoeverywhere.slidingmenu;
import org.holoeverywhere.slidingmenu.SlidingMenu.CanvasTransformer;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
public class CustomViewBehind extends CustomViewAbove {
// private static final String TAG = "CustomViewBehind";
private boolean mChildrenEnabled;
private CanvasTransformer mTransformer;
private CustomViewAbove mViewAbove;
public CustomViewBehind(Context context) {
this(context, null);
}
public CustomViewBehind(Context context, AttributeSet attrs) {
super(context, attrs, false);
}
@Override
protected void dispatchDraw(Canvas canvas) {
if (mTransformer != null) {
canvas.save();
mTransformer.transformCanvas(canvas, mViewAbove.getPercentOpen());
super.dispatchDraw(canvas);
canvas.restore();
} else {
super.dispatchDraw(canvas);
}
}
@Override
public int getBehindWidth() {
ViewGroup.LayoutParams params = getLayoutParams();
return params.width;
}
@Override
public int getChildLeft(int i) {
return 0;
}
@Override
public int getChildWidth(int i) {
if (i <= 0) {
return getBehindWidth();
} else {
return getChildAt(i).getMeasuredWidth();
}
}
@Override
public int getCustomWidth() {
int i = isMenuOpen() ? 0 : 1;
return getChildWidth(i);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
return !mChildrenEnabled;
}
@Override
public boolean onTouchEvent(MotionEvent e) {
return false;
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
if (mTransformer != null) {
invalidate();
}
}
public void setCanvasTransformer(CanvasTransformer t) {
mTransformer = t;
}
public void setChildrenEnabled(boolean enabled) {
mChildrenEnabled = enabled;
}
@Override
public void setContent(View v) {
super.setMenu(v);
}
public void setCustomViewAbove(CustomViewAbove customViewAbove) {
mViewAbove = customViewAbove;
mViewAbove.setTouchModeBehind(mTouchMode);
}
@Override
public void setTouchMode(int i) {
mTouchMode = i;
if (mViewAbove != null) {
mViewAbove.setTouchModeBehind(i);
}
}
}