using System.Collections.Generic;
using CefSharp;
using CefSharp.Enums;

namespace TweetDuck.Core.Handling{
    sealed class DragHandlerBrowser : IDragHandler{
        private readonly RequestHandlerBrowser requestHandler;

        public DragHandlerBrowser(RequestHandlerBrowser requestHandler){
            this.requestHandler = requestHandler;
        }
        
        public bool OnDragEnter(IWebBrowser browserControl, IBrowser browser, IDragData dragData, DragOperationsMask mask){
            void TriggerDragStart(string type, string data = null){
                browserControl.ExecuteScriptAsync("window.TDGF_onGlobalDragStart", type, data);
            }
            
            requestHandler.BlockNextUserNavUrl = dragData.LinkUrl; // empty if not a link

            if (dragData.IsLink){
                TriggerDragStart("link", dragData.LinkUrl);
            }
            else if (dragData.IsFragment){
                TriggerDragStart("text", dragData.FragmentText.Trim());
            }
            else{
                TriggerDragStart("unknown");
            }

            return false;
        }

        public void OnDraggableRegionsChanged(IWebBrowser browserControl, IBrowser browser, IList<DraggableRegion> regions){}
    }
}