1a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka/*
2a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * Copyright (C) 2011 The Android Open Source Project
3a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka *
4a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
5a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * you may not use this file except in compliance with the License.
6a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * You may obtain a copy of the License at
7a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka *
8a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
9a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka *
10a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
11a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
12a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * See the License for the specific language governing permissions and
14a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka * limitations under the License.
15a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka */
16a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka
17c8461d1ae26d43a09c0f835d833f3d49fbe8d2f3Tadashi G. Takaokapackage com.android.inputmethod.keyboard;
18a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka
192442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaokaimport android.view.View;
20a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaokaimport android.view.ViewGroup;
21a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaokaimport android.view.ViewGroup.MarginLayoutParams;
22a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaokaimport android.widget.FrameLayout;
23a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaokaimport android.widget.RelativeLayout;
24a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka
251e11c44d1b5f9ddf593c5407cb14c458be0056f2Tadashi G. Takaokapublic final class ViewLayoutUtils {
26c8461d1ae26d43a09c0f835d833f3d49fbe8d2f3Tadashi G. Takaoka    private ViewLayoutUtils() {
27c8461d1ae26d43a09c0f835d833f3d49fbe8d2f3Tadashi G. Takaoka        // This utility class is not publicly instantiable.
28a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka    }
29a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka
30a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka    public static MarginLayoutParams newLayoutParam(ViewGroup placer, int width, int height) {
31a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka        if (placer instanceof FrameLayout) {
32a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka            return new FrameLayout.LayoutParams(width, height);
33a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka        } else if (placer instanceof RelativeLayout) {
34a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka            return new RelativeLayout.LayoutParams(width, height);
35a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka        } else if (placer == null) {
36a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka            throw new NullPointerException("placer is null");
37a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka        } else {
38a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka            throw new IllegalArgumentException("placer is neither FrameLayout nor RelativeLayout: "
39a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka                    + placer.getClass().getName());
40a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka        }
41a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka    }
422442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka
432442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka    public static void placeViewAt(View view, int x, int y, int w, int h) {
442442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka        final ViewGroup.LayoutParams lp = view.getLayoutParams();
452442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka        if (lp instanceof MarginLayoutParams) {
462442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka            final MarginLayoutParams marginLayoutParams = (MarginLayoutParams)lp;
472442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka            marginLayoutParams.width = w;
482442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka            marginLayoutParams.height = h;
492442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka            marginLayoutParams.setMargins(x, y, 0, 0);
502442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka        }
512442e779857e7eda253aadcb1c4dff5ccb3e53f4Tadashi G. Takaoka    }
52a7eed902f1b0d6871d416412b3c6f91163fa2578Tadashi G. Takaoka}
53