# Copyright (c) 1990-1993 The Regents of the University of California. # Copyright (c) 1994-1996 Sun Microsystems, Inc. # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # =head1 NAME Tk_ConfigureWindow, Tk_MoveWindow, Tk_ResizeWindow, Tk_MoveResizeWindow, Tk_SetWindowBorderWidth, Tk_ChangeWindowAttributes, Tk_SetWindowBackground, Tk_SetWindowBackgroundPixmap, Tk_SetWindowBorder, Tk_SetWindowBorderPixmap, Tk_SetWindowColormap, Tk_DefineCursor, Tk_UndefineCursor - change window configuration or attributes =for category C Programming =head1 SYNOPSIS B<#include E<lt>tk.hE<gt>> B<Tk_ConfigureWindow>(I<tkwin, valueMask, valuePtr>) B<Tk_MoveWindow>(I<tkwin, x, y>) B<Tk_ResizeWindow>(I<tkwin, width, height>) B<Tk_MoveResizeWindow>(I<tkwin, x, y, width, height>) B<Tk_SetWindowBorderWidth>(I<tkwin, borderWidth>) B<Tk_ChangeWindowAttributes>(I<tkwin, valueMask, attsPtr>) B<Tk_SetWindowBackground>(I<tkwin, pixel>) B<Tk_SetWindowBackgroundPixmap>(I<tkwin, pixmap>) B<Tk_SetWindowBorder>(I<tkwin, pixel>) B<Tk_SetWindowBorderPixmap>(I<tkwin, pixmap>) B<Tk_SetWindowColormap>(I<tkwin, colormap>) B<Tk_DefineCursor>(I<tkwin, cursor>) B<Tk_UndefineCursor>(I<tkwin>) =head1 ARGUMENTS =over 4 =item Tk_Window tkwin (in) Token for window. =item "unsigned int" valueMask (in) OR-ed mask of values like B<CWX> or B<CWBorderPixel>, indicating which fields of I<*valuePtr> or I<*attsPtr> to use. =item XWindowChanges *valuePtr (in) Points to a structure containing new values for the configuration parameters selected by I<valueMask>. Fields not selected by I<valueMask> are ignored. =item int x (in) New x-coordinate for I<tkwin>'s top left pixel (including border, if any) within tkwin's parent. =item int y (in) New y-coordinate for I<tkwin>'s top left pixel (including border, if any) within tkwin's parent. =item "int" width (in) New width for I<tkwin> (interior, not including border). =item "int" height (in) New height for I<tkwin> (interior, not including border). =item "int" borderWidth (in) New width for I<tkwin>'s border. =item XSetWindowAttributes *attsPtr (in) Points to a structure containing new values for the attributes given by the I<valueMask> argument. Attributes not selected by I<valueMask> are ignored. =item "unsigned long" pixel (in) New background or border color for window. =item Pixmap pixmap (in) New pixmap to use for background or border of I<tkwin>. WARNING: cannot necessarily be deleted immediately, as for Xlib calls. See note below. =item Colormap colormap (in) New colormap to use for I<tkwin>. =item Tk_Cursor cursor (in) New cursor to use for I<tkwin>. If B<None> is specified, then I<tkwin> will not have its own cursor; it will use the cursor of its parent. =back =head1 DESCRIPTION These procedures are analogous to the X library procedures with similar names, such as B<XConfigureWindow>. Each one of the above procedures calls the corresponding X procedure and also saves the configuration information in Tk's local structure for the window. This allows the information to be retrieved quickly by the application (using macros such as B<Tk_X> and B<Tk_Height>) without having to contact the X server. In addition, if no X window has actually been created for I<tkwin> yet, these procedures do not issue X operations or cause event handlers to be invoked; they save the information in Tk's local structure for the window; when the window is created later, the saved information will be used to configure the window. See the X library documentation for details on what these procedures do and how they use their arguments. In the procedures B<Tk_ConfigureWindow>, B<Tk_MoveWindow>, B<Tk_ResizeWindow>, B<Tk_MoveResizeWindow>, and B<Tk_SetWindowBorderWidth>, if I<tkwin> is an internal window then event handlers interested in configure events are invoked immediately, before the procedure returns. If I<tkwin> is a top-level window then the event handlers will be invoked later, after X has seen the request and returned an event for it. Applications using Tk should never call procedures like B<XConfigureWindow> directly; they should always use the corresponding Tk procedures. The size and location of a window should only be modified by the appropriate geometry manager for that window and never by a window itself (but see L<Tk::MoveToplev> for moving a top-level window). You may not use B<Tk_ConfigureWindow> to change the stacking order of a window (I<valueMask> may not contain the B<CWSibling> or B<CWStackMode> bits). To change the stacking order, use the procedure B<Tk_RestackWindow>. The procedure B<Tk_SetWindowColormap> will automatically add I<tkwin> to the B<TK_COLORMAP_WINDOWS> property of its nearest top-level ancestor if the new colormap is different from that of I<tkwin>'s parent and I<tkwin> isn't already in the B<TK_COLORMAP_WINDOWS> property. =head1 BUGS B<Tk_SetWindowBackgroundPixmap> and B<Tk_SetWindowBorderPixmap> differ slightly from their Xlib counterparts in that the I<pixmap> argument may not necessarily be deleted immediately after calling one of these procedures. This is because I<tkwin>'s window may not exist yet at the time of the call, in which case I<pixmap> is merely saved and used later when I<tkwin>'s window is actually created. If you wish to delete I<pixmap>, then call B<Tk_MakeWindowExist> first to be sure that I<tkwin>'s window exists and I<pixmap> has been passed to the X server. A similar problem occurs for the I<cursor> argument passed to B<Tk_DefineCursor>. The solution is the same as for pixmaps above: call B<Tk_MakeWindowExist> before freeing the cursor. =head1 SEE ALSO L<Tk::MoveToplev>, L<Tk::Restack> =head1 KEYWORDS attributes, border, color, configure, height, pixel, pixmap, width, window, x, y