Annotation of 43BSD/contrib/X/doc/Xlib/ch05b.t, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.