181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka/*
281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Copyright (C) 2011 The Android Open Source Project
381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka *
481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Licensed under the Apache License, Version 2.0 (the "License");
581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * you may not use this file except in compliance with the License.
681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * You may obtain a copy of the License at
781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka *
881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka *      http://www.apache.org/licenses/LICENSE-2.0
981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka *
1081efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Unless required by applicable law or agreed to in writing, software
1181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * distributed under the License is distributed on an "AS IS" BASIS,
1281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * See the License for the specific language governing permissions and
1481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * limitations under the License.
1581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka */
1681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka
1781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkapackage com.android.launcher2;
1881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka
1981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.content.Context;
20dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurkaimport android.graphics.Canvas;
2181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.util.AttributeSet;
2281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.widget.ImageView;
2381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka
2481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaclass PagedViewWidgetImageView extends ImageView {
2581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka    public boolean mAllowRequestLayout = true;
2681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka
2781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka    public PagedViewWidgetImageView(Context context, AttributeSet attrs) {
2881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka        super(context, attrs);
2981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka    }
3081efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka
3181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka    public void requestLayout() {
3281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka        if (mAllowRequestLayout) {
3381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka            super.requestLayout();
3481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka        }
3581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka    }
36dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
37dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    @Override
38dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    protected void onDraw(Canvas canvas) {
39dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka        canvas.save();
409bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka        canvas.clipRect(getScrollX() + getPaddingLeft(),
419bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka                getScrollY() + getPaddingTop(),
429bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka                getScrollX() + getRight() - getLeft() - getPaddingRight(),
439bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka                getScrollY() + getBottom() - getTop() - getPaddingBottom());
44dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
45dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka        super.onDraw(canvas);
46dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka        canvas.restore();
47dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
48dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    }
4981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka}
50