|
|
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.