summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/WindowManager.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
commitd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/java/android/view/WindowManager.java
parent076357b8567458d4b6dfdcf839ef751634cd2bfb (diff)
downloadframeworks_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/view/WindowManager.java')
-rw-r--r--core/java/android/view/WindowManager.java959
1 files changed, 0 insertions, 959 deletions
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
deleted file mode 100644
index b87cc42..0000000
--- a/core/java/android/view/WindowManager.java
+++ /dev/null
@@ -1,959 +0,0 @@
-/*
- * Copyright (C) 2006 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.view;
-
-import android.content.pm.ActivityInfo;
-import android.graphics.PixelFormat;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.text.TextUtils;
-import android.util.Log;
-
-
-/**
- * The interface that apps use to talk to the window manager.
- * <p>
- * Use <code>Context.getSystemService(Context.WINDOW_SERVICE)</code> to get one of these.
- *
- * @see android.content.Context#getSystemService
- * @see android.content.Context#WINDOW_SERVICE
- */
-public interface WindowManager extends ViewManager {
- /**
- * Exception that is thrown when trying to add view whose
- * {@link WindowManager.LayoutParams} {@link WindowManager.LayoutParams#token}
- * is invalid.
- */
- public static class BadTokenException extends RuntimeException {
- public BadTokenException() {
- }
-
- public BadTokenException(String name) {
- super(name);
- }
- }
-
- /**
- * Use this method to get the default Display object.
- *
- * @return default Display object
- */
- public Display getDefaultDisplay();
-
- /**
- * Special variation of {@link #removeView} that immediately invokes
- * the given view hierarchy's {@link View#onDetachedFromWindow()
- * View.onDetachedFromWindow()} methods before returning. This is not
- * for normal applications; using it correctly requires great care.
- *
- * @param view The view to be removed.
- */
- public void removeViewImmediate(View view);
-
- public static class LayoutParams extends ViewGroup.LayoutParams
- implements Parcelable {
- /**
- * X position for this window. With the default gravity it is ignored.
- * When using {@link Gravity#LEFT} or {@link Gravity#RIGHT} it provides
- * an offset from the given edge.
- */
- public int x;
-
- /**
- * Y position for this window. With the default gravity it is ignored.
- * When using {@link Gravity#TOP} or {@link Gravity#BOTTOM} it provides
- * an offset from the given edge.
- */
- public int y;
-
- /**
- * Indicates how much of the extra space will be allocated horizontally
- * to the view associated with these LayoutParams. Specify 0 if the view
- * should not be stretched. Otherwise the extra pixels will be pro-rated
- * among all views whose weight is greater than 0.
- */
- public float horizontalWeight;
-
- /**
- * Indicates how much of the extra space will be allocated vertically
- * to the view associated with these LayoutParams. Specify 0 if the view
- * should not be stretched. Otherwise the extra pixels will be pro-rated
- * among all views whose weight is greater than 0.
- */
- public float verticalWeight;
-
- /**
- * The general type of window. There are three main classes of
- * window types:
- * <ul>
- * <li> <strong>Application windows</strong> (ranging from
- * {@link #FIRST_APPLICATION_WINDOW} to
- * {@link #LAST_APPLICATION_WINDOW}) are normal top-level application
- * windows. For these types of windows, the {@link #token} must be
- * set to the token of the activity they are a part of (this will
- * normally be done for you if {@link #token} is null).
- * <li> <strong>Sub-windows</strong> (ranging from
- * {@link #FIRST_SUB_WINDOW} to
- * {@link #LAST_SUB_WINDOW}) are associated with another top-level
- * window. For these types of windows, the {@link #token} must be
- * the token of the window it is attached to.
- * <li> <strong>System windows</strong> (ranging from
- * {@link #FIRST_SYSTEM_WINDOW} to
- * {@link #LAST_SYSTEM_WINDOW}) are special types of windows for
- * use by the system for specific purposes. They should not normally
- * be used by applications, and a special permission is required
- * to use them.
- * </ul>
- *
- * @see #TYPE_BASE_APPLICATION
- * @see #TYPE_APPLICATION
- * @see #TYPE_APPLICATION_STARTING
- * @see #TYPE_APPLICATION_PANEL
- * @see #TYPE_APPLICATION_MEDIA
- * @see #TYPE_APPLICATION_SUB_PANEL
- * @see #TYPE_APPLICATION_ATTACHED_DIALOG
- * @see #TYPE_STATUS_BAR
- * @see #TYPE_SEARCH_BAR
- * @see #TYPE_PHONE
- * @see #TYPE_SYSTEM_ALERT
- * @see #TYPE_KEYGUARD
- * @see #TYPE_TOAST
- * @see #TYPE_SYSTEM_OVERLAY
- * @see #TYPE_PRIORITY_PHONE
- * @see #TYPE_STATUS_BAR_PANEL
- * @see #TYPE_SYSTEM_DIALOG
- * @see #TYPE_KEYGUARD_DIALOG
- * @see #TYPE_SYSTEM_ERROR
- * @see #TYPE_INPUT_METHOD
- * @see #TYPE_INPUT_METHOD_DIALOG
- */
- public int type;
-
- /**
- * Start of window types that represent normal application windows.
- */
- public static final int FIRST_APPLICATION_WINDOW = 1;
-
- /**
- * Window type: an application window that serves as the "base" window
- * of the overall application; all other application windows will
- * appear on top of it.
- */
- public static final int TYPE_BASE_APPLICATION = 1;
-
- /**
- * Window type: a normal application window. The {@link #token} must be
- * an Activity token identifying who the window belongs to.
- */
- public static final int TYPE_APPLICATION = 2;
-
- /**
- * Window type: special application window that is displayed while the
- * application is starting. Not for use by applications themselves;
- * this is used by the system to display something until the
- * application can show its own windows.
- */
- public static final int TYPE_APPLICATION_STARTING = 3;
-
- /**
- * End of types of application windows.
- */
- public static final int LAST_APPLICATION_WINDOW = 99;
-
- /**
- * Start of types of sub-windows. The {@link #token} of these windows
- * must be set to the window they are attached to. These types of
- * windows are kept next to their attached window in Z-order, and their
- * coordinate space is relative to their attached window.
- */
- public static final int FIRST_SUB_WINDOW = 1000;
-
- /**
- * Window type: a panel on top of an application window. These windows
- * appear on top of their attached window.
- */
- public static final int TYPE_APPLICATION_PANEL = FIRST_SUB_WINDOW;
-
- /**
- * Window type: window for showing media (e.g. video). These windows
- * are displayed behind their attached window.
- */
- public static final int TYPE_APPLICATION_MEDIA = FIRST_SUB_WINDOW+1;
-
- /**
- * Window type: a sub-panel on top of an application window. These
- * windows are displayed on top their attached window and any
- * {@link #TYPE_APPLICATION_PANEL} panels.
- */
- public static final int TYPE_APPLICATION_SUB_PANEL = FIRST_SUB_WINDOW+2;
-
- /** Window type: like {@link #TYPE_APPLICATION_PANEL}, but layout
- * of the window happens as that of a top-level window, <em>not</em>
- * as a child of its container.
- */
- public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW+3;
-
- /**
- * End of types of sub-windows.
- */
- public static final int LAST_SUB_WINDOW = 1999;
-
- /**
- * Start of system-specific window types. These are not normally
- * created by applications.
- */
- public static final int FIRST_SYSTEM_WINDOW = 2000;
-
- /**
- * Window type: the status bar. There can be only one status bar
- * window; it is placed at the top of the screen, and all other
- * windows are shifted down so they are below it.
- */
- public static final int TYPE_STATUS_BAR = FIRST_SYSTEM_WINDOW;
-
- /**
- * Window type: the search bar. There can be only one search bar
- * window; it is placed at the top of the screen.
- */
- public static final int TYPE_SEARCH_BAR = FIRST_SYSTEM_WINDOW+1;
-
- /**
- * Window type: phone. These are non-application windows providing
- * user interaction with the phone (in particular incoming calls).
- * These windows are normally placed above all applications, but behind
- * the status bar.
- */
- public static final int TYPE_PHONE = FIRST_SYSTEM_WINDOW+2;
-
- /**
- * Window type: system window, such as low power alert. These windows
- * are always on top of application windows.
- */
- public static final int TYPE_SYSTEM_ALERT = FIRST_SYSTEM_WINDOW+3;
-
- /**
- * Window type: keyguard window.
- */
- public static final int TYPE_KEYGUARD = FIRST_SYSTEM_WINDOW+4;
-
- /**
- * Window type: transient notifications.
- */
- public static final int TYPE_TOAST = FIRST_SYSTEM_WINDOW+5;
-
- /**
- * Window type: system overlay windows, which need to be displayed
- * on top of everything else. These windows must not take input
- * focus, or they will interfere with the keyguard.
- */
- public static final int TYPE_SYSTEM_OVERLAY = FIRST_SYSTEM_WINDOW+6;
-
- /**
- * Window type: priority phone UI, which needs to be displayed even if
- * the keyguard is active. These windows must not take input
- * focus, or they will interfere with the keyguard.
- */
- public static final int TYPE_PRIORITY_PHONE = FIRST_SYSTEM_WINDOW+7;
-
- /**
- * Window type: panel that slides out from the status bar
- */
- public static final int TYPE_STATUS_BAR_PANEL = FIRST_SYSTEM_WINDOW+8;
-
- /**
- * Window type: panel that slides out from the status bar
- */
- public static final int TYPE_SYSTEM_DIALOG = FIRST_SYSTEM_WINDOW+8;
-
- /**
- * Window type: dialogs that the keyguard shows
- */
- public static final int TYPE_KEYGUARD_DIALOG = FIRST_SYSTEM_WINDOW+9;
-
- /**
- * Window type: internal system error windows, appear on top of
- * everything they can.
- */
- public static final int TYPE_SYSTEM_ERROR = FIRST_SYSTEM_WINDOW+10;
-
- /**
- * Window type: internal input methods windows, which appear above
- * the normal UI. Application windows may be resized or panned to keep
- * the input focus visible while this window is displayed.
- */
- public static final int TYPE_INPUT_METHOD = FIRST_SYSTEM_WINDOW+11;
-
- /**
- * Window type: internal input methods dialog windows, which appear above
- * the current input method window.
- */
- public static final int TYPE_INPUT_METHOD_DIALOG= FIRST_SYSTEM_WINDOW+12;
-
- /**
- * End of types of system windows.
- */
- public static final int LAST_SYSTEM_WINDOW = 2999;
-
- /**
- * Specifies what type of memory buffers should be used by this window.
- * Default is normal.
- *
- * @see #MEMORY_TYPE_NORMAL
- * @see #MEMORY_TYPE_HARDWARE
- * @see #MEMORY_TYPE_GPU
- * @see #MEMORY_TYPE_PUSH_BUFFERS
- */
- public int memoryType;
-
- /** Memory type: The window's surface is allocated in main memory. */
- public static final int MEMORY_TYPE_NORMAL = 0;
- /** Memory type: The window's surface is configured to be accessible
- * by DMA engines and hardware accelerators. */
- public static final int MEMORY_TYPE_HARDWARE = 1;
- /** Memory type: The window's surface is configured to be accessible
- * by graphics accelerators. */
- public static final int MEMORY_TYPE_GPU = 2;
- /** Memory type: The window's surface doesn't own its buffers and
- * therefore cannot be locked. Instead the buffers are pushed to
- * it through native binder calls. */
- public static final int MEMORY_TYPE_PUSH_BUFFERS = 3;
-
- /**
- * Various behavioral options/flags. Default is none.
- *
- * @see #FLAG_BLUR_BEHIND
- * @see #FLAG_DIM_BEHIND
- * @see #FLAG_NOT_FOCUSABLE
- * @see #FLAG_NOT_TOUCHABLE
- * @see #FLAG_NOT_TOUCH_MODAL
- * @see #FLAG_LAYOUT_IN_SCREEN
- * @see #FLAG_DITHER
- * @see #FLAG_KEEP_SCREEN_ON
- * @see #FLAG_FULLSCREEN
- * @see #FLAG_FORCE_NOT_FULLSCREEN
- * @see #FLAG_IGNORE_CHEEK_PRESSES
- */
- public int flags;
-
- /** Window flag: everything behind this window will be dimmed.
- * Use {@link #dimAmount} to control the amount of dim. */
- public static final int FLAG_DIM_BEHIND = 0x00000002;
-
- /** Window flag: blur everything behind this window. */
- public static final int FLAG_BLUR_BEHIND = 0x00000004;
-
- /** Window flag: this window won't ever get key input focus, so the
- * user can not send key or other button events to it. Those will
- * instead go to whatever focusable window is behind it. This flag
- * will also enable {@link #FLAG_NOT_TOUCH_MODAL} whether or not that
- * is explicitly set.
- *
- * <p>Setting this flag also implies that the window will not need to
- * interact with
- * a soft input method, so it will be Z-ordered and positioned
- * independently of any active input method (typically this means it
- * gets Z-ordered on top of the input method, so it can use the full
- * screen for its content and cover the input method if needed. You
- * can use {@link #FLAG_ALT_FOCUSABLE_IM} to modify this behavior. */
- public static final int FLAG_NOT_FOCUSABLE = 0x00000008;
-
- /** Window flag: this window can never receive touch events. */
- public static final int FLAG_NOT_TOUCHABLE = 0x00000010;
-
- /** Window flag: Even when this window is focusable (its
- * {@link #FLAG_NOT_FOCUSABLE is not set), allow any pointer events
- * outside of the window to be sent to the windows behind it. Otherwise
- * it will consume all pointer events itself, regardless of whether they
- * are inside of the window. */
- public static final int FLAG_NOT_TOUCH_MODAL = 0x00000020;
-
- /** Window flag: When set, if the device is asleep when the touch
- * screen is pressed, you will receive this first touch event. Usually
- * the first touch event is consumed by the system since the user can
- * not see what they are pressing on.
- */
- public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;
-
- /** Window flag: as long as this window is visible to the user, keep
- * the device's screen turned on and bright. */
- public static final int FLAG_KEEP_SCREEN_ON = 0x00000080;
-
- /** Window flag: place the window within the entire screen, ignoring
- * decorations around the border (a.k.a. the status bar). The
- * window must correctly position its contents to take the screen
- * decoration into account. This flag is normally set for you
- * by Window as described in {@link Window#setFlags}. */
- public static final int FLAG_LAYOUT_IN_SCREEN = 0x00000100;
-
- /** Window flag: allow window to extend outside of the screen. */
- public static final int FLAG_LAYOUT_NO_LIMITS = 0x00000200;
-
- /** Window flag: Hide all screen decorations (e.g. status bar) while
- * this window is displayed. This allows the window to use the entire
- * display space for itself -- the status bar will be hidden when
- * an app window with this flag set is on the top layer. */
- public static final int FLAG_FULLSCREEN = 0x00000400;
-
- /** Window flag: Override {@link #FLAG_FULLSCREEN and force the
- * screen decorations (such as status bar) to be shown. */
- public static final int FLAG_FORCE_NOT_FULLSCREEN = 0x00000800;
-
- /** Window flag: turn on dithering when compositing this window to
- * the screen. */
- public static final int FLAG_DITHER = 0x00001000;
-
- /** Window flag: don't allow screen shots while this window is
- * displayed. */
- public static final int FLAG_SECURE = 0x00002000;
-
- /** Window flag: a special mode where the layout parameters are used
- * to perform scaling of the surface when it is composited to the
- * screen. */
- public static final int FLAG_SCALED = 0x00004000;
-
- /** Window flag: intended for windows that will often be used when the user is
- * holding the screen against their face, it will aggressively filter the event
- * stream to prevent unintended presses in this situation that may not be
- * desired for a particular window, when such an event stream is detected, the
- * application will receive a CANCEL motion event to indicate this so applications
- * can handle this accordingly by taking no action on the event
- * until the finger is released. */
- public static final int FLAG_IGNORE_CHEEK_PRESSES = 0x00008000;
-
- /** Window flag: a special option only for use in combination with
- * {@link #FLAG_LAYOUT_IN_SCREEN}. When requesting layout in the
- * screen your window may appear on top of or behind screen decorations
- * such as the status bar. By also including this flag, the window
- * manager will report the inset rectangle needed to ensure your
- * content is not covered by screen decorations. This flag is normally
- * set for you by Window as described in {@link Window#setFlags}.*/
- public static final int FLAG_LAYOUT_INSET_DECOR = 0x00010000;
-
- /** Window flag: invert the state of {@link #FLAG_NOT_FOCUSABLE} with
- * respect to how this window interacts with the current method. That
- * is, if FLAG_NOT_FOCUSABLE is set and this flag is set, then the
- * window will behave as if it needs to interact with the input method
- * and thus be placed behind/away from it; if FLAG_NOT_FOCUSABLE is
- * not set and this flag is set, then the window will behave as if it
- * doesn't need to interact with the input method and can be placed
- * to use more space and cover the input method.
- */
- public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;
-
- /** Window flag: if you have set {@link #FLAG_NOT_TOUCH_MODAL}, you
- * can set this flag to receive a single special MotionEvent with
- * the action
- * {@link MotionEvent#ACTION_OUTSIDE MotionEvent.ACTION_OUTSIDE} for
- * touches that occur outside of your window. Note that you will not
- * receive the full down/move/up gesture, only the location of the
- * first down as an ACTION_OUTSIDE.
- */
- public static final int FLAG_WATCH_OUTSIDE_TOUCH = 0x00040000;
-
- /** Window flag: a special option intended for system dialogs. When
- * this flag is set, the window will demand focus unconditionally when
- * it is created.
- * {@hide} */
- public static final int FLAG_SYSTEM_ERROR = 0x40000000;
-
- /**
- * Given a particular set of window manager flags, determine whether
- * such a window may be a target for an input method when it has
- * focus. In particular, this checks the
- * {@link #FLAG_NOT_FOCUSABLE} and {@link #FLAG_ALT_FOCUSABLE_IM}
- * flags and returns true if the combination of the two corresponds
- * to a window that needs to be behind the input method so that the
- * user can type into it.
- *
- * @param flags The current window manager flags.
- *
- * @return Returns true if such a window should be behind/interact
- * with an input method, false if not.
- */
- public static boolean mayUseInputMethod(int flags) {
- switch (flags&(FLAG_NOT_FOCUSABLE|FLAG_ALT_FOCUSABLE_IM)) {
- case 0:
- case FLAG_NOT_FOCUSABLE|FLAG_ALT_FOCUSABLE_IM:
- return true;
- }
- return false;
- }
-
- /**
- * Mask for {@link #softInputMode} of the bits that determine the
- * desired visibility state of the soft input area for this window.
- */
- public static final int SOFT_INPUT_MASK_STATE = 0x0f;
-
- /**
- * Visibility state for {@link #softInputMode}: no state has been specified.
- */
- public static final int SOFT_INPUT_STATE_UNSPECIFIED = 0;
-
- /**
- * Visibility state for {@link #softInputMode}: please don't change the state of
- * the soft input area.
- */
- public static final int SOFT_INPUT_STATE_UNCHANGED = 1;
-
- /**
- * Visibility state for {@link #softInputMode}: please hide any soft input
- * area when normally appropriate (when the user is navigating
- * forward to your window).
- */
- public static final int SOFT_INPUT_STATE_HIDDEN = 2;
-
- /**
- * Visibility state for {@link #softInputMode}: please always hide any
- * soft input area when this window receives focus.
- */
- public static final int SOFT_INPUT_STATE_ALWAYS_HIDDEN = 3;
-
- /**
- * Visibility state for {@link #softInputMode}: please show the soft
- * input area when normally appropriate (when the user is navigating
- * forward to your window).
- */
- public static final int SOFT_INPUT_STATE_VISIBLE = 4;
-
- /**
- * Visibility state for {@link #softInputMode}: please always make the
- * soft input area visible when this window receives input focus.
- */
- public static final int SOFT_INPUT_STATE_ALWAYS_VISIBLE = 5;
-
- /**
- * Mask for {@link #softInputMode} of the bits that determine the
- * way that the window should be adjusted to accommodate the soft
- * input window.
- */
- public static final int SOFT_INPUT_MASK_ADJUST = 0xf0;
-
- /** Adjustment option for {@link #softInputMode}: nothing specified.
- * The system will try to pick one or
- * the other depending on the contents of the window.
- */
- public static final int SOFT_INPUT_ADJUST_UNSPECIFIED = 0x00;
-
- /** Adjustment option for {@link #softInputMode}: set to allow the
- * window to be resized when an input
- * method is shown, so that its contents are not covered by the input
- * method. This can <em>not<em> be combined with
- * {@link #SOFT_INPUT_ADJUST_PAN}; if
- * neither of these are set, then the system will try to pick one or
- * the other depending on the contents of the window.
- */
- public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;
-
- /** Adjustment option for {@link #softInputMode}: set to have a window
- * pan when an input method is
- * shown, so it doesn't need to deal with resizing but just panned
- * by the framework to ensure the current input focus is visible. This
- * can <em>not<em> be combined with {@link #SOFT_INPUT_ADJUST_RESIZE}; if
- * neither of these are set, then the system will try to pick one or
- * the other depending on the contents of the window.
- */
- public static final int SOFT_INPUT_ADJUST_PAN = 0x20;
-
- /**
- * Bit for {@link #softInputMode}: set when the user has navigated
- * forward to the window. This is normally set automatically for
- * you by the system, though you may want to set it in certain cases
- * when you are displaying a window yourself. This flag will always
- * be cleared automatically after the window is displayed.
- */
- public static final int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0x100;
-
- /**
- * Desired operating mode for any soft input area. May any combination
- * of:
- *
- * <ul>
- * <li> One of the visibility states
- * {@link #SOFT_INPUT_STATE_UNSPECIFIED}, {@link #SOFT_INPUT_STATE_UNCHANGED},
- * {@link #SOFT_INPUT_STATE_HIDDEN}, {@link #SOFT_INPUT_STATE_ALWAYS_VISIBLE}, or
- * {@link #SOFT_INPUT_STATE_VISIBLE}.
- * <li> One of the adjustment options
- * {@link #SOFT_INPUT_ADJUST_UNSPECIFIED},
- * {@link #SOFT_INPUT_ADJUST_RESIZE}, or
- * {@link #SOFT_INPUT_ADJUST_PAN}.
- */
- public int softInputMode;
-
- /**
- * Placement of window within the screen as per {@link Gravity}
- *
- * @see Gravity
- */
- public int gravity;
-
- /**
- * The horizontal margin, as a percentage of the container's width,
- * between the container and the widget.
- */
- public float horizontalMargin;
-
- /**
- * The vertical margin, as a percentage of the container's height,
- * between the container and the widget.
- */
- public float verticalMargin;
-
- /**
- * The desired bitmap format. May be one of the constants in
- * {@link android.graphics.PixelFormat}. Default is OPAQUE.
- */
- public int format;
-
- /**
- * A style resource defining the animations to use for this window.
- * This must be a system resource; it can not be an application resource
- * because the window manager does not have access to applications.
- */
- public int windowAnimations;
-
- /**
- * An alpha value to apply to this entire window.
- * An alpha of 1.0 means fully opaque and 0.0 means fully transparent
- */
- public float alpha = 1.0f;
-
- /**
- * When {@link #FLAG_DIM_BEHIND} is set, this is the amount of dimming
- * to apply. Range is from 1.0 for completely opaque to 0.0 for no
- * dim.
- */
- public float dimAmount = 1.0f;
-
- /**
- * This can be used to override the user's preferred brightness of
- * the screen. A value of less than 0, the default, means to use the
- * preferred screen brightness. 0 to 1 adjusts the brightness from
- * dark to full bright.
- */
- public float screenBrightness = -1.0f;
-
- /**
- * Identifier for this window. This will usually be filled in for
- * you.
- */
- public IBinder token = null;
-
- /**
- * Name of the package owning this window.
- */
- public String packageName = null;
-
- /**
- * Specific orientation value for a window.
- * May be any of the same values allowed
- * for {@link android.content.pm.ActivityInfo#screenOrientation}.
- * If not set, a default value of
- * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_UNSPECIFIED}
- * will be used.
- */
- public int screenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-
-
- public LayoutParams() {
- super(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
- type = TYPE_APPLICATION;
- format = PixelFormat.OPAQUE;
- }
-
- public LayoutParams(int _type) {
- super(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
- type = _type;
- format = PixelFormat.OPAQUE;
- }
-
- public LayoutParams(int _type, int _flags) {
- super(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
- type = _type;
- flags = _flags;
- format = PixelFormat.OPAQUE;
- }
-
- public LayoutParams(int _type, int _flags, int _format) {
- super(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
- type = _type;
- flags = _flags;
- format = _format;
- }
-
- public LayoutParams(int w, int h, int _type, int _flags, int _format) {
- super(w, h);
- type = _type;
- flags = _flags;
- format = _format;
- }
-
- public LayoutParams(int w, int h, int xpos, int ypos, int _type,
- int _flags, int _format) {
- super(w, h);
- x = xpos;
- y = ypos;
- type = _type;
- flags = _flags;
- format = _format;
- }
-
- public final void setTitle(CharSequence title) {
- if (null == title)
- title = "";
-
- mTitle = TextUtils.stringOrSpannedString(title);
- }
-
- public final CharSequence getTitle() {
- return mTitle;
- }
-
- public int describeContents() {
- return 0;
- }
-
- public void writeToParcel(Parcel out, int parcelableFlags) {
- out.writeInt(width);
- out.writeInt(height);
- out.writeInt(x);
- out.writeInt(y);
- out.writeInt(type);
- out.writeInt(memoryType);
- out.writeInt(flags);
- out.writeInt(softInputMode);
- out.writeInt(gravity);
- out.writeFloat(horizontalMargin);
- out.writeFloat(verticalMargin);
- out.writeInt(format);
- out.writeInt(windowAnimations);
- out.writeFloat(alpha);
- out.writeFloat(dimAmount);
- out.writeFloat(screenBrightness);
- out.writeStrongBinder(token);
- out.writeString(packageName);
- TextUtils.writeToParcel(mTitle, out, parcelableFlags);
- out.writeInt(screenOrientation);
- }
-
- public static final Parcelable.Creator<LayoutParams> CREATOR
- = new Parcelable.Creator<LayoutParams>() {
- public LayoutParams createFromParcel(Parcel in) {
- return new LayoutParams(in);
- }
-
- public LayoutParams[] newArray(int size) {
- return new LayoutParams[size];
- }
- };
-
-
- public LayoutParams(Parcel in) {
- width = in.readInt();
- height = in.readInt();
- x = in.readInt();
- y = in.readInt();
- type = in.readInt();
- memoryType = in.readInt();
- flags = in.readInt();
- softInputMode = in.readInt();
- gravity = in.readInt();
- horizontalMargin = in.readFloat();
- verticalMargin = in.readFloat();
- format = in.readInt();
- windowAnimations = in.readInt();
- alpha = in.readFloat();
- dimAmount = in.readFloat();
- screenBrightness = in.readFloat();
- token = in.readStrongBinder();
- packageName = in.readString();
- mTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
- screenOrientation = in.readInt();
- }
-
- public static final int LAYOUT_CHANGED = 1<<0;
- public static final int TYPE_CHANGED = 1<<1;
- public static final int FLAGS_CHANGED = 1<<2;
- public static final int FORMAT_CHANGED = 1<<3;
- public static final int ANIMATION_CHANGED = 1<<4;
- public static final int DIM_AMOUNT_CHANGED = 1<<5;
- public static final int TITLE_CHANGED = 1<<6;
- public static final int ALPHA_CHANGED = 1<<7;
- public static final int MEMORY_TYPE_CHANGED = 1<<8;
- public static final int SOFT_INPUT_MODE_CHANGED = 1<<9;
- public static final int SCREEN_ORIENTATION_CHANGED = 1<<10;
- public static final int SCREEN_BRIGHTNESS_CHANGED = 1<<11;
-
- public final int copyFrom(LayoutParams o) {
- int changes = 0;
-
- if (width != o.width) {
- width = o.width;
- changes |= LAYOUT_CHANGED;
- }
- if (height != o.height) {
- height = o.height;
- changes |= LAYOUT_CHANGED;
- }
- if (x != o.x) {
- x = o.x;
- changes |= LAYOUT_CHANGED;
- }
- if (y != o.y) {
- y = o.y;
- changes |= LAYOUT_CHANGED;
- }
- if (horizontalWeight != o.horizontalWeight) {
- horizontalWeight = o.horizontalWeight;
- changes |= LAYOUT_CHANGED;
- }
- if (verticalWeight != o.verticalWeight) {
- verticalWeight = o.verticalWeight;
- changes |= LAYOUT_CHANGED;
- }
- if (horizontalMargin != o.horizontalMargin) {
- horizontalMargin = o.horizontalMargin;
- changes |= LAYOUT_CHANGED;
- }
- if (verticalMargin != o.verticalMargin) {
- verticalMargin = o.verticalMargin;
- changes |= LAYOUT_CHANGED;
- }
- if (type != o.type) {
- type = o.type;
- changes |= TYPE_CHANGED;
- }
- if (memoryType != o.memoryType) {
- memoryType = o.memoryType;
- changes |= MEMORY_TYPE_CHANGED;
- }
- if (flags != o.flags) {
- flags = o.flags;
- changes |= FLAGS_CHANGED;
- }
- if (softInputMode != o.softInputMode) {
- softInputMode = o.softInputMode;
- changes |= SOFT_INPUT_MODE_CHANGED;
- }
- if (gravity != o.gravity) {
- gravity = o.gravity;
- changes |= LAYOUT_CHANGED;
- }
- if (horizontalMargin != o.horizontalMargin) {
- horizontalMargin = o.horizontalMargin;
- changes |= LAYOUT_CHANGED;
- }
- if (verticalMargin != o.verticalMargin) {
- verticalMargin = o.verticalMargin;
- changes |= LAYOUT_CHANGED;
- }
- if (format != o.format) {
- format = o.format;
- changes |= FORMAT_CHANGED;
- }
- if (windowAnimations != o.windowAnimations) {
- windowAnimations = o.windowAnimations;
- changes |= ANIMATION_CHANGED;
- }
- if (token == null) {
- // NOTE: token only copied if the recipient doesn't
- // already have one.
- token = o.token;
- }
- if (packageName == null) {
- // NOTE: packageName only copied if the recipient doesn't
- // already have one.
- packageName = o.packageName;
- }
- if (!mTitle.equals(o.mTitle)) {
- mTitle = o.mTitle;
- changes |= TITLE_CHANGED;
- }
- if (alpha != o.alpha) {
- alpha = o.alpha;
- changes |= ALPHA_CHANGED;
- }
- if (dimAmount != o.dimAmount) {
- dimAmount = o.dimAmount;
- changes |= DIM_AMOUNT_CHANGED;
- }
- if (screenBrightness != o.screenBrightness) {
- screenBrightness = o.screenBrightness;
- changes |= SCREEN_BRIGHTNESS_CHANGED;
- }
-
- if (screenOrientation != o.screenOrientation) {
- screenOrientation = o.screenOrientation;
- changes |= SCREEN_ORIENTATION_CHANGED;
- }
- return changes;
- }
-
- @Override
- public String debug(String output) {
- output += "Contents of " + this + ":";
- Log.d("Debug", output);
- output = super.debug("");
- Log.d("Debug", output);
- Log.d("Debug", "");
- Log.d("Debug", "WindowManager.LayoutParams={title=" + mTitle + "}");
- return "";
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder(256);
- sb.append("WM.LayoutParams{");
- sb.append("(");
- sb.append(x);
- sb.append(',');
- sb.append(y);
- sb.append(")(");
- sb.append((width==FILL_PARENT?"fill":(width==WRAP_CONTENT?"wrap":width)));
- sb.append('x');
- sb.append((height==FILL_PARENT?"fill":(height==WRAP_CONTENT?"wrap":height)));
- sb.append(")");
- if (softInputMode != 0) {
- sb.append(" sim=#");
- sb.append(Integer.toHexString(softInputMode));
- }
- if (gravity != 0) {
- sb.append(" gr=#");
- sb.append(Integer.toHexString(gravity));
- }
- sb.append(" ty=");
- sb.append(type);
- sb.append(" fl=#");
- sb.append(Integer.toHexString(flags));
- sb.append(" fmt=");
- sb.append(format);
- if (windowAnimations != 0) {
- sb.append(" wanim=0x");
- sb.append(Integer.toHexString(windowAnimations));
- }
- if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
- sb.append(" or=");
- sb.append(screenOrientation);
- }
- sb.append('}');
- return sb.toString();
- }
-
- private CharSequence mTitle = "";
- }
-}