2008-03-25 17:34:57 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2007 Google (Evan Stade)
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This 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
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_GP_PRIVATE_H_
|
|
|
|
#define __WINE_GP_PRIVATE_H_
|
|
|
|
|
2013-12-23 18:33:45 +00:00
|
|
|
#include <math.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
|
2013-01-24 23:00:42 +00:00
|
|
|
#define WIN32_NO_STATUS
|
|
|
|
#define _INC_WINDOWS
|
|
|
|
#define COM_NO_WINDOWS_H
|
|
|
|
|
2013-12-23 18:33:45 +00:00
|
|
|
#define NONAMELESSUNION
|
|
|
|
#define COBJMACROS
|
|
|
|
|
2013-01-24 23:00:42 +00:00
|
|
|
#include <windef.h>
|
|
|
|
#include <winbase.h>
|
2013-12-23 18:33:45 +00:00
|
|
|
#include <wingdi.h>
|
2014-01-23 11:25:09 +00:00
|
|
|
#include <objbase.h>
|
2013-01-24 23:00:42 +00:00
|
|
|
#include <wincodecsdk.h>
|
2013-12-23 18:33:45 +00:00
|
|
|
#include <gdiplus.h>
|
|
|
|
|
|
|
|
#include <wine/unicode.h>
|
2013-01-24 23:00:42 +00:00
|
|
|
#include <wine/list.h>
|
2008-03-25 17:34:57 +00:00
|
|
|
|
2013-12-23 18:33:45 +00:00
|
|
|
#include <wine/debug.h>
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(gdiplus);
|
2008-03-25 17:34:57 +00:00
|
|
|
|
|
|
|
#define GP_DEFAULT_PENSTYLE (PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_FLAT | PS_JOIN_MITER)
|
|
|
|
#define MAX_ARC_PTS (13)
|
|
|
|
#define MAX_DASHLEN (16) /* this is a limitation of gdi */
|
|
|
|
#define INCH_HIMETRIC (2540)
|
|
|
|
|
2008-08-05 12:23:58 +00:00
|
|
|
#define VERSION_MAGIC 0xdbc01001
|
|
|
|
#define TENSION_CONST (0.3)
|
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
COLORREF ARGB2COLORREF(ARGB color) DECLSPEC_HIDDEN;
|
|
|
|
HBITMAP ARGB2BMP(ARGB color) DECLSPEC_HIDDEN;
|
2008-03-25 17:34:57 +00:00
|
|
|
extern INT arc2polybezier(GpPointF * points, REAL x1, REAL y1, REAL x2, REAL y2,
|
2012-03-05 20:17:42 +00:00
|
|
|
REAL startAngle, REAL sweepAngle) DECLSPEC_HIDDEN;
|
|
|
|
extern REAL gdiplus_atan2(REAL dy, REAL dx) DECLSPEC_HIDDEN;
|
|
|
|
extern GpStatus hresult_to_status(HRESULT res) DECLSPEC_HIDDEN;
|
2012-12-11 21:40:15 +00:00
|
|
|
extern REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi) DECLSPEC_HIDDEN;
|
|
|
|
extern REAL pixels_to_units(REAL pixels, GpUnit unit, REAL dpi) DECLSPEC_HIDDEN;
|
|
|
|
extern REAL units_scale(GpUnit from, GpUnit to, REAL dpi) DECLSPEC_HIDDEN;
|
2010-11-20 11:24:17 +00:00
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
extern GpStatus graphics_from_image(GpImage *image, GpGraphics **graphics) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
extern GpStatus METAFILE_GetGraphicsContext(GpMetafile* metafile, GpGraphics **result) DECLSPEC_HIDDEN;
|
|
|
|
extern GpStatus METAFILE_GetDC(GpMetafile* metafile, HDC *hdc) DECLSPEC_HIDDEN;
|
|
|
|
extern GpStatus METAFILE_ReleaseDC(GpMetafile* metafile, HDC hdc) DECLSPEC_HIDDEN;
|
2014-04-22 15:42:03 +00:00
|
|
|
extern GpStatus METAFILE_FillRectangles(GpMetafile* metafile, GpBrush* brush,
|
|
|
|
GDIPCONST GpRectF* rects, INT count) DECLSPEC_HIDDEN;
|
|
|
|
extern GpStatus METAFILE_SetPageTransform(GpMetafile* metafile, GpUnit unit, REAL scale) DECLSPEC_HIDDEN;
|
2012-03-05 20:17:42 +00:00
|
|
|
extern GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile) DECLSPEC_HIDDEN;
|
2008-03-25 17:34:57 +00:00
|
|
|
|
2014-04-22 15:42:03 +00:00
|
|
|
extern void calc_curve_bezier(const GpPointF *pts, REAL tension, REAL *x1,
|
2012-03-05 20:17:42 +00:00
|
|
|
REAL *y1, REAL *x2, REAL *y2) DECLSPEC_HIDDEN;
|
2008-08-05 12:23:58 +00:00
|
|
|
extern void calc_curve_bezier_endp(REAL xend, REAL yend, REAL xadj, REAL yadj,
|
2012-03-05 20:17:42 +00:00
|
|
|
REAL tension, REAL *x, REAL *y) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
extern void free_installed_fonts(void) DECLSPEC_HIDDEN;
|
2008-08-05 12:23:58 +00:00
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
extern BOOL lengthen_path(GpPath *path, INT len) DECLSPEC_HIDDEN;
|
2008-09-07 10:32:49 +00:00
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
extern GpStatus trace_path(GpGraphics *graphics, GpPath *path) DECLSPEC_HIDDEN;
|
2008-12-06 09:26:01 +00:00
|
|
|
|
2008-09-07 10:32:49 +00:00
|
|
|
typedef struct region_element region_element;
|
2012-03-05 20:17:42 +00:00
|
|
|
extern void delete_element(region_element *element) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
extern GpStatus get_hatch_data(HatchStyle hatchstyle, const char **result) DECLSPEC_HIDDEN;
|
2008-09-07 10:32:49 +00:00
|
|
|
|
2012-12-11 21:40:15 +00:00
|
|
|
static inline INT gdip_round(REAL x)
|
2008-03-25 17:34:57 +00:00
|
|
|
{
|
2009-04-11 08:58:56 +00:00
|
|
|
return (INT) floorf(x + 0.5);
|
2008-03-25 17:34:57 +00:00
|
|
|
}
|
|
|
|
|
2009-09-03 15:07:25 +00:00
|
|
|
static inline INT ceilr(REAL x)
|
|
|
|
{
|
|
|
|
return (INT) ceilf(x);
|
|
|
|
}
|
|
|
|
|
2008-03-25 17:34:57 +00:00
|
|
|
static inline REAL deg2rad(REAL degrees)
|
|
|
|
{
|
|
|
|
return M_PI * degrees / 180.0;
|
|
|
|
}
|
|
|
|
|
2010-04-20 08:30:10 +00:00
|
|
|
static inline ARGB color_over(ARGB bg, ARGB fg)
|
|
|
|
{
|
|
|
|
BYTE b, g, r, a;
|
|
|
|
BYTE bg_alpha, fg_alpha;
|
|
|
|
|
|
|
|
fg_alpha = (fg>>24)&0xff;
|
|
|
|
|
|
|
|
if (fg_alpha == 0xff) return fg;
|
|
|
|
|
|
|
|
if (fg_alpha == 0) return bg;
|
|
|
|
|
|
|
|
bg_alpha = (((bg>>24)&0xff) * (0xff-fg_alpha)) / 0xff;
|
|
|
|
|
|
|
|
if (bg_alpha == 0) return fg;
|
|
|
|
|
|
|
|
a = bg_alpha + fg_alpha;
|
Sync avifil, credui, crypt32, cryptdlg, cryptui, dnsapi, gdiplus, hhctrl, hnetcfg, iccvid, imaadp32, imm32, jscript, localspl, localui, mapi32, mciavi32, mcicda, mciqtz32, mciseq, mciwave, mshtml, msrle32, msvfw32, msvidc32, msxml3, oleacc, oleaut32 to Wine 1.2rc5 (Samuel Serapion, small changes by me)
Remove Esperanto and Walon languages from comctl32, comdlg32, mpr, msi, shlwapi, wininet
svn path=/trunk/; revision=47920
2010-07-01 11:09:47 +00:00
|
|
|
b = ((bg&0xff)*bg_alpha + (fg&0xff)*fg_alpha)/a;
|
|
|
|
g = (((bg>>8)&0xff)*bg_alpha + ((fg>>8)&0xff)*fg_alpha)/a;
|
|
|
|
r = (((bg>>16)&0xff)*bg_alpha + ((fg>>16)&0xff)*fg_alpha)/a;
|
2010-04-20 08:30:10 +00:00
|
|
|
|
|
|
|
return (a<<24)|(r<<16)|(g<<8)|b;
|
|
|
|
}
|
|
|
|
|
2014-04-22 15:42:03 +00:00
|
|
|
extern const char *debugstr_rectf(const RectF* rc) DECLSPEC_HIDDEN;
|
2009-05-23 10:32:19 +00:00
|
|
|
|
2014-04-22 15:42:03 +00:00
|
|
|
extern const char *debugstr_pointf(const PointF* pt) DECLSPEC_HIDDEN;
|
2010-03-04 13:34:05 +00:00
|
|
|
|
2009-09-03 15:07:25 +00:00
|
|
|
extern void convert_32bppARGB_to_32bppPARGB(UINT width, UINT height,
|
2012-03-05 20:17:42 +00:00
|
|
|
BYTE *dst_bits, INT dst_stride, const BYTE *src_bits, INT src_stride) DECLSPEC_HIDDEN;
|
2009-09-03 15:07:25 +00:00
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
extern GpStatus convert_pixels(INT width, INT height,
|
2010-03-04 13:34:05 +00:00
|
|
|
INT dst_stride, BYTE *dst_bits, PixelFormat dst_format,
|
2012-12-11 21:40:15 +00:00
|
|
|
INT src_stride, const BYTE *src_bits, PixelFormat src_format, ColorPalette *palette) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
struct GpMatrix{
|
|
|
|
REAL matrix[6];
|
|
|
|
};
|
2010-03-04 13:34:05 +00:00
|
|
|
|
2008-03-25 17:34:57 +00:00
|
|
|
struct GpPen{
|
|
|
|
UINT style;
|
|
|
|
GpUnit unit;
|
|
|
|
REAL width;
|
|
|
|
GpLineCap endcap;
|
|
|
|
GpLineCap startcap;
|
|
|
|
GpDashCap dashcap;
|
|
|
|
GpCustomLineCap *customstart;
|
|
|
|
GpCustomLineCap *customend;
|
|
|
|
GpLineJoin join;
|
|
|
|
REAL miterlimit;
|
|
|
|
GpDashStyle dash;
|
|
|
|
REAL *dashes;
|
|
|
|
INT numdashes;
|
|
|
|
REAL offset; /* dash offset */
|
|
|
|
GpBrush *brush;
|
2008-08-05 12:23:58 +00:00
|
|
|
GpPenAlignment align;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpGraphics{
|
|
|
|
HDC hdc;
|
|
|
|
HWND hwnd;
|
2009-05-09 09:26:16 +00:00
|
|
|
BOOL owndc;
|
2012-12-11 21:40:15 +00:00
|
|
|
BOOL alpha_hdc;
|
2010-04-20 08:30:10 +00:00
|
|
|
GpImage *image;
|
2013-05-23 17:23:00 +00:00
|
|
|
ImageType image_type;
|
2008-03-25 17:34:57 +00:00
|
|
|
SmoothingMode smoothing;
|
|
|
|
CompositingQuality compqual;
|
|
|
|
InterpolationMode interpolation;
|
|
|
|
PixelOffsetMode pixeloffset;
|
|
|
|
CompositingMode compmode;
|
|
|
|
TextRenderingHint texthint;
|
|
|
|
GpUnit unit; /* page unit */
|
|
|
|
REAL scale; /* page scale */
|
2012-12-11 21:40:15 +00:00
|
|
|
REAL xres, yres;
|
|
|
|
GpMatrix worldtrans; /* world transform */
|
2008-09-07 10:32:49 +00:00
|
|
|
BOOL busy; /* hdc handle obtained by GdipGetDC */
|
2013-09-19 15:10:19 +00:00
|
|
|
GpRegion *clip; /* in device coords */
|
2008-12-06 09:26:01 +00:00
|
|
|
UINT textcontrast; /* not used yet. get/set only */
|
2009-09-03 15:07:25 +00:00
|
|
|
struct list containers;
|
|
|
|
GraphicsContainer contid; /* last-issued container ID */
|
2012-05-19 10:03:40 +00:00
|
|
|
INT origin_x, origin_y;
|
2010-11-20 11:24:17 +00:00
|
|
|
/* For giving the caller an HDC when we technically can't: */
|
|
|
|
HBITMAP temp_hbitmap;
|
|
|
|
int temp_hbitmap_width;
|
|
|
|
int temp_hbitmap_height;
|
|
|
|
BYTE *temp_bits;
|
|
|
|
HDC temp_hdc;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpBrush{
|
|
|
|
GpBrushType bt;
|
|
|
|
};
|
|
|
|
|
2009-01-27 18:03:33 +00:00
|
|
|
struct GpHatch{
|
|
|
|
GpBrush brush;
|
|
|
|
HatchStyle hatchstyle;
|
|
|
|
ARGB forecol;
|
|
|
|
ARGB backcol;
|
|
|
|
};
|
|
|
|
|
2008-03-25 17:34:57 +00:00
|
|
|
struct GpSolidFill{
|
|
|
|
GpBrush brush;
|
|
|
|
ARGB color;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GpPathGradient{
|
|
|
|
GpBrush brush;
|
2012-05-19 10:03:40 +00:00
|
|
|
GpPath* path;
|
2008-03-25 17:34:57 +00:00
|
|
|
ARGB centercolor;
|
|
|
|
GpWrapMode wrap;
|
|
|
|
BOOL gamma;
|
|
|
|
GpPointF center;
|
|
|
|
GpPointF focus;
|
2008-08-05 12:23:58 +00:00
|
|
|
REAL* blendfac; /* blend factors */
|
|
|
|
REAL* blendpos; /* blend positions */
|
|
|
|
INT blendcount;
|
2012-05-19 10:03:40 +00:00
|
|
|
ARGB *surroundcolors;
|
|
|
|
INT surroundcolorcount;
|
|
|
|
ARGB* pblendcolor; /* preset blend colors */
|
|
|
|
REAL* pblendpos; /* preset blend positions */
|
|
|
|
INT pblendcount;
|
2012-12-11 21:40:15 +00:00
|
|
|
GpMatrix transform;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpLineGradient{
|
|
|
|
GpBrush brush;
|
|
|
|
GpPointF startpoint;
|
|
|
|
GpPointF endpoint;
|
|
|
|
ARGB startcolor;
|
|
|
|
ARGB endcolor;
|
2009-05-09 09:26:16 +00:00
|
|
|
RectF rect;
|
2008-03-25 17:34:57 +00:00
|
|
|
GpWrapMode wrap;
|
|
|
|
BOOL gamma;
|
2009-05-09 09:26:16 +00:00
|
|
|
REAL* blendfac; /* blend factors */
|
|
|
|
REAL* blendpos; /* blend positions */
|
|
|
|
INT blendcount;
|
2009-11-28 15:26:02 +00:00
|
|
|
ARGB* pblendcolor; /* preset blend colors */
|
|
|
|
REAL* pblendpos; /* preset blend positions */
|
|
|
|
INT pblendcount;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpTexture{
|
|
|
|
GpBrush brush;
|
2012-12-11 21:40:15 +00:00
|
|
|
GpMatrix transform;
|
2010-03-04 13:34:05 +00:00
|
|
|
GpImage *image;
|
2012-03-05 20:17:42 +00:00
|
|
|
GpImageAttributes *imageattributes;
|
|
|
|
BYTE *bitmap_bits; /* image bits converted to ARGB and run through imageattributes */
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpPath{
|
|
|
|
GpFillMode fill;
|
|
|
|
GpPathData pathdata;
|
|
|
|
BOOL newfigure; /* whether the next drawing action starts a new figure */
|
|
|
|
INT datalen; /* size of the arrays in pathdata */
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GpPathIterator{
|
|
|
|
GpPathData pathdata;
|
|
|
|
INT subpath_pos; /* for NextSubpath methods */
|
|
|
|
INT marker_pos; /* for NextMarker methods */
|
|
|
|
INT pathtype_pos; /* for NextPathType methods */
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GpCustomLineCap{
|
|
|
|
GpPathData pathdata;
|
|
|
|
BOOL fill; /* TRUE for fill, FALSE for stroke */
|
|
|
|
GpLineCap cap; /* as far as I can tell, this value is ignored */
|
|
|
|
REAL inset; /* how much to adjust the end of the line */
|
2008-08-05 12:23:58 +00:00
|
|
|
GpLineJoin join;
|
|
|
|
REAL scale;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
2008-09-07 10:32:49 +00:00
|
|
|
struct GpAdustableArrowCap{
|
|
|
|
GpCustomLineCap cap;
|
|
|
|
};
|
|
|
|
|
2008-03-25 17:34:57 +00:00
|
|
|
struct GpImage{
|
2012-12-11 21:40:15 +00:00
|
|
|
IPicture *picture;
|
|
|
|
IStream *stream; /* source stream */
|
2008-03-25 17:34:57 +00:00
|
|
|
ImageType type;
|
2009-11-28 15:26:02 +00:00
|
|
|
GUID format;
|
2008-06-01 13:14:02 +00:00
|
|
|
UINT flags;
|
2012-12-11 21:40:15 +00:00
|
|
|
UINT frame_count, current_frame;
|
|
|
|
ColorPalette *palette;
|
2010-03-04 13:34:05 +00:00
|
|
|
REAL xres, yres;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpMetafile{
|
|
|
|
GpImage image;
|
|
|
|
GpRectF bounds;
|
|
|
|
GpUnit unit;
|
2012-03-05 20:17:42 +00:00
|
|
|
MetafileType metafile_type;
|
|
|
|
HENHMETAFILE hemf;
|
2012-12-11 21:40:15 +00:00
|
|
|
int preserve_hemf; /* if true, hemf belongs to the app and should not be deleted */
|
2012-03-05 20:17:42 +00:00
|
|
|
|
|
|
|
/* recording */
|
|
|
|
HDC record_dc;
|
|
|
|
GpGraphics *record_graphics;
|
|
|
|
BYTE *comment_data;
|
|
|
|
DWORD comment_data_size;
|
|
|
|
DWORD comment_data_length;
|
|
|
|
|
|
|
|
/* playback */
|
|
|
|
GpGraphics *playback_graphics;
|
|
|
|
HDC playback_dc;
|
|
|
|
GpPointF playback_points[3];
|
2014-04-22 15:42:03 +00:00
|
|
|
GpRectF src_rect;
|
2012-03-05 20:17:42 +00:00
|
|
|
HANDLETABLE *handle_table;
|
|
|
|
int handle_count;
|
2014-04-22 15:42:03 +00:00
|
|
|
GpMatrix *world_transform;
|
|
|
|
GpUnit page_unit;
|
|
|
|
REAL page_scale;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpBitmap{
|
|
|
|
GpImage image;
|
|
|
|
INT width;
|
|
|
|
INT height;
|
|
|
|
PixelFormat format;
|
|
|
|
ImageLockMode lockmode;
|
|
|
|
INT numlocks;
|
|
|
|
BYTE *bitmapbits; /* pointer to the buffer we passed in BitmapLockBits */
|
2009-09-03 15:07:25 +00:00
|
|
|
HBITMAP hbitmap;
|
|
|
|
HDC hdc;
|
|
|
|
BYTE *bits; /* actual image bits if this is a DIB */
|
|
|
|
INT stride; /* stride of bits if this is a DIB */
|
2010-11-20 11:24:17 +00:00
|
|
|
BYTE *own_bits; /* image bits that need to be freed with this object */
|
2012-03-05 20:17:42 +00:00
|
|
|
INT lockx, locky; /* X and Y coordinates of the rect when a bitmap is locked for writing. */
|
2012-12-11 21:40:15 +00:00
|
|
|
IWICMetadataReader *metadata_reader; /* NULL if there is no metadata */
|
|
|
|
UINT prop_count;
|
|
|
|
PropertyItem *prop_item; /* cached image properties */
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
2008-12-06 09:26:01 +00:00
|
|
|
struct GpCachedBitmap{
|
|
|
|
GpImage *image;
|
|
|
|
};
|
|
|
|
|
2009-09-03 15:07:25 +00:00
|
|
|
struct color_key{
|
|
|
|
BOOL enabled;
|
|
|
|
ARGB low;
|
|
|
|
ARGB high;
|
|
|
|
};
|
|
|
|
|
2010-03-04 13:34:05 +00:00
|
|
|
struct color_matrix{
|
|
|
|
BOOL enabled;
|
|
|
|
ColorMatrixFlags flags;
|
|
|
|
ColorMatrix colormatrix;
|
|
|
|
ColorMatrix graymatrix;
|
|
|
|
};
|
|
|
|
|
2010-03-06 12:15:38 +00:00
|
|
|
struct color_remap_table{
|
|
|
|
BOOL enabled;
|
|
|
|
INT mapsize;
|
2012-05-19 10:03:40 +00:00
|
|
|
ColorMap *colormap;
|
2010-03-06 12:15:38 +00:00
|
|
|
};
|
|
|
|
|
2008-03-25 17:34:57 +00:00
|
|
|
struct GpImageAttributes{
|
|
|
|
WrapMode wrap;
|
Sync avifil, credui, crypt32, cryptdlg, cryptui, dnsapi, gdiplus, hhctrl, hnetcfg, iccvid, imaadp32, imm32, jscript, localspl, localui, mapi32, mciavi32, mcicda, mciqtz32, mciseq, mciwave, mshtml, msrle32, msvfw32, msvidc32, msxml3, oleacc, oleaut32 to Wine 1.2rc5 (Samuel Serapion, small changes by me)
Remove Esperanto and Walon languages from comctl32, comdlg32, mpr, msi, shlwapi, wininet
svn path=/trunk/; revision=47920
2010-07-01 11:09:47 +00:00
|
|
|
ARGB outside_color;
|
|
|
|
BOOL clamp;
|
2009-09-03 15:07:25 +00:00
|
|
|
struct color_key colorkeys[ColorAdjustTypeCount];
|
2010-03-04 13:34:05 +00:00
|
|
|
struct color_matrix colormatrices[ColorAdjustTypeCount];
|
2010-03-06 12:15:38 +00:00
|
|
|
struct color_remap_table colorremaptables[ColorAdjustTypeCount];
|
2010-03-04 13:34:05 +00:00
|
|
|
BOOL gamma_enabled[ColorAdjustTypeCount];
|
|
|
|
REAL gamma[ColorAdjustTypeCount];
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpFont{
|
2012-05-19 10:03:40 +00:00
|
|
|
GpFontFamily *family;
|
|
|
|
OUTLINETEXTMETRICW otm;
|
|
|
|
REAL emSize; /* in font units */
|
2008-07-02 08:19:00 +00:00
|
|
|
Unit unit;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpStringFormat{
|
|
|
|
INT attr;
|
|
|
|
LANGID lang;
|
2008-08-05 12:23:58 +00:00
|
|
|
LANGID digitlang;
|
2008-03-25 17:34:57 +00:00
|
|
|
StringAlignment align;
|
|
|
|
StringTrimming trimming;
|
|
|
|
HotkeyPrefix hkprefix;
|
|
|
|
StringAlignment vertalign;
|
2008-08-05 12:23:58 +00:00
|
|
|
StringDigitSubstitute digitsub;
|
|
|
|
INT tabcount;
|
|
|
|
REAL firsttab;
|
|
|
|
REAL *tabs;
|
2010-03-04 13:34:05 +00:00
|
|
|
CharacterRange *character_ranges;
|
|
|
|
INT range_count;
|
2012-12-11 21:40:15 +00:00
|
|
|
BOOL generic_typographic;
|
2008-03-25 17:34:57 +00:00
|
|
|
};
|
|
|
|
|
2008-07-02 08:19:00 +00:00
|
|
|
struct GpFontCollection{
|
2008-12-06 09:26:01 +00:00
|
|
|
GpFontFamily **FontFamilies;
|
|
|
|
INT count;
|
2009-05-23 10:32:19 +00:00
|
|
|
INT allocated;
|
2008-07-02 08:19:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GpFontFamily{
|
2008-08-05 12:23:58 +00:00
|
|
|
WCHAR FamilyName[LF_FACESIZE];
|
2012-05-19 10:03:40 +00:00
|
|
|
UINT16 em_height, ascent, descent, line_spacing; /* in font units */
|
|
|
|
int dpi;
|
2008-08-05 12:23:58 +00:00
|
|
|
};
|
|
|
|
|
2008-09-07 10:32:49 +00:00
|
|
|
/* internal use */
|
|
|
|
typedef enum RegionType
|
|
|
|
{
|
|
|
|
RegionDataRect = 0x10000000,
|
|
|
|
RegionDataPath = 0x10000001,
|
|
|
|
RegionDataEmptyRect = 0x10000002,
|
|
|
|
RegionDataInfiniteRect = 0x10000003,
|
|
|
|
} RegionType;
|
|
|
|
|
|
|
|
struct region_element
|
2008-08-05 12:23:58 +00:00
|
|
|
{
|
|
|
|
DWORD type; /* Rectangle, Path, SpecialRectangle, or CombineMode */
|
|
|
|
union
|
|
|
|
{
|
|
|
|
GpRectF rect;
|
2014-04-22 15:42:03 +00:00
|
|
|
GpPath *path;
|
2008-08-05 12:23:58 +00:00
|
|
|
struct
|
|
|
|
{
|
|
|
|
struct region_element *left; /* the original region */
|
|
|
|
struct region_element *right; /* what *left was combined with */
|
|
|
|
} combine;
|
|
|
|
} elementdata;
|
2008-09-07 10:32:49 +00:00
|
|
|
};
|
2008-08-05 12:23:58 +00:00
|
|
|
|
|
|
|
struct GpRegion{
|
2014-04-22 15:42:03 +00:00
|
|
|
DWORD num_children;
|
2008-08-05 12:23:58 +00:00
|
|
|
region_element node;
|
2008-07-02 08:19:00 +00:00
|
|
|
};
|
|
|
|
|
2012-03-05 20:17:42 +00:00
|
|
|
typedef GpStatus (*gdip_format_string_callback)(HDC hdc,
|
|
|
|
GDIPCONST WCHAR *string, INT index, INT length, GDIPCONST GpFont *font,
|
|
|
|
GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format,
|
2012-05-19 10:03:40 +00:00
|
|
|
INT lineno, const RectF *bounds, INT *underlined_indexes,
|
|
|
|
INT underlined_index_count, void *user_data);
|
2012-03-05 20:17:42 +00:00
|
|
|
|
|
|
|
GpStatus gdip_format_string(HDC hdc,
|
|
|
|
GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font,
|
2013-05-23 17:23:00 +00:00
|
|
|
GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, int ignore_empty_clip,
|
2012-03-05 20:17:42 +00:00
|
|
|
gdip_format_string_callback callback, void *user_data) DECLSPEC_HIDDEN;
|
|
|
|
|
2012-12-11 21:40:15 +00:00
|
|
|
void get_log_fontW(const GpFont *, GpGraphics *, LOGFONTW *) DECLSPEC_HIDDEN;
|
|
|
|
|
2014-01-23 11:25:09 +00:00
|
|
|
#endif /* __WINE_GP_PRIVATE_H_ */
|