1abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong/*
2abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Copyright (C) 2011 The Android Open Source Project
3abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong *
4abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Licensed under the Apache License, Version 2.0 (the "License");
5abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * you may not use this file except in compliance with the License.
6abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * You may obtain a copy of the License at
7abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong *
8abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong *      http://www.apache.org/licenses/LICENSE-2.0
9abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong *
10abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Unless required by applicable law or agreed to in writing, software
11abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * distributed under the License is distributed on an "AS IS" BASIS,
12abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * See the License for the specific language governing permissions and
14abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * limitations under the License.
15abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong */
16abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
17abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongpackage com.android.camera.ui;
18abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
19abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.content.Context;
20abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.util.AttributeSet;
21abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.view.View;
22abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.view.ViewGroup;
23abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
24abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong// A layout designed to make the children same size as the first child.
25abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongpublic class StackLayout extends ViewGroup {
26abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    private static final String TAG = "StackLayout";
27abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
28abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    public StackLayout(Context context, AttributeSet attrs) {
29abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        super(context, attrs);
30abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    }
31abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
32abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    @Override
33abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
34abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        final int count = getChildCount();
35abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
36abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        // Measure only the first child.
37abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        final View child = getChildAt(0);
38abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        measureChild(child, widthMeasureSpec, heightMeasureSpec);
39abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
40abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        // Ignore the paddings.
41abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        int width = child.getMeasuredWidth();
42abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        int height = child.getMeasuredHeight();
43abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
44abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        setMeasuredDimension(resolveSize(width, widthMeasureSpec),
45abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong                resolveSize(height, heightMeasureSpec));
46abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    }
47abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
48abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    @Override
49abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    protected void onLayout(boolean changed, int l, int t, int r, int b) {
50abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        final int count = super.getChildCount();
51abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong
52abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        for (int i = 0; i < count; i++) {
53abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong            final View child = getChildAt(i);
54abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong            if (child.getVisibility() != View.GONE) {
55abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong                child.layout(0, 0, r - l, b - t);
56abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong            }
57abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong        }
58abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong    }
59abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong}
60