1ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka/*
2ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * Copyright (C) 2011 The Android Open Source Project
3ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka *
4ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
5ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * you may not use this file except in compliance with the License.
6ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * You may obtain a copy of the License at
7ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka *
8ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
9ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka *
10ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
11ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
12ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * See the License for the specific language governing permissions and
14ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka * limitations under the License.
15ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka */
16ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka
17ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaokapackage com.android.inputmethod.keyboard;
18ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka
19f44a01b40852dde2363a061cdc7df2ef4cb59aadTadashi G. Takaokaimport android.view.View;
20ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaokaimport android.widget.PopupWindow;
21ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka
229d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaokapublic interface MoreKeysPanel extends PointerTracker.KeyEventHandler {
23f44a01b40852dde2363a061cdc7df2ef4cb59aadTadashi G. Takaoka    public interface Controller {
249d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka        public boolean dismissMoreKeysPanel();
25f44a01b40852dde2363a061cdc7df2ef4cb59aadTadashi G. Takaoka    }
26f44a01b40852dde2363a061cdc7df2ef4cb59aadTadashi G. Takaoka
27ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka    /**
289d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * Show more keys panel.
299d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     *
309d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param parentView the parent view of this more keys panel
319d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param controller the controller that can dismiss this more keys panel
329d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param pointX x coordinate of this more keys panel
339d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param pointY y coordinate of this more keys panel
349d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param window PopupWindow to be used to show this more keys panel
359d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @param listener the listener that will receive keyboard action from this more keys panel.
36ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka     */
379d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka    public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
38f44a01b40852dde2363a061cdc7df2ef4cb59aadTadashi G. Takaoka            PopupWindow window, KeyboardActionListener listener);
39ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka
40ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka    /**
419d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * Translate X-coordinate of touch event to the local X-coordinate of this
429d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * {@link MoreKeysPanel}.
439d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     *
4463c233ab9f50d844be6e52e382c6664475606760Tadashi G. Takaoka     * @param x the global X-coordinate
459d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @return the local X-coordinate to this {@link MoreKeysPanel}
46ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka     */
4763c233ab9f50d844be6e52e382c6664475606760Tadashi G. Takaoka    public int translateX(int x);
48ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka
49ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka    /**
509d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * Translate Y-coordinate of touch event to the local Y-coordinate of this
519d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * {@link MoreKeysPanel}.
529d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     *
5363c233ab9f50d844be6e52e382c6664475606760Tadashi G. Takaoka     * @param y the global Y-coordinate
549d5601e9013c5ec9a7ac75db16f4a0a8218b02bfTadashi G. Takaoka     * @return the local Y-coordinate to this {@link MoreKeysPanel}
55ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka     */
5663c233ab9f50d844be6e52e382c6664475606760Tadashi G. Takaoka    public int translateY(int y);
57ff082d081f3ea18ff0b9b22126ee4a86504cf83cTadashi G. Takaoka}
58