diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
commit | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/java/android/inputmethodservice/SoftInputWindow.java | |
parent | 076357b8567458d4b6dfdcf839ef751634cd2bfb (diff) | |
download | frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'core/java/android/inputmethodservice/SoftInputWindow.java')
-rw-r--r-- | core/java/android/inputmethodservice/SoftInputWindow.java | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/core/java/android/inputmethodservice/SoftInputWindow.java b/core/java/android/inputmethodservice/SoftInputWindow.java deleted file mode 100644 index c37845f..0000000 --- a/core/java/android/inputmethodservice/SoftInputWindow.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 2007-2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package android.inputmethodservice; - -import android.app.Dialog; -import android.content.Context; -import android.content.pm.ActivityInfo; -import android.os.IBinder; -import android.view.Gravity; -import android.view.WindowManager; - -/** - * A SoftInputWindow is a Dialog that is intended to be used for a top-level input - * method window. It will be displayed along the edge of the screen, moving - * the application user interface away from it so that the focused item is - * always visible. - */ -class SoftInputWindow extends Dialog { - - /** - * Create a DockWindow that uses the default style. - * - * @param context The Context the DockWindow is to run it. In particular, it - * uses the window manager and theme in this context to present its - * UI. - */ - public SoftInputWindow(Context context) { - super(context, com.android.internal.R.style.Theme_InputMethod); - initDockWindow(); - } - - public void setToken(IBinder token) { - WindowManager.LayoutParams lp = getWindow().getAttributes(); - lp.token = token; - getWindow().setAttributes(lp); - } - - /** - * Create a DockWindow that uses a custom style. - * - * @param context The Context in which the DockWindow should run. In - * particular, it uses the window manager and theme from this context - * to present its UI. - * @param theme A style resource describing the theme to use for the window. - * See <a href="{@docRoot}reference/available-resources.html#stylesandthemes">Style - * and Theme Resources</a> for more information about defining and - * using styles. This theme is applied on top of the current theme in - * <var>context</var>. If 0, the default dialog theme will be used. - */ - public SoftInputWindow(Context context, int theme) { - super(context, theme); - initDockWindow(); - } - - /** - * Get the size of the DockWindow. - * - * @return If the DockWindow sticks to the top or bottom of the screen, the - * return value is the height of the DockWindow, and its width is - * equal to the width of the screen; If the DockWindow sticks to the - * left or right of the screen, the return value is the width of the - * DockWindow, and its height is equal to the height of the screen. - */ - public int getSize() { - WindowManager.LayoutParams lp = getWindow().getAttributes(); - - if (lp.gravity == Gravity.TOP || lp.gravity == Gravity.BOTTOM) { - return lp.height; - } else { - return lp.width; - } - } - - /** - * Set the size of the DockWindow. - * - * @param size If the DockWindow sticks to the top or bottom of the screen, - * <var>size</var> is the height of the DockWindow, and its width is - * equal to the width of the screen; If the DockWindow sticks to the - * left or right of the screen, <var>size</var> is the width of the - * DockWindow, and its height is equal to the height of the screen. - */ - public void setSize(int size) { - WindowManager.LayoutParams lp = getWindow().getAttributes(); - - if (lp.gravity == Gravity.TOP || lp.gravity == Gravity.BOTTOM) { - lp.width = -1; - lp.height = size; - } else { - lp.width = size; - lp.height = -1; - } - getWindow().setAttributes(lp); - } - - /** - * Set which boundary of the screen the DockWindow sticks to. - * - * @param gravity The boundary of the screen to stick. See {#link - * android.view.Gravity.LEFT}, {#link android.view.Gravity.TOP}, - * {#link android.view.Gravity.BOTTOM}, {#link - * android.view.Gravity.RIGHT}. - */ - public void setGravity(int gravity) { - WindowManager.LayoutParams lp = getWindow().getAttributes(); - - boolean oldIsVertical = (lp.gravity == Gravity.TOP || lp.gravity == Gravity.BOTTOM); - - lp.gravity = gravity; - - boolean newIsVertical = (lp.gravity == Gravity.TOP || lp.gravity == Gravity.BOTTOM); - - if (oldIsVertical != newIsVertical) { - int tmp = lp.width; - lp.width = lp.height; - lp.height = tmp; - getWindow().setAttributes(lp); - } - } - - private void initDockWindow() { - WindowManager.LayoutParams lp = getWindow().getAttributes(); - - lp.type = WindowManager.LayoutParams.TYPE_INPUT_METHOD; - lp.setTitle("InputMethod"); - - lp.gravity = Gravity.BOTTOM; - lp.width = -1; - // Let the input method window's orientation follow sensor based rotation - // Turn this off for now, it is very problematic. - //lp.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_USER; - - getWindow().setAttributes(lp); - getWindow().setFlags( - WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | - WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, - WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | - WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | - WindowManager.LayoutParams.FLAG_DIM_BEHIND); - } -} |