Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Your IP : 18.227.105.110
/* libwmf (<libwmf/macro.h>): library for wmf conversion
Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources
The libwmf Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The libwmf Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the libwmf Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef LIBWMF_MACRO_H
#define LIBWMF_MACRO_H
#include <math.h>
#include <libwmf/defs.h>
#include <libwmf/types.h>
#include <libwmf/ipa.h>
/**
* WMF_PEN_STYLE(wmfPen* P) -> (U16) pen style
*/
#define WMF_PEN_STYLE(P) ((P)->lopnStyle & PS_STYLE_MASK)
/**
* WMF_PEN_ENDCAP(wmfPen* P) -> (U16) endcap style
*/
#define WMF_PEN_ENDCAP(P) ((P)->lopnStyle & PS_ENDCAP_MASK)
/**
* WMF_PEN_JOIN(wmfPen* P) -> (U16) join style
*/
#define WMF_PEN_JOIN(P) ((P)->lopnStyle & PS_JOIN_MASK)
/**
* WMF_PEN_TYPE(wmfPen* P) -> (U16) `type' of pen (??)
*/
#define WMF_PEN_TYPE(P) ((P)->lopnStyle & PS_TYPE_MASK)
/**
* WMF_PEN_WIDTH(wmfPen* P) -> (double) pen `width' (thickness w.r.t. x-axis)
*/
#define WMF_PEN_WIDTH(P) ((P)->width)
/**
* WMF_PEN_HEIGHT(wmfPen* P) -> (double) pen `height' (thickness w.r.t. y-axis)
*/
#define WMF_PEN_HEIGHT(P) ((P)->height)
/**
* WMF_PEN_COLOR(wmfPen* P) -> (wmfRGB*) pen color
*/
#define WMF_PEN_COLOR(P) (&((P)->lopnColor))
/**
* WMF_PEN_SET_STYLE(wmfPen* P,(U16) pen style)
*/
#define WMF_PEN_SET_STYLE(P,Z) (P)->lopnStyle = ((P)->lopnStyle & ~PS_STYLE_MASK ) | ((Z) & PS_STYLE_MASK )
/**
* WMF_PEN_SET_ENDCAP(wmfPen* P,(U16) endcap style)
*/
#define WMF_PEN_SET_ENDCAP(P,Z) (P)->lopnStyle = ((P)->lopnStyle & ~PS_ENDCAP_MASK) | ((Z) & PS_ENDCAP_MASK)
/**
* WMF_PEN_SET_JOIN(wmfPen* P,(U16) join style)
*/
#define WMF_PEN_SET_JOIN(P,Z) (P)->lopnStyle = ((P)->lopnStyle & ~PS_JOIN_MASK ) | ((Z) & PS_JOIN_MASK )
/**
* WMF_PEN_SET_TYPE(wmfPen* P,(U16) `type' of pen)
*/
#define WMF_PEN_SET_TYPE(P,Z) (P)->lopnStyle = ((P)->lopnStyle & ~PS_TYPE_MASK ) | ((Z) & PS_TYPE_MASK )
/**
* WMF_PEN_SET_WIDTH(wmfPen* P,(double) pen `width')
*/
#define WMF_PEN_SET_WIDTH(P,Z) (P)->width = (Z)
/**
* WMF_PEN_SET_HEIGHT(wmfPen* P,(double) pen `height')
*/
#define WMF_PEN_SET_HEIGHT(P,Z) (P)->height = (Z)
/**
* WMF_PEN_SET_COLOR(wmfPen* P,(wmfRGB*) pen color)
*/
#define WMF_PEN_SET_COLOR(P,Z) (P)->lopnColor = (*(Z))
/**
* WMF_BRUSH_STYLE(wmfBrush* B) -> (U16) brush style
*/
#define WMF_BRUSH_STYLE(B) ((B)->lbStyle)
/**
* WMF_BRUSH_HATCH(wmfBrush* B) -> (U16) brush hatch style
*/
#define WMF_BRUSH_HATCH(B) ((B)->lbHatch)
/**
* WMF_BRUSH_COLOR(wmfBrush* B) -> (wmfRGB*) brush color
*/
#define WMF_BRUSH_COLOR(B) (&((B)->lbColor))
/**
* WMF_BRUSH_BITMAP(wmfBrush* B) -> (wmfBMP*) brush bitmap
*/
#define WMF_BRUSH_BITMAP(B) (&((B)->bmp))
/**
* WMF_BRUSH_SET_STYLE(wmfBrush* B,(U16) brush style)
*/
#define WMF_BRUSH_SET_STYLE(B,Z) (B)->lbStyle = (Z)
/**
* WMF_BRUSH_SET_HATCH(wmfBrush* B,(U16) brush hatch style)
*/
#define WMF_BRUSH_SET_HATCH(B,Z) (B)->lbHatch = (Z)
/**
* WMF_BRUSH_SET_COLOR(wmfBrush* B,(wmfRGB*) brush color)
*/
#define WMF_BRUSH_SET_COLOR(B,Z) (B)->lbColor = (*(Z))
/**
* WMF_BRUSH_SET_BITMAP(wmfBrush* B,(wmfBMP*) brush bitmap)
*/
#define WMF_BRUSH_SET_BITMAP(B,Z) (B)->bmp = (*(Z))
/**
* WMF_TEXT_ANGLE(wmfFont* F) -> (double) text angle in radians
*/
#define WMF_TEXT_ANGLE(F) ((((double) (F)->lfEscapement) / 10) * M_PI / 180)
/**
* WMF_TEXT_UNDERLINE(wmfFont* F) -> (U8) ?? whether to underline (?? how thick)
*/
#define WMF_TEXT_UNDERLINE(F) ((F)->lfUnderline)
/**
* WMF_TEXT_STRIKEOUT(wmfFont* F) -> (U8) ?? whether to strikeout (?? how thick)
*/
#define WMF_TEXT_STRIKEOUT(F) ((F)->lfStrikeOut)
/**
* WMF_FONT_WIDTH(wmfFont* F) -> (U16) font `width'
*/
#define WMF_FONT_WIDTH(F) ((F)->lfWidth)
/**
* WMF_FONT_HEIGHT(wmfFont* F) -> (U16) font height
*/
#define WMF_FONT_HEIGHT(F) ((F)->lfHeight)
/**
* WMF_FONT_ESCAPEMENT(wmfFont* F) -> (S16) escapement [use WMF_TEXT_ANGLE instead]
*/
#define WMF_FONT_ESCAPEMENT(F) ((F)->lfEscapement)
/**
* WMF_FONT_ORIENTATION(wmfFont* F) -> (S16) orientation [??]
*/
#define WMF_FONT_ORIENTATION(F) ((F)->lfOrientation)
/**
* WMF_FONT_WEIGHT(wmfFont* F) -> (U16) weight
*/
#define WMF_FONT_WEIGHT(F) ((F)->lfWeight)
/**
* WMF_FONT_ITALIC(wmfFont* F) -> (U8) italic
*/
#define WMF_FONT_ITALIC(F) ((F)->lfItalic)
/**
* WMF_FONT_OUT(wmfFont* F) -> (U8) output precision [??]
*/
#define WMF_FONT_OUT(F) ((F)->lfOutPrecision)
/**
* WMF_FONT_CLIP(wmfFont* F) -> (U8) clip precision [??]
*/
#define WMF_FONT_CLIP(F) ((F)->lfClipPrecision)
/**
* WMF_FONT_QUALITY(wmfFont* F) -> (U8) quality [??]
*/
#define WMF_FONT_QUALITY(F) ((F)->lfQuality)
/**
* WMF_FONT_PITCH(wmfFont* F) -> (U8) pitch & family [??]
*/
#define WMF_FONT_PITCH(F) ((F)->lfPitchAndFamily)
/**
* WMF_FONT_CHARSET(wmfFont* F) -> (U8) character set
*/
#define WMF_FONT_CHARSET(F) ((F)->lfCharSet)
/**
* WMF_FONT_NAME(wmfFont* F) -> (char*) font name supplied by metafile
*/
#define WMF_FONT_NAME(F) ((F)->lfFaceName)
/**
* WMF_TEXT_SET_UNDERLINE(wmfFont* F,(U8) ?? whether to underline (?? how thick))
*/
#define WMF_TEXT_SET_UNDERLINE(F,Z) (F)->lfUnderline = (Z)
/**
* WMF_TEXT_SET_STRIKEOUT(wmfFont* F,(U8) ?? whether to strikeout (?? how thick))
*/
#define WMF_TEXT_SET_STRIKEOUT(F,Z) (F)->lfStrikeOut = (Z)
/**
* WMF_FONT_SET_WIDTH(wmfFont* F,(U16) font `width')
*/
#define WMF_FONT_SET_WIDTH(F,Z) (F)->lfWidth = (Z)
/**
* WMF_FONT_SET_HEIGHT(wmfFont* F,(U16) font height)
*/
#define WMF_FONT_SET_HEIGHT(F,Z) (F)->lfHeight = (Z)
/**
* WMF_FONT_SET_ESCAPEMENT(wmfFont* F,(S16) escapement)
*/
#define WMF_FONT_SET_ESCAPEMENT(F,Z) (F)->lfEscapement = (Z)
/**
* WMF_FONT_SET_ORIENTATION(wmfFont* F,(S16) orientation [??])
*/
#define WMF_FONT_SET_ORIENTATION(F,Z) (F)->lfOrientation = (Z)
/**
* WMF_FONT_SET_WEIGHT(wmfFont* F,(U16) weight)
*/
#define WMF_FONT_SET_WEIGHT(F,Z) (F)->lfWeight = (Z)
/**
* WMF_FONT_SET_ITALIC(wmfFont* F,(U8) italic)
*/
#define WMF_FONT_SET_ITALIC(F,Z) (F)->lfItalic = (Z)
/**
* WMF_FONT_SET_OUT(wmfFont* F,(U8) output precision [??])
*/
#define WMF_FONT_SET_OUT(F,Z) (F)->lfOutPrecision = (Z)
/**
* WMF_FONT_SET_CLIP(wmfFont* F,(U8) clip precision [??])
*/
#define WMF_FONT_SET_CLIP(F,Z) (F)->lfClipPrecision = (Z)
/**
* WMF_FONT_SET_QUALITY(wmfFont* F,(U8) quality [??])
*/
#define WMF_FONT_SET_QUALITY(F,Z) (F)->lfQuality = (Z)
/**
* WMF_FONT_SET_PITCH(wmfFont* F,(U8) pitch & family [??])
*/
#define WMF_FONT_SET_PITCH(F,Z) (F)->lfPitchAndFamily = (Z)
/**
* WMF_FONT_SET_CHARSET(wmfFont* F,(U8) chracter set)
*/
#define WMF_FONT_SET_CHARSET(F,Z) (F)->lfCharSet = (Z)
/**
* WMF_FONT_SET_NAME(wmfFont* F,(char*) font name supplied by metafile [do not free this string!])
*/
#define WMF_FONT_SET_NAME(F,Z) (F)->lfFaceName = (Z)
/**
* WMF_DC_BRUSH(wmfDC* C) -> (wmfBrush*) current brush
*/
#define WMF_DC_BRUSH(C) ((C)->brush)
/**
* WMF_DC_PEN(wmfDC* C) -> (wmfPen*) current pen
*/
#define WMF_DC_PEN(C) ((C)->pen)
/**
* WMF_DC_FONT(wmfDC* C) -> (wmfFont*) current font
*/
#define WMF_DC_FONT(C) ((C)->font)
/**
* WMF_DC_TEXTCOLOR(wmfDC* C) -> (wmfRGB*) text color
*/
#define WMF_DC_TEXTCOLOR(C) (&((C)->textcolor))
/**
* WMF_DC_BACKGROUND(wmfDC* C) -> (wmfRGB*) background color
*/
#define WMF_DC_BACKGROUND(C) (&((C)->bgcolor))
/**
* WMF_DC_OPAQUE(wmfDC* C) -> (U16) whether to fill opaque (non-zero if true)
*/
#define WMF_DC_OPAQUE(C) ((C)->bgmode == OPAQUE)
/**
* WMF_DC_TRANSPARENT(wmfDC* C) -> (U16) whether to fill transparent
*/
#define WMF_DC_TRANSPARENT(C) ((C)->bgmode == TRANSPARENT)
/**
* WMF_DC_POLYFILL(wmfDC* C) -> (U16) how to fill polygons
*/
#define WMF_DC_POLYFILL(C) ((C)->polyfillmode)
/**
* WMF_DC_ROP(wmfDC* C) -> (U16) ROP mode
*/
#define WMF_DC_ROP(C) ((C)->ROPmode)
/**
* WMF_DC_TEXTALIGN(wmfDC* C) -> (U16) how to align text
*/
#define WMF_DC_TEXTALIGN(C) ((C)->textalign)
/**
* WMF_DC_CHAREXTRA(wmfDC* C) -> (U16) char [extended character set??]
*/
#define WMF_DC_CHAREXTRA(C) ((C)->charextra)
/**
* WMF_DC_BREAKEXTRA(wmfDC* C) -> (U16) break [line break??]
*/
#define WMF_DC_BREAKEXTRA(C) ((C)->breakextra)
/* Definition subject to change:
*/
/**
* WMF_DC_SET_PEN(wmfDC* C,(wmfPen*) current pen)
*/
#define WMF_DC_SET_PEN(C,Z) (C)->pen = (Z)
/**
* WMF_DC_SET_BRUSH(wmfDC* C,(wmfBrush*) current brush)
*/
#define WMF_DC_SET_BRUSH(C,Z) (C)->brush = (Z)
/**
* WMF_DC_SET_FONT(wmfDC* C,(wmfFont*) current font)
*/
#define WMF_DC_SET_FONT(C,Z) (C)->font = (Z)
/**
* WMF_DC_SET_TEXTCOLOR(wmfDC* C,(wmfRGB*) text color)
*/
#define WMF_DC_SET_TEXTCOLOR(C,Z) (C)->textcolor = (*(Z))
/**
* WMF_DC_SET_BACKGROUND(wmfDC* C,(wmfRGB*) background color)
*/
#define WMF_DC_SET_BACKGROUND(C,Z) (C)->bgcolor = (*(Z))
/**
* WMF_DC_SET_OPAQUE(wmfDC* C)
*/
#define WMF_DC_SET_OPAQUE(C) (C)->bgmode = OPAQUE
/**
* WMF_DC_SET_TRANSPARENT(wmfDC* C)
*/
#define WMF_DC_SET_TRANSPARENT(C) (C)->bgmode = TRANSPARENT
/**
* WMF_DC_SET_POLYFILL(wmfDC* C,(U16) how to fill polygons)
*/
#define WMF_DC_SET_POLYFILL(C,Z) (C)->polyfillmode = (Z)
/**
* WMF_DC_SET_ROP(wmfDC* C,(U16) ROP mode)
*/
#define WMF_DC_SET_ROP(C,Z) (C)->ROPmode = (Z)
/**
* WMF_DC_SET_TEXTALIGN(wmfDC* C,(U16) how to align text)
*/
#define WMF_DC_SET_TEXTALIGN(C,Z) (C)->textalign = (Z)
/**
* WMF_DC_SET_CHAREXTRA(wmfDC* C,(U16) char [extended character set??])
*/
#define WMF_DC_SET_CHAREXTRA(C,Z) (C)->charextra = (Z)
/**
* WMF_DC_SET_BREAKEXTRA(wmfDC* C,(U16) break [line break??])
*/
#define WMF_DC_SET_BREAKEXTRA(C,Z) (C)->breakextra = (Z)
#endif /* ! LIBWMF_MACRO_H */
|