winex11: Merge named formats into the builtin clipboard formats table.

Also rename the import/export functions to make the table more readable.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Alexandre Julliard 2016-09-16 16:58:38 +09:00
parent fa36f75c68
commit 217f05466a
1 changed files with 141 additions and 178 deletions

View File

@ -105,7 +105,8 @@ typedef HANDLE (*DRVEXPORTFUNC)(Display *display, Window requestor, Atom aTarget
struct tagWINE_CLIPDATA* lpData, LPDWORD lpBytes); struct tagWINE_CLIPDATA* lpData, LPDWORD lpBytes);
typedef HANDLE (*DRVIMPORTFUNC)(Display *d, Window w, Atom prop); typedef HANDLE (*DRVIMPORTFUNC)(Display *d, Window w, Atom prop);
typedef struct tagWINE_CLIPFORMAT { typedef struct clipboard_format
{
struct list entry; struct list entry;
UINT wFormatID; UINT wFormatID;
UINT drvData; UINT drvData;
@ -125,32 +126,33 @@ static int selectionAcquired = 0; /* Contains the current selection
static Window selectionWindow = None; /* The top level X window which owns the selection */ static Window selectionWindow = None; /* The top level X window which owns the selection */
static Atom selectionCacheSrc = XA_PRIMARY; /* The selection source from which the clipboard cache was filled */ static Atom selectionCacheSrc = XA_PRIMARY; /* The selection source from which the clipboard cache was filled */
static HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Display *d, Window w, Atom prop); static HANDLE import_data(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Display *d, Window w, Atom prop); static HANDLE import_enhmetafile(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Display *d, Window w, Atom prop); static HANDLE import_metafile(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *d, Window w, Atom prop); static HANDLE import_pixmap(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportImageBmp(Display *d, Window w, Atom prop); static HANDLE import_image_bmp(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *d, Window w, Atom prop); static HANDLE import_string(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *d, Window w, Atom prop); static HANDLE import_utf8_string(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *d, Window w, Atom prop); static HANDLE import_compound_text(Display *d, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ImportTextUriList(Display *display, Window w, Atom prop); static HANDLE import_text_uri_list(Display *display, Window w, Atom prop);
static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requestor, Atom aTarget,
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes); static HANDLE export_data(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportString(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes); static HANDLE export_string(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_pixmap(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportImageBmp(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_image_bmp(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_metafile(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_enhmetafile(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportTextHtml(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_text_html(Display *display, Window requestor, Atom aTarget,
static HANDLE X11DRV_CLIPBOARD_ExportHDROP(Display *display, Window requestor, Atom aTarget, Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes); static HANDLE export_hdrop(Display *display, Window requestor, Atom aTarget,
static WINE_CLIPFORMAT *X11DRV_CLIPBOARD_InsertClipboardFormat(UINT id, Atom prop); Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
static void X11DRV_CLIPBOARD_FreeData(LPWINE_CLIPDATA lpData); static void X11DRV_CLIPBOARD_FreeData(LPWINE_CLIPDATA lpData);
static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display); static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display);
static BOOL X11DRV_CLIPBOARD_ReadSelectionData(Display *display, LPWINE_CLIPDATA lpData); static BOOL X11DRV_CLIPBOARD_ReadSelectionData(Display *display, LPWINE_CLIPDATA lpData);
@ -163,66 +165,59 @@ static void empty_clipboard(void);
/* Clipboard formats */ /* Clipboard formats */
static const WCHAR RichTextFormatW[] = {'R','i','c','h',' ','T','e','x','t',' ','F','o','r','m','a','t',0};
static const WCHAR GIFW[] = {'G','I','F',0};
static const WCHAR JFIFW[] = {'J','F','I','F',0};
static const WCHAR PNGW[] = {'P','N','G',0};
static const WCHAR HTMLFormatW[] = {'H','T','M','L',' ','F','o','r','m','a','t',0};
static const struct static const struct
{ {
const WCHAR *name;
UINT id; UINT id;
UINT data; UINT data;
DRVIMPORTFUNC import; DRVIMPORTFUNC import;
DRVEXPORTFUNC export; DRVEXPORTFUNC export;
} builtin_formats[] = } builtin_formats[] =
{ {
{ CF_TEXT, XA_STRING, X11DRV_CLIPBOARD_ImportXAString, X11DRV_CLIPBOARD_ExportString}, { 0, CF_TEXT, XA_STRING, import_string, export_string },
{ CF_TEXT, XATOM_text_plain, X11DRV_CLIPBOARD_ImportXAString, X11DRV_CLIPBOARD_ExportString}, { 0, CF_TEXT, XATOM_text_plain, import_string, export_string },
{ CF_BITMAP, XATOM_WCF_BITMAP, X11DRV_CLIPBOARD_ImportClipboardData, NULL}, { 0, CF_BITMAP, XATOM_WCF_BITMAP, import_data, NULL },
{ CF_METAFILEPICT, XATOM_WCF_METAFILEPICT, X11DRV_CLIPBOARD_ImportMetaFilePict, X11DRV_CLIPBOARD_ExportMetaFilePict }, { 0, CF_METAFILEPICT, XATOM_WCF_METAFILEPICT, import_metafile, export_metafile },
{ CF_SYLK, XATOM_WCF_SYLK, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_SYLK, XATOM_WCF_SYLK, import_data, export_data },
{ CF_DIF, XATOM_WCF_DIF, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DIF, XATOM_WCF_DIF, import_data, export_data },
{ CF_TIFF, XATOM_WCF_TIFF, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_TIFF, XATOM_WCF_TIFF, import_data, export_data },
{ CF_OEMTEXT, XATOM_WCF_OEMTEXT, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_OEMTEXT, XATOM_WCF_OEMTEXT, import_data, export_data },
{ CF_DIB, XA_PIXMAP, X11DRV_CLIPBOARD_ImportXAPIXMAP, X11DRV_CLIPBOARD_ExportXAPIXMAP }, { 0, CF_DIB, XA_PIXMAP, import_pixmap, export_pixmap },
{ CF_PALETTE, XATOM_WCF_PALETTE, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_PALETTE, XATOM_WCF_PALETTE, import_data, export_data },
{ CF_PENDATA, XATOM_WCF_PENDATA, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_PENDATA, XATOM_WCF_PENDATA, import_data, export_data },
{ CF_RIFF, XATOM_WCF_RIFF, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_RIFF, XATOM_WCF_RIFF, import_data, export_data },
{ CF_WAVE, XATOM_WCF_WAVE, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_WAVE, XATOM_WCF_WAVE, import_data, export_data },
{ CF_UNICODETEXT, XATOM_UTF8_STRING, X11DRV_CLIPBOARD_ImportUTF8, X11DRV_CLIPBOARD_ExportString }, { 0, CF_UNICODETEXT, XATOM_UTF8_STRING, import_utf8_string, export_string },
/* If UTF8_STRING is not available, attempt COMPOUND_TEXT */ { 0, CF_UNICODETEXT, XATOM_COMPOUND_TEXT, import_compound_text, export_string },
{ CF_UNICODETEXT, XATOM_COMPOUND_TEXT, X11DRV_CLIPBOARD_ImportCompoundText, X11DRV_CLIPBOARD_ExportString }, { 0, CF_ENHMETAFILE, XATOM_WCF_ENHMETAFILE, import_enhmetafile, export_enhmetafile },
{ CF_ENHMETAFILE, XATOM_WCF_ENHMETAFILE, X11DRV_CLIPBOARD_ImportEnhMetaFile, X11DRV_CLIPBOARD_ExportEnhMetaFile }, { 0, CF_HDROP, XATOM_text_uri_list, import_text_uri_list, export_hdrop },
{ CF_HDROP, XATOM_text_uri_list, X11DRV_CLIPBOARD_ImportTextUriList, X11DRV_CLIPBOARD_ExportHDROP }, { 0, CF_LOCALE, XATOM_WCF_LOCALE, import_data, export_data },
{ CF_LOCALE, XATOM_WCF_LOCALE, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DIBV5, XATOM_WCF_DIBV5, import_data, export_data },
{ CF_DIBV5, XATOM_WCF_DIBV5, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_OWNERDISPLAY, XATOM_WCF_OWNERDISPLAY, import_data, export_data },
{ CF_OWNERDISPLAY, XATOM_WCF_OWNERDISPLAY, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DSPTEXT, XATOM_WCF_DSPTEXT, import_data, export_data },
{ CF_DSPTEXT, XATOM_WCF_DSPTEXT, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DSPBITMAP, XATOM_WCF_DSPBITMAP, import_data, export_data },
{ CF_DSPBITMAP, XATOM_WCF_DSPBITMAP, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DSPMETAFILEPICT, XATOM_WCF_DSPMETAFILEPICT, import_data, export_data },
{ CF_DSPMETAFILEPICT, XATOM_WCF_DSPMETAFILEPICT, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DSPENHMETAFILE, XATOM_WCF_DSPENHMETAFILE, import_data, export_data },
{ CF_DSPENHMETAFILE, XATOM_WCF_DSPENHMETAFILE, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, { 0, CF_DIB, XATOM_image_bmp, import_image_bmp, export_image_bmp },
{ CF_DIB, XATOM_image_bmp, X11DRV_CLIPBOARD_ImportImageBmp, X11DRV_CLIPBOARD_ExportImageBmp }, { RichTextFormatW, 0, XATOM_text_rtf, import_data, export_data },
{ RichTextFormatW, 0, XATOM_text_richtext, import_data, export_data },
{ GIFW, 0, XATOM_image_gif, import_data, export_data },
{ JFIFW, 0, XATOM_image_jpeg, import_data, export_data },
{ PNGW, 0, XATOM_image_png, import_data, export_data },
{ HTMLFormatW, 0, XATOM_HTML_Format, import_data, export_data },
{ HTMLFormatW, 0, XATOM_text_html, import_data, export_text_html },
}; };
static struct list format_list = LIST_INIT( format_list ); static struct list format_list = LIST_INIT( format_list );
#define GET_ATOM(prop) (((prop) < FIRST_XATOM) ? (Atom)(prop) : X11DRV_Atoms[(prop) - FIRST_XATOM]) #define GET_ATOM(prop) (((prop) < FIRST_XATOM) ? (Atom)(prop) : X11DRV_Atoms[(prop) - FIRST_XATOM])
/* Maps X properties to Windows formats */
static const WCHAR wszRichTextFormat[] = {'R','i','c','h',' ','T','e','x','t',' ','F','o','r','m','a','t',0};
static const WCHAR wszGIF[] = {'G','I','F',0};
static const WCHAR wszJFIF[] = {'J','F','I','F',0};
static const WCHAR wszPNG[] = {'P','N','G',0};
static const WCHAR wszHTMLFormat[] = {'H','T','M','L',' ','F','o','r','m','a','t',0};
static const struct
{
LPCWSTR lpszFormat;
UINT prop;
} PropertyFormatMap[] =
{
{ wszRichTextFormat, XATOM_text_rtf },
{ wszRichTextFormat, XATOM_text_richtext },
{ wszGIF, XATOM_image_gif },
{ wszJFIF, XATOM_image_jpeg },
{ wszPNG, XATOM_image_png },
{ wszHTMLFormat, XATOM_HTML_Format }, /* prefer this to text/html */
};
/* /*
* Cached clipboard data. * Cached clipboard data.
@ -303,29 +298,24 @@ static const char *debugstr_format( UINT id )
*/ */
void X11DRV_InitClipboard(void) void X11DRV_InitClipboard(void)
{ {
static const unsigned int count = sizeof(builtin_formats) / sizeof(builtin_formats[0]);
struct clipboard_format *formats;
UINT i; UINT i;
WINE_CLIPFORMAT *format;
/* Register built-in formats */ if (!(formats = HeapAlloc( GetProcessHeap(), 0, count * sizeof(*formats)))) return;
for (i = 0; i < sizeof(builtin_formats)/sizeof(builtin_formats[0]); i++)
for (i = 0; i < count; i++)
{ {
if (!(format = HeapAlloc( GetProcessHeap(), 0, sizeof(*format )))) break; if (builtin_formats[i].name)
format->wFormatID = builtin_formats[i].id; formats[i].wFormatID = RegisterClipboardFormatW( builtin_formats[i].name );
format->drvData = GET_ATOM(builtin_formats[i].data); else
format->lpDrvImportFunc = builtin_formats[i].import; formats[i].wFormatID = builtin_formats[i].id;
format->lpDrvExportFunc = builtin_formats[i].export;
list_add_tail( &format_list, &format->entry ); formats[i].drvData = GET_ATOM(builtin_formats[i].data);
formats[i].lpDrvImportFunc = builtin_formats[i].import;
formats[i].lpDrvExportFunc = builtin_formats[i].export;
list_add_tail( &format_list, &formats[i].entry );
} }
/* Register known mapping between window formats and X properties */
for (i = 0; i < sizeof(PropertyFormatMap)/sizeof(PropertyFormatMap[0]); i++)
X11DRV_CLIPBOARD_InsertClipboardFormat( RegisterClipboardFormatW(PropertyFormatMap[i].lpszFormat),
GET_ATOM(PropertyFormatMap[i].prop));
/* Set up a conversion function from "HTML Format" to "text/html" */
format = X11DRV_CLIPBOARD_InsertClipboardFormat( RegisterClipboardFormatW(wszHTMLFormat),
GET_ATOM(XATOM_text_html));
format->lpDrvExportFunc = X11DRV_CLIPBOARD_ExportTextHtml;
} }
@ -392,15 +382,23 @@ static void intern_atoms(void)
* *
* Register a custom X clipboard format. * Register a custom X clipboard format.
*/ */
static WINE_CLIPFORMAT *register_format( UINT id, Atom prop ) static struct clipboard_format *register_format( UINT id, Atom prop )
{ {
LPWINE_CLIPFORMAT lpFormat; struct clipboard_format *format;
/* walk format chain to see if it's already registered */ /* walk format chain to see if it's already registered */
LIST_FOR_EACH_ENTRY( lpFormat, &format_list, WINE_CLIPFORMAT, entry ) LIST_FOR_EACH_ENTRY( format, &format_list, struct clipboard_format, entry )
if (lpFormat->wFormatID == id) return lpFormat; if (format->wFormatID == id) return format;
return X11DRV_CLIPBOARD_InsertClipboardFormat(id, prop); if (!(format = HeapAlloc( GetProcessHeap(), 0, sizeof(*format) ))) return NULL;
format->wFormatID = id;
format->drvData = prop;
format->lpDrvImportFunc = import_data;
format->lpDrvExportFunc = export_data;
list_add_tail( &format_list, &format->entry );
TRACE( "Registering format %s atom %lx\n", debugstr_format(id), prop );
return format;
} }
@ -441,37 +439,6 @@ static LPWINE_CLIPDATA X11DRV_CLIPBOARD_LookupData(DWORD wID)
} }
/**************************************************************************
* InsertClipboardFormat
*/
static WINE_CLIPFORMAT *X11DRV_CLIPBOARD_InsertClipboardFormat( UINT id, Atom prop )
{
LPWINE_CLIPFORMAT lpNewFormat;
/* allocate storage for new format entry */
lpNewFormat = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_CLIPFORMAT));
if(lpNewFormat == NULL)
{
WARN("No more memory for a new format!\n");
return NULL;
}
lpNewFormat->wFormatID = id;
lpNewFormat->drvData = prop;
lpNewFormat->lpDrvImportFunc = X11DRV_CLIPBOARD_ImportClipboardData;
lpNewFormat->lpDrvExportFunc = X11DRV_CLIPBOARD_ExportClipboardData;
list_add_tail( &format_list, &lpNewFormat->entry );
TRACE("Registering format %s drvData %d\n",
debugstr_format(lpNewFormat->wFormatID), lpNewFormat->drvData);
return lpNewFormat;
}
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_IsProcessOwner * X11DRV_CLIPBOARD_IsProcessOwner
*/ */
@ -865,11 +832,11 @@ static WCHAR* uri_to_dos(char *encodedURI)
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportXAString * import_string
* *
* Import XA_STRING, converting the string to CF_TEXT. * Import XA_STRING, converting the string to CF_TEXT.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *display, Window w, Atom prop) static HANDLE import_string(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -909,11 +876,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *display, Window w, Atom p
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportUTF8 * import_utf8_string
* *
* Import XA_STRING, converting the string to CF_UNICODE. * Import XA_UTF8_STRING, converting the string to CF_UNICODE.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop) static HANDLE import_utf8_string(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -963,11 +930,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop)
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportCompoundText * import_compound_text
* *
* Import COMPOUND_TEXT to CF_UNICODE * Import COMPOUND_TEXT to CF_UNICODE
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *display, Window w, Atom prop) static HANDLE import_compound_text(Display *display, Window w, Atom prop)
{ {
int i, j, ret; int i, j, ret;
char** srcstr; char** srcstr;
@ -1027,11 +994,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *display, Window w, At
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportXAPIXMAP * import_pixmap
* *
* Import XA_PIXMAP, converting the image to CF_DIB. * Import XA_PIXMAP, converting the image to CF_DIB.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *display, Window w, Atom prop) static HANDLE import_pixmap(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -1104,11 +1071,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *display, Window w, Atom p
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportImageBmp * import_image_bmp
* *
* Import image/bmp, converting the image to CF_DIB. * Import image/bmp, converting the image to CF_DIB.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportImageBmp(Display *display, Window w, Atom prop) static HANDLE import_image_bmp(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -1150,11 +1117,9 @@ static HANDLE X11DRV_CLIPBOARD_ImportImageBmp(Display *display, Window w, Atom p
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportMetaFilePict * import_metafile
*
* Import MetaFilePict.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Display *display, Window w, Atom prop) static HANDLE import_metafile(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -1174,11 +1139,9 @@ static HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Display *display, Window w, At
/************************************************************************** /**************************************************************************
* X11DRV_ImportEnhMetaFile * import_enhmetafile
*
* Import EnhMetaFile.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Display *display, Window w, Atom prop) static HANDLE import_enhmetafile(Display *display, Window w, Atom prop)
{ {
LPBYTE lpdata; LPBYTE lpdata;
unsigned long cbytes; unsigned long cbytes;
@ -1198,11 +1161,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Display *display, Window w, Ato
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ImportTextUriList * import_text_uri_list
* *
* Import text/uri-list. * Import text/uri-list.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportTextUriList(Display *display, Window w, Atom prop) static HANDLE import_text_uri_list(Display *display, Window w, Atom prop)
{ {
char *uriList; char *uriList;
unsigned long len; unsigned long len;
@ -1287,11 +1250,11 @@ static HANDLE X11DRV_CLIPBOARD_ImportTextUriList(Display *display, Window w, Ato
/************************************************************************** /**************************************************************************
* X11DRV_ImportClipbordaData * import_data
* *
* Generic import clipboard data routine. * Generic import clipboard data routine.
*/ */
static HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Display *display, Window w, Atom prop) static HANDLE import_data(Display *display, Window w, Atom prop)
{ {
LPVOID lpClipData; LPVOID lpClipData;
LPBYTE lpdata; LPBYTE lpdata;
@ -1348,12 +1311,12 @@ HANDLE X11DRV_CLIPBOARD_ImportSelection(Display *d, Atom target, Window w, Atom
/************************************************************************** /**************************************************************************
X11DRV_CLIPBOARD_ExportClipboardData * export_data
* *
* Generic export clipboard data routine. * Generic export clipboard data routine.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requestor, Atom aTarget, static HANDLE export_data(Display *display, Window requestor, Atom aTarget,
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes) Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
{ {
LPVOID lpClipData; LPVOID lpClipData;
UINT datasize = 0; UINT datasize = 0;
@ -1393,7 +1356,7 @@ static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requ
* X11DRV_CLIPBOARD_ExportXAString * X11DRV_CLIPBOARD_ExportXAString
* *
* Export CF_TEXT converting the string to XA_STRING. * Export CF_TEXT converting the string to XA_STRING.
* Helper function for X11DRV_CLIPBOARD_ExportString. * Helper function for export_string.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportXAString(LPWINE_CLIPDATA lpData, LPDWORD lpBytes) static HANDLE X11DRV_CLIPBOARD_ExportXAString(LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
{ {
@ -1432,7 +1395,7 @@ done:
* X11DRV_CLIPBOARD_ExportUTF8String * X11DRV_CLIPBOARD_ExportUTF8String
* *
* Export CF_UNICODE converting the string to UTF8. * Export CF_UNICODE converting the string to UTF8.
* Helper function for X11DRV_CLIPBOARD_ExportString. * Helper function for export_string.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportUTF8String(LPWINE_CLIPDATA lpData, LPDWORD lpBytes) static HANDLE X11DRV_CLIPBOARD_ExportUTF8String(LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
{ {
@ -1480,7 +1443,7 @@ done:
* X11DRV_CLIPBOARD_ExportCompoundText * X11DRV_CLIPBOARD_ExportCompoundText
* *
* Export CF_UNICODE to COMPOUND_TEXT * Export CF_UNICODE to COMPOUND_TEXT
* Helper function for X11DRV_CLIPBOARD_ExportString. * Helper function for export_string.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpData, LPDWORD lpBytes) LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
@ -1530,12 +1493,12 @@ static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Display *display, Window reque
} }
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportString * export_string
* *
* Export string * Export string
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportString(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE export_string(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpData, LPDWORD lpBytes) LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
{ {
if (X11DRV_CLIPBOARD_RenderFormat(display, lpData)) if (X11DRV_CLIPBOARD_RenderFormat(display, lpData))
{ {
@ -1558,12 +1521,12 @@ static HANDLE X11DRV_CLIPBOARD_ExportString(Display *display, Window requestor,
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportXAPIXMAP * export_pixmap
* *
* Export CF_DIB to XA_PIXMAP. * Export CF_DIB to XA_PIXMAP.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE export_pixmap(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
HANDLE hData; HANDLE hData;
unsigned char* lpData; unsigned char* lpData;
@ -1602,12 +1565,12 @@ static HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Display *display, Window requestor
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportImageBmp * export_image_bmp
* *
* Export CF_DIB to image/bmp. * Export CF_DIB to image/bmp.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportImageBmp(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE export_image_bmp(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
HANDLE hpackeddib; HANDLE hpackeddib;
LPBYTE dibdata; LPBYTE dibdata;
@ -1671,12 +1634,12 @@ static HANDLE X11DRV_CLIPBOARD_ExportImageBmp(Display *display, Window requestor
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportMetaFilePict * export_metafile
* *
* Export MetaFilePict. * Export MetaFilePict.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE export_metafile(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata)) if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata))
{ {
@ -1689,12 +1652,12 @@ static HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Display *display, Window reque
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportEnhMetaFile * export_enhmetafile
* *
* Export EnhMetaFile. * Export EnhMetaFile.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Display *display, Window requestor, Atom aTarget, Atom rprop, static HANDLE export_enhmetafile(Display *display, Window requestor, Atom aTarget, Atom rprop,
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata)) if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata))
{ {
@ -1729,14 +1692,14 @@ static LPCSTR get_html_description_field(LPCSTR data, LPCSTR keyword)
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportTextHtml * export_text_html
* *
* Export HTML Format to text/html. * Export HTML Format to text/html.
* *
* FIXME: We should attempt to add an <a base> tag and convert windows paths. * FIXME: We should attempt to add an <a base> tag and convert windows paths.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportTextHtml(Display *display, Window requestor, Atom aTarget, static HANDLE export_text_html(Display *display, Window requestor, Atom aTarget,
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
HANDLE hdata; HANDLE hdata;
LPCSTR data, field_value; LPCSTR data, field_value;
@ -1811,12 +1774,12 @@ end:
/************************************************************************** /**************************************************************************
* X11DRV_CLIPBOARD_ExportHDROP * export_hdrop
* *
* Export CF_HDROP format to text/uri-list. * Export CF_HDROP format to text/uri-list.
*/ */
static HANDLE X11DRV_CLIPBOARD_ExportHDROP(Display *display, Window requestor, Atom aTarget, static HANDLE export_hdrop(Display *display, Window requestor, Atom aTarget,
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes) Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
{ {
HDROP hDrop; HDROP hDrop;
UINT i; UINT i;