Browse Source

Removing initial Drag & Drop implementation (now in UI)

Josh Engebretson 10 years ago
parent
commit
7af4b5cdbf

+ 0 - 120
Source/AtomicEditorWork/Application/AEDragAndDrop.cpp

@@ -1,120 +0,0 @@
-/*
-#include <Atomic/IO/Log.h>
-#include <Atomic/Graphics/Graphics.h>
-#include <Atomic/Input/InputEvents.h>
-#include <Atomic/Input/Input.h>
-#include <Atomic/UI/UIWidget.h>
-
-#include <ToolCore/Assets/Asset.h>
-
-#include <ThirdParty/TurboBadger/tb_widgets.h>
-
-#include "AEDragAndDrop.h"
-
-#ifdef ATOMIC_PLATFORM_OSX
-#include "AEMacDragAndDrop.h"
-#endif
-
-namespace AtomicEditor
-{
-
-AEDragAndDrop::AEDragAndDrop(Context *context) : Object(context)
-{
-#ifdef ATOMIC_PLATFORM_OSX
-    InitDragAndDrop(this);
-#endif
-
-    SubscribeToEvent(E_MOUSEMOVE, HANDLER(AEDragAndDrop,HandleMouseMove));
-    SubscribeToEvent(E_MOUSEBUTTONUP, HANDLER(AEDragAndDrop,HandleMouseUp));
-    SubscribeToEvent(E_MOUSEBUTTONDOWN, HANDLER(AEDragAndDrop,HandleMouseDown));
-
-}
-
-void AEDragAndDrop::HandleMouseDown(StringHash eventType, VariantMap& eventData)
-{
-    using namespace MouseMove;
-
-    Input* input = GetSubsystem<Input>();
-
-    if (!input->IsMouseVisible())
-        return;
-
-    if (eventData[P_BUTTONS].GetUInt() & MOUSEB_LEFT)
-    {
-        // see if we have a widget
-        if (tb::TBWidget::hovered_widget && tb::TBWidget::hovered_widget->GetDelegate())
-        {
-            UIWidget* widget = (UIWidget*) tb::TBWidget::hovered_widget->GetDelegate();
-            dragObject_ = widget->GetDragObject();
-
-            if (dragObject_ && dragObject_->GetType() == ToolCore::Asset::GetTypeStatic())
-            {
-                ToolCore::Asset* asset = (ToolCore::Asset*) dragObject_.Get();
-                LOGINFOF("Drag Asset: %s", asset->GetPath().CString());
-
-                #ifdef ATOMIC_PLATFORM_OSX
-                StartDragAndDrop();
-                #endif
-
-            }
-        }
-    }
-}
-
-void AEDragAndDrop::HandleMouseUp(StringHash eventType, VariantMap& eventData)
-{
-    using namespace MouseMove;
-
-    Input* input = GetSubsystem<Input>();
-
-    if (!input->IsMouseVisible())
-        return;
-
-    if (eventData[P_BUTTONS].GetUInt() & MOUSEB_LEFT)
-    {
-        dragObject_ = 0;
-    }
-
-}
-
-void AEDragAndDrop::HandleMouseMove(StringHash eventType, VariantMap& eventData)
-{
-    using namespace MouseMove;
-
-    Input* input = GetSubsystem<Input>();
-
-    if (!input->IsMouseVisible())
-        return;
-
-    if (eventData[P_BUTTONS].GetUInt() & MOUSEB_LEFT)
-    {
-        int x = eventData[P_X].GetInt();
-        int y = eventData[P_Y].GetInt();
-    }
-}
-
-void AEDragAndDrop::BeginDrag()
-{
-    dragFilenames_.Clear();
-}
-
-void AEDragAndDrop::AddDragFilename(const String& filename)
-{
-    dragFilenames_.Push(filename);
-}
-
-void AEDragAndDrop::ConcludeDrag()
-{
-    for (unsigned i = 0; i < dragFilenames_.Size(); i++)
-    {
-        VariantMap eventData;
-        eventData[DragAndDrop::P_FILENAME] = dragFilenames_[i];
-        SendEvent(E_DRAGANDDROP, eventData);
-    }
-
-    dragFilenames_.Clear();
-}
-
-}
-
-*/

+ 0 - 45
Source/AtomicEditorWork/Application/AEDragAndDrop.h

@@ -1,45 +0,0 @@
-/*
-#pragma once
-
-#include <Atomic/Core/Object.h>
-
-using namespace Atomic;
-
-namespace AtomicEditor
-{
-
-/// A file was drag-dropped into the application window.
-EVENT(E_DRAGANDDROP, DragAndDrop)
-{
-    PARAM(P_FILENAME, FileName);            // String
-}
-
-class AEDragAndDrop : public Object
-{
-
-    OBJECT(AEDragAndDrop);
-
-public:
-    /// Construct.
-    AEDragAndDrop(Context* context);
-
-    void BeginDrag();
-    void AddDragFilename(const String& filename);
-    void ConcludeDrag();
-
-    Object* GetDragObject() { return dragObject_; }
-
-private:
-
-    void HandleMouseDown(StringHash eventType, VariantMap& eventData);
-    void HandleMouseUp(StringHash eventType, VariantMap& eventData);
-    void HandleMouseMove(StringHash eventType, VariantMap& eventData);
-
-    SharedPtr<Object> dragObject_;
-
-    Vector<String> dragFilenames_;
-
-};
-
-}
-*/

