|
|
1.1 root 1: .NH 2
2: Manipulating Windows
3: .PP
4: .IN "XMapWindow"
5: A window is considered `mapped' if a \fIXMapWindow\fP
6: call has been made on it.
7: It may not be visible on the screen for either of two reasons:
8: 1) it may be obscured by another opaque sibling window or
9: 2) one of its ancestors is not mapped.
10: .IN "Exposure Events"
11: Exposure events will be generated for the window when part or all of
12: it become visible on the screen; a client will only receive the
13: exposure events if it has asked for them using \fIXSelectInput\fP.
14: .IN "XSelectInput"
15: .FD
16: .IN "Definitions" "XMapWindow"
17: .IN "XMapWindow"
18: XMapWindow (w)
19: Window w;
20: .FN
21: \fIXMapWindow\fP maps the window and raises the window and all of its
22: subwindows which have had map requests to the top of the stack of windows.
23: A subwindow will appear on the screen so long as all of its ancestors
24: are mapped.
25: The previous contents of all
26: opaque windows are lost; mapping of transparent windows does not affect
27: the screen.
28: .PP
29: Mapping a window that has an unmapped ancestor does not display the
30: window, but marks it as eligible for display when the ancestor becomes
31: mapped.
32: .PP
33: Mapping an already mapped window has no effect
34: (it does NOT raise it).
35: .PP
36: .IN "XMapWindow"
37: .IN "ExposeWindow Event"
38: If the window is opaque,
39: \fIXMapWindow\fP generates \fIExposeWindow\fP events on
40: each opaque window that it causes to become displayed. If the client
41: first maps the window, then paints the window, then begins
42: processing input events, the window will be painted twice. To avoid this,
43: the client should either
44: .IN "XSelectInput"
45: a) first Map, then call \fIXSelectInput\fP for exposure events,
46: then repaint the
47: window(s) explicitly, or
48: b) first call \fIXSelectInput\fP for exposure events,
49: then map, then process input
50: events normally. The event list will include \fIExposeWindow\fP for each
51: window that has appeared on the screen; the client's normal response to
52: an \fIExposeWindow\fP should be to repaint the window.
53: Method b) is preferred as it usually leads to simpler programs.
54: .FD
55: .IN "Definitions" "XMapSubwindows"
56: .IN "XMapSubwindows"
57: XMapSubwindows (w)
58: Window w;
59: .FN
60: .PP
61: \fIXMapSubwindows\fP maps all subwindows of the specified window in
62: an unpredictable order.
63: .PP
64: .IN "ExposeWindow Event"
65: It also generates an \fIExposeWindow\fP
66: event on each newly displayed opaque window.
67: .PP
68: Note that this is MUCH more efficient than mapping many windows
69: one at a time, as much of the work need only be performed once for all
70: of the windows rather than for each window.
71: .FD
72: .IN "Definitions" "XUnmapWindow"
73: .IN "XUnmapWindow"
74: XUnmapWindow (w)
75: Window w;
76: .FN
77: \fIXUnmapWindow\fP unmaps the window.
78: Any child window will no longer be visible until another map call is
79: made on the parent.
80: (Another words, the subwindows are still mapped, but not visible
81: until the parent is mapped.)
82: .IN "UnmapWindow Event"
83: It generates an \fIUnmapWindow\fP event for \fIw\fP, regardless
84: of whether it is opaque or transparent.
85: Child windows will NOT receive \fIUnmapWindow\fP events.
86: .PP
87: Unmapping a transparent window does not affect the
88: screen or generate any exposure events.
89: Unmapping an opaque window will
90: generate exposure events on opaque windows that were formerly obscured
91: by it and its children.
92: .FD
93: .IN "Definitions" "XUnmapTransparent"
94: .IN "XUnmapTransparent"
95: XUnmapTransparent (w)
96: Window w;
97: .FN
98: Unmaps the window but does not affect the
99: screen, even if the window is opaque, and does not generate any
100: exposure (or unmap) events.
101: .IN "Menus"
102: This is intended for use mainly by pop-up
103: menus in conjunction with
104: .IN "XPixmapSave"
105: \fIXPixmapSave\fP to suppress exposure events; the client should normally
106: restore the saved pixmap to the area formerly covered by the unmapped
107: window.
108: .FD
109: .IN "Definitions" "XUnmapSubwindows"
110: .IN "XUnmapSubwindows"
111: XUnmapSubwindows(w)
112: Window w;
113: .FN
114: Unmaps all subwindows of the specified window.
115: .IN "UnmapWindow Event"
116: It also generates an UnmapWindow event on each subwindow and generates
117: Exposure events on formerly obscured opaque windows.
118: .PP
119: Note that this is MUCH more efficient than unmapping many windows
120: one at a time, as much of the work need only be performed once for all
121: of the windows rather than for each window.
122: .FD
123: .IN "Definitions" "XMoveWindow"
124: .IN "XMoveWindow"
125: XMoveWindow (w, x, y)
126: Window w;
127: int x, y;
128: .FN
129: \fIXMoveWindow\fP moves and raises the window, without changing its size.
130: It does not change the mapping state of the window.
131: The
132: \fIx\fP and \fIy\fP coordinates are the new top left outside corner; they are
133: relative to the inside of the parent window's borders.
134: Moving an mapped opaque window may or may not lose its contents depending on
135: 1) if its tile mode is
136: relative or 2) if the window is obscured by non-children.
137: Moving a transparent window does not affect the screen.
138: .IN "Exposure Events"
139: If the
140: contents are lost, exposure events will be generated for the window and
141: any mapped opaque subwindows.
142: Moving a transparent window does not
143: affect the screen.
144: .PP
145: .IN "Exposure Events"
146: Moving a mapped opaque window will generate exposure events on any
147: formerly obscured opaque windows.
148: .FD
149: .IN "Definitions" "XChangeWindow"
150: .IN "XChangeWindow"
151: XChangeWindow (w, width, height)
152: Window w;
153: int width, height;
154: .FN
155: \fIXChangeWindow\fP changes the size of the window without
156: changing its upper left coordinate.
157: The new \fIwidth\fP and \fIheight\fP are inside
158: dimensions; they do not include the window's borders.
159: .PP
160: \fIXChangeWindow\fP always raises the window.
161: .IN "ExposeWindow Event"
162: Changing the size of a mapped opaque window loses its contents and generates
163: an \fIExposeWindow\fP event.
164: Changing the size of a transparent window does
165: not affect the screen.
166: .PP
167: If a mapped opaque window is made smaller, exposure events will be generated on
168: opaque windows that it formerly obscured.
169: .PP
170: The origin of the window is not changed.
171: .FD
172: .IN "Definitions" "XConfigureWindow"
173: .IN "XConfigureWindow"
174: XConfigureWindow (w, x, y, width, height)
175: Window w;
176: int x, y, width, height;
177: .FN
178: \fIXConfigureWindow\fP changes the size and location of the window.
179: Configuring a mapped opaque window loses its contents and generates an
180: .IN "ExposeWindow Event"
181: ExposeWindow event; configuring a transparent window does not affect the
182: screen.
183: \fIXConfigureWindow\fP always raises the window.
184: .PP
185: Configuring a window may generate exposure events on opaque windows that the
186: window formerly obscured, depending on the new size and location parameters.
187: .PP
188: .IN "XChangeWindow"
189: To change the size only, call \fIXChangeWindow\fP. To change the location
190: .IN "XMoveWindow"
191: only, call \fIXMoveWindow\fP.
192: .FD
193: .IN "Definitions" "XRaiseWindow"
194: .IN "XRaiseWindow"
195: XRaiseWindow (w)
196: Window w;
197: .FN
198: \fIXRaiseWindow\fP `raises' this window so that no sibling window obscures it.
199: If the windows are regarded as overlapping sheets of paper stacked on a desk,
200: then raising a window is analogous to moving the sheet to the top of
201: the stack, while leaving its x and y location on the desk constant.
202: .PP
203: .IN "Exposure Events"
204: Raising a mapped opaque window may generate exposure events for the
205: window and any mapped opaque subwindows that were formerly obscured.
206: .PP
207: Raising a transparent window does not affect the screen.
208: Transparent windows never obscure other windows for the purposes
209: of output, but do obscure for the purposes of cursor and input
210: control.
211: .FD
212: .IN "Definitions" "XLowerWindow"
213: .IN "XLowerWindow"
214: XLowerWindow (w)
215: Window w;
216: .FN
217: \fIXLowerWindow\fP `lowers' this window so that it does
218: not obscure any sibling
219: windows.
220: If the windows are regarded as overlapping sheets of paper
221: stacked on a desk, then lowering a window is analogous to moving the
222: sheet to the bottom of the stack, while leaving its x and y location on
223: the desk constant.
224: .PP
225: .IN "Exposure Events"
226: Lowering a mapped opaque window will generate exposure events on any
227: opaque windows it formerly obscured.
228: .PP
229: Lowering a transparent window does not affect the screen.
230: .FD
231: .IN "Definitions" "XCircWindowUp"
232: .IN "XCircWindowUp"
233: XCircWindowUp (w)
234: Window w;
235: .FN
236: \fIXCircWindowUp\fP raises the lowest mapped child of this window that is partially
237: or completely
238: obscured by another child.
239: Completely unobscured children are not affected.
240: .IN "Exposure Events"
241: This will
242: generate exposure events on that child (and its opaque descendents) if any part
243: of it was formerly obscured.
244: Repeated executions lead to round robin raising.
245: .FD
246: .IN "Definitions" "XCircWindowDown"
247: XCircWindowDown (w)
248: Window w;
249: .FN
250: Lower the highest mapped child of the window that partially or completely
251: obscures another child.
252: Completely unobscured children are not affected.
253: Generates exposure events on any window formerly obscured.
254: Repeated executions lead to round robin lowering.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.