Ken Thomases : winemac: Add clipboard formats which can or must be put on Mac pasteboard without transformation .

Alexandre Julliard julliard at winehq.org
Thu Mar 14 14:55:05 CDT 2013


Module: wine
Branch: master
Commit: a8d55288de3add7e568d6177bd9dd6ed0c59cef7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a8d55288de3add7e568d6177bd9dd6ed0c59cef7

Author: Ken Thomases <ken at codeweavers.com>
Date:   Wed Mar 13 16:52:31 2013 -0500

winemac: Add clipboard formats which can or must be put on Mac pasteboard without transformation.

---

 dlls/winemac.drv/clipboard.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/dlls/winemac.drv/clipboard.c b/dlls/winemac.drv/clipboard.c
index 3e5e9b3..36e0759 100644
--- a/dlls/winemac.drv/clipboard.c
+++ b/dlls/winemac.drv/clipboard.c
@@ -141,6 +141,21 @@ static const struct
     BOOL          synthesized;
 } builtin_format_ids[] =
 {
+    { CF_DIBV5,             CFSTR("org.winehq.builtin.dibv5"),              import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_DIF,               CFSTR("org.winehq.builtin.dif"),                import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_DSPBITMAP,         CFSTR("org.winehq.builtin.dspbitmap"),          import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_DSPENHMETAFILE,    CFSTR("org.winehq.builtin.dspenhmetafile"),     import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_DSPMETAFILEPICT,   CFSTR("org.winehq.builtin.dspmetafilepict"),    import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_DSPTEXT,           CFSTR("org.winehq.builtin.dsptext"),            import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_LOCALE,            CFSTR("org.winehq.builtin.locale"),             import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_OWNERDISPLAY,      CFSTR("org.winehq.builtin.ownerdisplay"),       import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_PALETTE,           CFSTR("org.winehq.builtin.palette"),            import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_PENDATA,           CFSTR("org.winehq.builtin.pendata"),            import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_RIFF,              CFSTR("org.winehq.builtin.riff"),               import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_SYLK,              CFSTR("org.winehq.builtin.sylk"),               import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_TIFF,              CFSTR("public.tiff"),                           import_clipboard_data,          export_clipboard_data,      FALSE },
+    { CF_WAVE,              CFSTR("com.microsoft.waveform-audio"),          import_clipboard_data,          export_clipboard_data,      FALSE },
+
     { CF_UNICODETEXT,       CFSTR("org.winehq.builtin.unicodetext"),        import_clipboard_data,          export_clipboard_data,      FALSE },
     { CF_TEXT,              CFSTR("org.winehq.builtin.unicodetext"),        import_unicodetext_to_text,     NULL,                       TRUE },
     { CF_OEMTEXT,           CFSTR("org.winehq.builtin.unicodetext"),        import_unicodetext_to_oemtext,  NULL,                       TRUE },
@@ -158,6 +173,24 @@ static const struct
     { CF_OEMTEXT,           CFSTR("public.utf8-plain-text"),                import_utf8_to_oemtext,         export_oemtext_to_utf8,     TRUE },
 };
 
+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     name;
+    CFStringRef type;
+} builtin_format_names[] =
+{
+    { wszRichTextFormat,    CFSTR("public.rtf") },
+    { wszGIF,               CFSTR("com.compuserve.gif") },
+    { wszJFIF,              CFSTR("public.jpeg") },
+    { wszPNG,               CFSTR("public.png") },
+    { wszHTMLFormat,        CFSTR("public.html") },
+};
+
 /* The prefix prepended to an external Mac pasteboard type to make a Win32 clipboard format name. org.winehq.mac-type. */
 static const WCHAR mac_type_name_prefix[] = {'o','r','g','.','w','i','n','e','h','q','.','m','a','c','-','t','y','p','e','.',0};
 
@@ -1224,6 +1257,11 @@ void macdrv_clipboard_process_attach(void)
         format->synthesized = builtin_format_ids[i].synthesized;
         list_add_tail(&format_list, &format->entry);
     }
+
+    /* Register known mappings between Windows formats and Mac types */
+    for (i = 0; i < sizeof(builtin_format_names)/sizeof(builtin_format_names[0]); i++)
+        insert_clipboard_format(RegisterClipboardFormatW(builtin_format_names[i].name),
+                                builtin_format_names[i].type);
 }
 
 




More information about the wine-cvs mailing list