+ 0 - 16
Source/AtomicEditorWork/Application/AEMacDragAndDrop.h

@@ -1,16 +0,0 @@
-/*
-#pragma once
-
-namespace AtomicEditor
-{
-
-class AEDragAndDrop;
-
-void InitDragAndDrop(AEDragAndDrop* dragAndDrop);
-
-void StartDragAndDrop();
-
-}
-*/
-
-

+ 0 - 165
Source/AtomicEditorWork/Application/AEMacDragAndDrop.mm

@@ -1,165 +0,0 @@
-/*
-#include <stdio.h>
-
-#include <ThirdParty/SDL/include/SDL.h>
-#include <ThirdParty/SDL/include/SDL_syswm.h>
-
-#include <Atomic/IO/Log.h>
-#include <Atomic/Input/InputEvents.h>
-#include <Atomic/Graphics/Graphics.h>
-
-#include <ToolCore/Assets/Asset.h>
-
-#include "AEDragAndDrop.h"
-
-static WeakPtr<AtomicEditor::AEDragAndDrop> dragAndDrop_;
-
-@interface NSWindow (NSWindowWithDragAndDrop)
-
-    -(NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender;
-    -(NSDragOperation)draggingUpdated:(id)sender;
-    -(BOOL)prepareForDragOperation:(id)sender;
-    -(BOOL)performDragOperation:(id <NSDraggingInfo>)sender;
-    -(void)concludeDragOperation:(id <NSDraggingInfo>)sender;
-@end
-
-@implementation NSWindow (NSWindowWithDragAndDrop)
-
--(NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
-{
-    NSPasteboard *pboard = [sender draggingPasteboard];
-    NSString *type = [pboard availableTypeFromArray:[NSArray arrayWithObject:NSFilenamesPboardType]];
-    if (type)
-    {
-        if ([type isEqualToString:NSFilenamesPboardType])
-        {
-            NSArray *filenames = [pboard propertyListForType:NSFilenamesPboardType];
-            int i = (int) [filenames count];
-
-            if (i)
-                dragAndDrop_->BeginDrag();
-
-            while (i-- > 0)
-            {
-                NSString *filename = [filenames objectAtIndex:i];
-                dragAndDrop_->AddDragFilename([filename UTF8String]);
-            }
-
-        }
-    }
-
-    return NSDragOperationCopy;
-}
-
--(NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender
-{
-    using namespace Atomic::MouseMove;
-
-    Graphics* graphics = dragAndDrop_->GetSubsystem<Graphics>();
-
-    NSPoint dragPoint = [sender draggingLocation];
-
-    VariantMap eventData;
-    eventData[P_X] = (int) dragPoint.x;
-    eventData[P_Y] = graphics->GetHeight() - (int) dragPoint.y;
-    eventData[P_DX] = 0;
-    eventData[P_DY] = 0;
-    eventData[P_BUTTONS] = 0;
-    eventData[P_QUALIFIERS] = 0;
-
-    dragAndDrop_->SendEvent(E_MOUSEMOVE, eventData);
-
-    return NSDragOperationCopy;
-}
-
--(BOOL)prepareForDragOperation:(id)sender
-{
-    return YES;
-}
-
--(BOOL)performDragOperation:(id <NSDraggingInfo>)sender
-{
-    return YES;
-}
-
--(void)concludeDragOperation:(id <NSDraggingInfo>)sender
-{
-    dragAndDrop_->ConcludeDrag();
-}
-
-@end
-
-namespace AtomicEditor
-{
-
-static NSWindow* GetNSWindow()
-{
-    SDL_Window* window = (SDL_Window*) dragAndDrop_->GetSubsystem<Graphics>()->GetSDLWindow();
-
-    SDL_SysWMinfo info;
-    SDL_VERSION(&info.version);
-
-    if(SDL_GetWindowWMInfo(window, &info)) {
-
-        return info.info.cocoa.window;
-    }
-
-    return NULL;
-}
-
-void StartDragAndDrop()
-{
-    Object* o = dragAndDrop_->GetDragObject();
-
-    if (!o)
-        return;
-
-    ToolCore::Asset* asset = o->GetType() == ToolCore::Asset::GetTypeStatic() ? (ToolCore::Asset*) o : NULL;
-
-    if (asset)
-    {
-        NSWindow* window = GetNSWindow();
-        if (window)
-        {
-
-            NSImage *dragImage = nil;
-            NSPoint dragPosition;
-            NSString* filePath = [NSString stringWithUTF8String:asset->GetPath().CString()];
-
-            // Write data to the pasteboard
-
-            NSArray *fileList = [NSArray arrayWithObjects:filePath, nil];
-            NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
-            [pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType]
-                    owner:nil];
-            [pboard setPropertyList:fileList forType:NSFilenamesPboardType];
-
-            // blocks
-            [window dragImage:dragImage
-                    at:dragPosition
-                    offset:NSZeroSize
-                    event:nil
-                    pasteboard:pboard
-                    source:window
-                    slideBack:YES];
-
-        }
-    }
-}
-
-void InitDragAndDrop(AEDragAndDrop *dragAndDrop)
-{
-    dragAndDrop_ = dragAndDrop;
-
-    NSWindow* window = GetNSWindow();
-    if (window)
-    {
-        [window registerForDraggedTypes:[NSArray arrayWithObjects: NSFilenamesPboardType, nil]];
-    }
-
-}
-
-}
-
-*/
-