All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.holoeverywhere.slidingmenu.CustomViewBehind Maven / Gradle / Ivy


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);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy