[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNUstep paste board (Was: really attracting developers)
From: |
Matt Rice |
Subject: |
Re: GNUstep paste board (Was: really attracting developers) |
Date: |
Mon, 28 Aug 2006 15:07:42 -0700 (PDT) |
--- Fred Kiefer <fredkiefer@gmx.de> wrote:
> DND will be another big step. Here a whole rewrite
> is needed. When we
> tried to integrate GNUstep DND with X we did get it
> completely wrong the
> first time.
a while back i tried getting gnustep to work as a x
'dragging source' as we call it.. it still uses the
outdated xdnd code but attached is what i ended up
with and a dragging destination which also uses the
outdated xdnd code from gnustep..
the whole thing inside the case SelectionRequest:
needs to be rewritten doesnt do any of the conversion
it should (file uris should have file:// etc and other
conversion methods for other stuff...)
i recall there being alot more to the patch than this
but this is all there seemed to be... so hopefully its
all here...
i also remember there being times when the code just
magically didnt work..
hope it helps, dont forsee finishing it anytime soon
if someone wants to pick it up...
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
xdnd-dest.tar.gz
Description: 296406374-xdnd-dest.tar.gz
Index: Source/x11/XGServerEvent.m
===================================================================
--- Source/x11/XGServerEvent.m (revision 22775)
+++ Source/x11/XGServerEvent.m (working copy)
@@ -30,6 +30,7 @@
#include <AppKit/NSGraphics.h>
#include <AppKit/NSMenu.h>
#include <AppKit/NSWindow.h>
+#include <AppKit/NSPasteboard.h>
#include <Foundation/NSException.h>
#include <Foundation/NSArray.h>
#include <Foundation/NSDictionary.h>
@@ -1294,10 +1295,34 @@
break;
case SelectionRequest:
- NSDebugLLog(@"NSEvent", @"%d SelectionRequest\n",
- xEvent.xselectionrequest.requestor);
+ {
+ DndClass dnd = xdnd();
+ /* ugly hack alert delete all this stuff please*/
+ NSPasteboard *pb = [NSPasteboard pasteboardWithName:NSDragPboard];
+ NSArray *types = [pb types];
+ NSLog(@"%@", [pb types]);
+ NSData *data;
+ if ([types count])
+ {
+ id uh = [pb propertyListForType:[types objectAtIndex:0]];
+ if ([uh isKindOfClass:[NSArray class]])
+ {
+ if ([uh count])
+ {
+ uh = [uh objectAtIndex:0];
+
+ }
+ NSLog(@"%@", uh);
+ data = [uh dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES];
+ }
+ xdnd_selection_send(&dnd, &xEvent.xselectionrequest, (unsigned
char *)[data bytes], [data length]);
+ }
+
+ NSDebugLLog(@"NSEvent", @"%d SelectionRequest\n",
+ xEvent.xselectionrequest.requestor);
+ }
break;
-
+
// We shouldn't get here unless we forgot to trap an event above
default:
#ifdef XSHM
Index: Source/x11/XGDragView.m
===================================================================
--- Source/x11/XGDragView.m (revision 22775)
+++ Source/x11/XGDragView.m (working copy)
@@ -276,6 +276,7 @@
break;
case GSAppKitDraggingEnter:
+ xdnd_set_selection_owner(&dnd, dragWindev->ident, typelist[0]);
xdnd_send_enter(&dnd, dWindowNumber, dragWindev->ident, typelist);
xdnd_send_position(&dnd, dWindowNumber, dragWindev->ident,
GSActionForDragOperation (dragMask & operationMask),
Re: really attracting developers, Rogelio Serrano, 2006/08/26
Re: really attracting developers, Gregory John Casamento, 2006/08/27
Message not available