Platforms to show: All Mac Windows Linux Cross-Platform

/MacControls/Custom NSView Drop


Required plugins for this example: MBS MacFrameworks Plugin, MBS MacControls Plugin, MBS MacBase Plugin, MBS Main Plugin, MBS MacCocoa Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacControls/Custom NSView Drop

This example is the version from Thu, 31th Jul 2019.

Project "Custom NSView Drop.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control CocoaControlMBS1 Inherits CocoaControlMBS
ControlInstance CocoaControlMBS1 Inherits CocoaControlMBS
EventHandler Function GetView() As NSViewMBS n=new CustomNSView(0,0,me.Width,me.Height) n.list = list dim types() as string types.Append NSPasteboardMBS.NSFilenamesPboardType 'types.Append NSPasteboardMBS.NSURLPboardType 'types.Append "public.data" n.registerForDraggedTypes(types) Return n End EventHandler
End Control
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
EventHandler Sub Open() if not CocoaControlMBS1.Available then MsgBox "This example requires Mac OS X 10.5." quit end if End EventHandler
Property n As CustomNSView
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class CustomNSView Inherits CustomNSViewMBS
EventHandler Sub DrawRect(g as NSGraphicsMBS, left as double, top as double, width as double, height as double) g.SetColorRGB 1.0,0.0,0.0,1.0 g.fillRect left,top,width,height End EventHandler
EventHandler Function acceptsFirstMouse(e as NSEventMBS) As boolean Return true End EventHandler
EventHandler Function acceptsFirstResponder() As boolean Return true End EventHandler
EventHandler Function becomeFirstResponder() As boolean Return true End EventHandler
EventHandler Function canBecomeKeyView() As boolean Return true End EventHandler
EventHandler Sub concludeDragOperation(sender as NSDraggingInfoMBS) // DraggingDestination log CurrentMethodName End EventHandler
EventHandler Sub draggingEnded(sender as NSDraggingInfoMBS) // DraggingDestination log CurrentMethodName End EventHandler
EventHandler Function draggingEntered(sender as NSDraggingInfoMBS) As integer // DraggingDestination log CurrentMethodName Return NSDraggingInfoMBS.NSDragOperationCopy End EventHandler
EventHandler Sub draggingExited(sender as NSDraggingInfoMBS) // DraggingDestination log CurrentMethodName End EventHandler
EventHandler Function draggingUpdated(sender as NSDraggingInfoMBS) As integer // DraggingDestination log CurrentMethodName Return NSDraggingInfoMBS.NSDragOperationCopy End EventHandler
EventHandler Function ignoreModifierKeysForDraggingSession(session as NSDraggingSessionMBS) As boolean log CurrentMethodName End EventHandler
EventHandler Function mouseDown(e as NSEventMBS, x as double, y as double) As boolean Return true End EventHandler
EventHandler Function performDragOperation(sender as NSDraggingInfoMBS) As boolean // DraggingDestination log CurrentMethodName dim p as NSPasteboardMBS = sender.draggingPasteboard dim types() as string = p.types log "Types: "+Join(types,", ") dim url as string = p.URLFromPasteboard log "URL: "+URL dim file as FolderItem = GetFolderItem(url, FolderItem.PathTypeURL) log "File: "+file.NativePath Return true End EventHandler
EventHandler Function prepareForDragOperation(sender as NSDraggingInfoMBS) As boolean // DraggingDestination log CurrentMethodName Return true End EventHandler
EventHandler Sub updateDraggingItemsForDrag(sender as NSDraggingInfoMBS) // DraggingDestination log CurrentMethodName End EventHandler
EventHandler Function wantsPeriodicDraggingUpdates() As boolean log CurrentMethodName End EventHandler
Sub log(s as string) list.AddRow s list.ScrollPosition = list.ListCount End Sub
Property list As listbox
End Class
End Project

See also:

The items on this page are in the following plugins: MBS MacControls Plugin.


The biggest plugin in space...