Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Does deprecated Drag Manager API SetDragItemFlavorData() stillwork with "typeFileURL" flavor type on Leopard OS?



Thanks for the help, Bryan.
 
I found out the cause of the issue. It turns out that the way Tiger and Leopard treat multiple item drag and drop differently. In my App, we create a drag item to hold an internal custom flavor to facilitate our internal usage. This causes no issue on Tiger which simply ignores the item. But Leopard does not like it and refuses to accept other items it recognizes. So my solution is to not create such dummy drag item but put the custom flavor into an existing drag item.
 
A general obeservation related to this topic. Leopard seems to treat multiple item drag differently from Tiger even without custom flavor drag item involved. If I create a drag object with two items, both of which have file URL flavors (see Pasteboard Peeker dump 1), Leopard duplicates those two files in the drop target location, just like what Tiger does. But if I create a drag object with two items, one with file URL flavor and one with PICT flavor (see Pasteboard Peeker dump 2), Leopard does not accept the drop. On Tiger, it accepts the drop by duplicating the file for the file URL item and creating a clipbard PICT image file for the PICT item.
 
Is this behavior as expected on Leopard?
 
Thanks.
 
-------------------- Pasteboard Peeker Dump 1 -------------------------------

PasteboardRef: 1373936  ItemCount: 2

   Index: 1  item ID: 488126416

      "public.file-url"

      ""

      'furl' ______ 37  file://localhost/gli/Debug/EPSRGB.eps

 

      "com.apple.pict"

      "Apple PICT pasteboard type"

      'PICT' ______ 6080         [ d           H   H       [ d                   d     [ d         H   H

 

      "dyn.agk8z2ac6absaabu"

      ""

      '' ______ 4     

 

      "dyn.agk80u3xxea"

      ""

      'hfs ' PT____ 80  FSPEdrgv    Q /  EPSRGB.eps9   9        R              O  S U  `            U  

 

   Index: 2  item ID: 488089456

      "public.file-url"

      ""

      'furl' ______ 40  file://localhost/gli/Debug/AlphaTest.tif

 

      "com.apple.pict"

      "Apple PICT pasteboard type"

      'PICT' ______ 30494  w      d d           H   H       d d                             d d         H

 

      "dyn.agk80u3xxea"

      ""

      'hfs ' PT____ 80  FFITelgo    Q /  AlphaTest.tif 9      8 R              O  S U  `            U  

 

-------------------- Pasteboard Peeker Dump 2 -------------------------------

PasteboardRef: 1321664  ItemCount: 2

   Index: 1  item ID: 489814096

      "com.apple.pict"

      "Apple PICT pasteboard type"

      'PICT' P_____ 17710  E.     [ d           H   H       [ d               [ d         [ d         H   H

 

      "dyn.agk8z2ac6absaabu"

      ""

      '' ______ 4   s1

 

   Index: 2  item ID: 489816288

      "public.file-url"

      ""

      'furl' P_____ 40  file://localhost/gli/Debug/AlphaTest.tif

 

      "com.apple.pict"

      "Apple PICT pasteboard type"

      'PICT' P_____ 30494  w      d d           H   H       d d                             d d         H

 

      "dyn.agk80u3xxea"

      ""

      'hfs ' PT____ 80  FFITelgo    Q /  AlphaTest.tif 9        R              O  S U  `            U  

 
-----------------------------------------------------

From: carbon-dev-bounces+gli=email@hidden [mailto:carbon-dev-bounces+gli=email@hidden] On Behalf Of Bryan Prusha
Sent: Monday, April 07, 2008 6:43 PM
To: Carbon Development
Subject: Re: Does deprecated Drag Manager API SetDragItemFlavorData() stillwork with "typeFileURL" flavor type on Leopard OS?

It should continue to work. It's possible Finder is interpreting your URL slightly differently on Leopard than Tiger. Are you sure you're providing the same URL data? What does the data look like when dragged to Pasteboard Peeker? Is it different on Tiger and Leopard?

http://developer.apple.com/samplecode/PasteboardPeeker/index.html#//apple_ref/doc/uid/DTS10000672


On Apr 7, 2008, at 5:06 PM, Guangxing Li wrote:

Hi,

I understand that this API is deprecated starting from Leopard but it is too much for me to change the code to use the Pasteboard Manager API right now. My code works fine on Tiger but fails to work on Leopard with "typeFileURL" flavor. It works fine with other flavor types, such as "kScrapFlavorTypePicture", "kScrapFlavorTypeText" etc.

Here is what I am doing in my code.
1. Add "typeFileURL" flavor after I created Drag reference object like this:
        AddDragItemFlavor(mDragRef, itemRef, typeFileURL, NULL, 0, 0);
2. In the DragSendData callback later one, my code does receive the request for "typeFileURL" flavor data and I set the data like this:

SetDragItemFlavorData(mDragRef, itemRef, typeFileURL, fileURL, urlLen, 0);

This works fine on Tiger but not on Leopard. On Leopard, I always get the stop icon and cannot drop the file to the Finder.

Does anyone have idea what is wrong? Do I have to change my code to use the Pasteboard Manager API  to get it work on Leopard also?

Thanks.


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/carbon-dev/email@hidden

This email sent to email@hidden

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/carbon-dev/email@hidden

This email sent to email@hidden

References: 
 >Re: Does deprecated Drag Manager API SetDragItemFlavorData() still work with "typeFileURL" flavor type on Leopard OS? (From: Bryan Prusha <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.