//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//  THIS FILE IS GENERATED BY EASY BINDINGS, DO NOT MODIFY IT
//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

import Cocoa

//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//   EBGraphicViewControllerProtocol
//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

protocol EBGraphicViewControllerProtocol : AnyObject {

  func bind_ebView (_ inGraphicView : EBGraphicView?)

  func boundViews () -> [EBGraphicView]

  func addPasteBoardType (_ inType : NSPasteboard.PasteboardType)

  var objectCount : Int { get }
  var graphicObjectArray : [EBGraphicManagedObject] { get }

  var ebUndoManager : EBUndoManager? { get }

//--- Selection operations

  func computeSelectionShape ()

  var selectedArrayDidChange_property : EBObservedObject { get }

  var selectedGraphicObjectSet : EBReferenceSet <EBGraphicManagedObject> { get }

  var selectedIndexesSet : Set <Int> { get }

  func selectAllObjects ()

  func canCut (_ inPasteboardType : NSPasteboard.PasteboardType?) -> Bool
  func cutSelectedObjectsIntoPasteboard (_ inPasteboardType : NSPasteboard.PasteboardType?, pasteOffset : CanariPoint)

  func canCopy (_ inPasteboardType : NSPasteboard.PasteboardType?) -> Bool
  func copySelectedObjectsIntoPasteboard (_ inPasteboardType : NSPasteboard.PasteboardType?, pasteOffset : CanariPoint)

  func canPaste (_ inPasteboardType : NSPasteboard.PasteboardType?) -> Bool
  func pasteFromPasteboard (_ inPasteboardType : NSPasteboard.PasteboardType?, _ inWindow : NSWindow)

  func canDelete () -> Bool
  func deleteSelectedObjects ()

  var canBringForward : Bool { get }
  func bringForward ()

  var canBringToFront : Bool { get }
  func bringToFront ()

  var canSendBackward : Bool { get }
  func sendBackward ()

  var canSendToBack : Bool { get }
  func sendToBack ()

  func canSnapToGrid (_ inGrid : Int) -> Bool
  func snapToGrid (_ inGrid : Int)

  var canFlipHorizontally : Bool { get }
  func flipHorizontally ()

  var canFlipVertically : Bool { get }
  func flipVertically ()

  var canRotate90 : Bool { get }
  func rotate90Clockwise ()
  func rotate90CounterClockwise ()

  func setSelection (objectsWithIndexes inIndexes : [Int])

  func addToSelection (objectsWithIndex inIndexes : [Int])

  func removeFromSelection (objectWithIndex inIndex : Int)

  func clearSelection ()

  func alignmentPointSetArray () -> [Set <CanariPoint>]

}

//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
