1349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown/*
2349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * Copyright (C) 2010 The Android Open Source Project
3349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown *
4349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
5349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * you may not use this file except in compliance with the License.
6349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * You may obtain a copy of the License at
7349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown *
8349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
9349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown *
10349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * Unless required by applicable law or agreed to in writing, software
11349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
12349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * See the License for the specific language governing permissions and
14349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * limitations under the License.
15349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown */
16349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
17349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brownpackage com.android.server;
18349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
19349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brownimport android.view.InputChannel;
20349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
21349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown/**
22349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * Describes input-related window properties for use by the input dispatcher.
23349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown *
24349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown * @hide
25349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown */
26349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brownpublic final class InputWindow {
27349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // The input channel associated with the window.
28349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public InputChannel inputChannel;
29349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
30519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    // The window name.
31519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    public String name;
32519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown
33349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Window layout params attributes.  (WindowManager.LayoutParams)
34349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int layoutParamsFlags;
35349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int layoutParamsType;
36349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
37349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Dispatching timeout.
38349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public long dispatchingTimeoutNanos;
39349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
4085a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    // Window frame area.
41349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int frameLeft;
42349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int frameTop;
4385a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int frameRight;
4485a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int frameBottom;
4585a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown
4685a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    // Window visible frame area.
4785a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int visibleFrameLeft;
4885a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int visibleFrameTop;
4985a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int visibleFrameRight;
5085a3176704b5bfbeece9bd928369fbb76eec7dc6Jeff Brown    public int visibleFrameBottom;
51349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
52349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Window touchable area.
53349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int touchableAreaLeft;
54349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int touchableAreaTop;
55349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int touchableAreaRight;
56349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int touchableAreaBottom;
57349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
58349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Window is visible.
59349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public boolean visible;
60349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
61519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    // Window can receive keys.
62519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    public boolean canReceiveKeys;
63519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown
64349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Window has focus.
65349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public boolean hasFocus;
66349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
67349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Window has wallpaper.  (window is the current wallpaper target)
68349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public boolean hasWallpaper;
69349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
70349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Input event dispatching is paused.
71349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public boolean paused;
72349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
73519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    // Window layer.
74519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown    public int layer;
75519e024d1e682ca458cc2dab743589a12992c0e1Jeff Brown
76349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    // Id of process and user that owns the window.
77349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int ownerPid;
78349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public int ownerUid;
79349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown
80349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    public void recycle() {
81349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown        inputChannel = null;
82349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown    }
83349703effce5acc53ed96f7ed8556131f0c65e18Jeff Brown}
84