ttdt_sender_imprint_on(library call)

NAME
ttdt_sender_imprint_on — act like a child of the specified tool

SYNOPSIS

#include &<Tt/tttk.h>
Tt_status ttdt_sender_imprint_on(
const char *handler,
Tt_message contract,
char **display,
int *width,
int *height,
int *xoffset,
int *yoffset,
XtAppContext app2run,
int ms_timeout);

DESCRIPTION

The ttdt_sender_imprint_on function is used to make the calling tool act equivalently to a child of another specified tool. The calling tool adopts the other tool's X11 display, locale, and current working directory. It also learns the other tool's X11 geometry, so that it may position itself appropriately.

If the handler argument is non- NULL, the requests are addressed to that procid using TT_HANDLER. If handler is NULL and the contract argument is non- NULL, the requests are addressed to the tt_message_sender(3) of the contract, using TT_HANDLER.

The contract argument is passed to tttk_message_create(3) as the context argument.

If the display argument is not NULL, ttdt_sender_imprint_on returns the other tool's display in *display. If display is NULL, ttdt_sender_imprint_on sets the DISPLAY environment variable to the other tool's display.

If each of the width, height, xoffset, and yoffset arguments are NULL, then ttdt_sender_imprint_on does not send the other tool a Get_Geometry request.

The ttdt_sender_imprint_on function passes the app2run and ms_timeout arguments to tttk_block_while(3), blocking on the replies to the requests it sends.

If the display argument is not NULL, ttdt_sender_imprint_on sets *display to a string that can be freed with tt_free.

If for some reason no width or height is returned by the other tool, ttdt_sender_imprint_on sets *width or *height to -1. If no positional information is returned, ttdt_sender_imprint_on sets *xoffset and *yoffset to {INT_MAX}.

RETURN VALUE

Upon successful completion, the ttdt_sender_imprint_on function returns the status of the operation as one of the following Tt_status values:

TT_OK
    The operation completed successfully.

TT_DESKTOP_ETIMEDOUT
    One or more of the sent requests did not complete within ms_timeout milliseconds.

TT_ERR_NOMEM
    There is insufficient memory available to perform the function.

TT_ERR_NOMP
    The ttsession(1) process is not running and the ToolTalk service cannot restart it.

TT_ERR_OVERFLOW
    The ToolTalk service has more active messages than it can handle. (The maximum number of active messages is implementation specific, but is at least 2000.)

TT_ERR_PROCID
    The specified process identifier is out of date or invalid.

APPLICATION USAGE

If both the handler and contract are zero, the requests are addressed to no tool in particular, using TT_PROCEDURE; this is not recommended.

SEE ALSO

Tt/tttk.h - Tttttk(5), tt_free(3), tt_message_sender(3), tttk_block_while(3), tttk_message_create(3).