|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
/*
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
Copyright 1989, 1998 The Open Group
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
Permission to use, copy, modify, distribute, and sell this software and its
|
|
Packit |
5bd3a9 |
documentation for any purpose is hereby granted without fee, provided that
|
|
Packit |
5bd3a9 |
the above copyright notice appear in all copies and that both that
|
|
Packit |
5bd3a9 |
copyright notice and this permission notice appear in supporting
|
|
Packit |
5bd3a9 |
documentation.
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
The above copyright notice and this permission notice shall be included in
|
|
Packit |
5bd3a9 |
all copies or substantial portions of the Software.
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
Packit |
5bd3a9 |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
Packit |
5bd3a9 |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
Packit |
5bd3a9 |
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
Packit |
5bd3a9 |
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
Packit |
5bd3a9 |
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
Except as contained in this notice, the name of The Open Group shall not be
|
|
Packit |
5bd3a9 |
used in advertising or otherwise to promote the sale, use or other dealings
|
|
Packit |
5bd3a9 |
in this Software without prior written authorization from The Open Group.
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
*/
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
5bd3a9 |
#include <config.h>
|
|
Packit |
5bd3a9 |
#endif
|
|
Packit |
5bd3a9 |
#include "Xlibint.h"
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
/*
|
|
Packit |
5bd3a9 |
* All gc fields except GCClipMask and GCDashList
|
|
Packit |
5bd3a9 |
*/
|
|
Packit |
5bd3a9 |
#define ValidGCValuesBits (GCFunction | GCPlaneMask | GCForeground | \
|
|
Packit |
5bd3a9 |
GCBackground | GCLineWidth | GCLineStyle | \
|
|
Packit |
5bd3a9 |
GCCapStyle | GCJoinStyle | GCFillStyle | \
|
|
Packit |
5bd3a9 |
GCFillRule | GCTile | GCStipple | \
|
|
Packit |
5bd3a9 |
GCTileStipXOrigin | GCTileStipYOrigin | \
|
|
Packit |
5bd3a9 |
GCFont | GCSubwindowMode | GCGraphicsExposures | \
|
|
Packit |
5bd3a9 |
GCClipXOrigin | GCClipYOrigin | GCDashOffset | \
|
|
Packit |
5bd3a9 |
GCArcMode)
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
/*ARGSUSED*/
|
|
Packit |
5bd3a9 |
Status XGetGCValues (
|
|
Packit |
5bd3a9 |
Display *dpy,
|
|
Packit |
5bd3a9 |
GC gc,
|
|
Packit |
5bd3a9 |
unsigned long valuemask,
|
|
Packit |
5bd3a9 |
XGCValues *values)
|
|
Packit |
5bd3a9 |
{
|
|
Packit |
5bd3a9 |
if (valuemask == ValidGCValuesBits) {
|
|
Packit |
5bd3a9 |
char dashes = values->dashes;
|
|
Packit |
5bd3a9 |
Pixmap clip_mask = values->clip_mask;
|
|
Packit |
5bd3a9 |
*values = gc->values;
|
|
Packit |
5bd3a9 |
values->dashes = dashes;
|
|
Packit |
5bd3a9 |
values->clip_mask = clip_mask;
|
|
Packit |
5bd3a9 |
return True;
|
|
Packit |
5bd3a9 |
}
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & ~ValidGCValuesBits) return False;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCFunction)
|
|
Packit |
5bd3a9 |
values->function = gc->values.function;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCPlaneMask)
|
|
Packit |
5bd3a9 |
values->plane_mask = gc->values.plane_mask;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCForeground)
|
|
Packit |
5bd3a9 |
values->foreground = gc->values.foreground;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCBackground)
|
|
Packit |
5bd3a9 |
values->background = gc->values.background;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCLineWidth)
|
|
Packit |
5bd3a9 |
values->line_width = gc->values.line_width;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCLineStyle)
|
|
Packit |
5bd3a9 |
values->line_style = gc->values.line_style;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCCapStyle)
|
|
Packit |
5bd3a9 |
values->cap_style = gc->values.cap_style;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCJoinStyle)
|
|
Packit |
5bd3a9 |
values->join_style = gc->values.join_style;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCFillStyle)
|
|
Packit |
5bd3a9 |
values->fill_style = gc->values.fill_style;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCFillRule)
|
|
Packit |
5bd3a9 |
values->fill_rule = gc->values.fill_rule;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCTile)
|
|
Packit |
5bd3a9 |
values->tile = gc->values.tile;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCStipple)
|
|
Packit |
5bd3a9 |
values->stipple = gc->values.stipple;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCTileStipXOrigin)
|
|
Packit |
5bd3a9 |
values->ts_x_origin = gc->values.ts_x_origin;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCTileStipYOrigin)
|
|
Packit |
5bd3a9 |
values->ts_y_origin = gc->values.ts_y_origin;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCFont)
|
|
Packit |
5bd3a9 |
values->font = gc->values.font;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCSubwindowMode)
|
|
Packit |
5bd3a9 |
values->subwindow_mode = gc->values.subwindow_mode;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCGraphicsExposures)
|
|
Packit |
5bd3a9 |
values->graphics_exposures = gc->values.graphics_exposures;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCClipXOrigin)
|
|
Packit |
5bd3a9 |
values->clip_x_origin = gc->values.clip_x_origin;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCClipYOrigin)
|
|
Packit |
5bd3a9 |
values->clip_y_origin = gc->values.clip_y_origin;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCDashOffset)
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
values->dash_offset = gc->values.dash_offset;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
if (valuemask & GCArcMode)
|
|
Packit |
5bd3a9 |
values->arc_mode = gc->values.arc_mode;
|
|
Packit |
5bd3a9 |
|
|
Packit |
5bd3a9 |
return True;
|
|
Packit |
5bd3a9 |
}
|