XpSetAttributes
Section: XPRINT FUNCTIONS (3Xp)
Updated: libXp 1.0.3
Index
Return to Main Contents
NAME
XpSetAttributes - Sets or updates an attribute pool in the specified print
context.
SYNOPSIS
cc [ flag... ] file... -lXp [ library... ]
#include <
X11/extensions/Print.h>
void XpSetAttributes
(
display,
context,
type,
pool,
replacement_rule
)
Display *display;
XPContext context;
XPAttributes type;
char *pool;
XPAttrReplacement replacement_rule;
ARGUMENTS
- display
-
Specifies a pointer to the Display structure; returned from XOpenDisplay.
- context
-
The print context whose attribute pool is to be modified.
- type
-
Specifies the attribute pool.
- pool
-
An attribute pool represented as a resource string. Encoded in COMPOUND_TEXT.
- replacement_rule
-
Either XPAttrReplace orXPAttrMerge.
DESCRIPTION
XpSetAttributes accepts pool, a COMPOUND_TEXT resource string representing new
name-value pairs for the attribute pool specified by type. The attribute pool
is modified by the new name-value pairs according to replacement_rule. For
XPAttrReplace, the existing attribute pool is discarded and replaced with
pool. For XPAttrMerge, pool is merged into the existing attribute pool;
pre-existing name-value pairs are replaced, and non-existing name-value pairs
are added. The contents of pool is not affected by this call, and can be freed
by the caller afterwards.
When setting supported attribute names, the X Print Server and associated
driver will validate the new values and ignore those that are invalid;
previous values remain unchanged. When setting unsupported (that is, unknown)
attribute names, no validation is done, and the name-value pairs will be set,
even though they will not be used. When deleting (that is, failing to reset
with XPAttrReplace) a supported attribute name, the X Print Server explicitly
or implicitly resets the attribute to a default value.
When setting certain supported attributes, the X Print Server may modify other
associated attributes. For example, considering the XPPrinterAttr attribute
document-formats-supported, setting the XPDocAttr attribute document-format
may cause a number of other attributes to change.
For attribute pools that are read-only (see "get only" in XPAttributes
definition), attempting to use XpSetAttributes generates a BadMatch. For
attribute pools that are writable, lists of the supported attributes can be
found in the XPPrinterAttr pool.
The lifetime of all attribute pools are bounded by the lifetime of the print
context they are contained in. When set, all attribute values will be retained
across all Xp operations, until changed by the user directly, the X Print
Server directly, or changed because of a side effect when either the user or X
Print Server changed another attribute value.
Refer to a complete description of all print attributes, the precedence
between print attributes, and the side effects of setting certain print
attributes on other print attributes, etc.
To monitor changes to the attribute pools, see XpSelectInput and the event
XPAttributeNotify. Since a print context can be shared among clients, changes
made by one client will be seen by all others, and if selected for, the event
XPAttributeNotify will be sent to all clients referencing the print context
when changes do occur. It is the responsibility of the clients sharing a print
context to coordinate their operations.
STRUCTURES
The values for the typedef XPAttributes in <
X11/extensions/Print.h> are:
#define XPJobAttr 1 /* get/set */
#define XPDocAttr 2 /* get/set */
#define XPPageAttr 3 /* get/set - subset of XPDocAttr */
#define XPPrinterAttr 4 /* get only (library) */
#define XPServerAttr 5 /* get only (library), no context needed */
The values for the typedef XPAttrReplacement in <
X11/extensions/Print.h> are:
#define XPAttrReplace 1
#define XPAttrMerge 2
DIAGNOSTICS
- BadAlloc
-
Insufficient memory.
- BadMatch
-
The attribute pool specified by pool cannot be set.
- BadValue
-
The value specified for type is not valid.
- XPBadContext
-
The specified print context-id is not valid.
- XPBadSequence
-
A request to set an attribute pool occurred at a time when the attribute pool
could not be modified (for example, modifying XPJobAttr immediately after
calling XpStartJob).
FILES
- <X11/extensions/Print.h>
-
SEE ALSO
XpSelectInput(3Xp),
XpStartJob(3Xp)
Index
- NAME
-
- SYNOPSIS
-
- ARGUMENTS
-
- DESCRIPTION
-
- STRUCTURES
-
- DIAGNOSTICS
-
- FILES
-
- SEE ALSO
-