Platforms to show: All Mac Windows Linux Cross-Platform
/MacFrameworks/Image Capture/Image Capture Views
Required plugins for this example: MBS AVFoundation Plugin, MBS MacCocoa Plugin, MBS MacBase Plugin, MBS Main Plugin, MBS MacCG Plugin, MBS MacCF Plugin, MBS MacControls Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacFrameworks/Image Capture/Image Capture Views
This example is the version from Tue, 14th Jul 2014.
Project "Image Capture Views.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub Open()
if not TargetCocoa then
MsgBox "Only for Mac Cocoa!"
end if
End EventHandler
End Class
Class SelectWindow Inherits Window
Control SelectButton Inherits PushButton
ControlInstance SelectButton Inherits PushButton
EventHandler Sub Action()
System.DebugLog CurrentMethodName
dim v as IKDeviceBrowserViewMBS = View.View
dim d as Variant = v.selectedDevice
if d <> nil then
if d isa ICCameraDeviceMBS then
dim c as ICCameraDeviceMBS = d
dim cw as new CameraWindow
cw.init c
end if
if d isa ICScannerDeviceMBS then
dim c as ICScannerDeviceMBS = d
dim cw as new ScannerWindow
cw.init c
end if
end if
End EventHandler
End Control
Control view Inherits IKDeviceBrowserViewControlMBS
ControlInstance view Inherits IKDeviceBrowserViewControlMBS
EventHandler Sub Open()
System.DebugLog CurrentMethodName
dim v as IKDeviceBrowserViewMBS = me.View
v.displaysLocalCameras = true
v.displaysLocalScanners = true
v.displaysNetworkCameras = true
v.displaysNetworkScanners = true
End EventHandler
EventHandler Sub SelectionDidChange(device as ICDeviceMBS)
System.DebugLog CurrentMethodName
if device = nil then
SelectButton.Enabled = false
else
SelectButton.Enabled = true
end if
End EventHandler
End Control
EventHandler Sub Open()
System.DebugLog CurrentMethodName
events = new ImageCaptureEvents
End EventHandler
Property events As ImageCaptureEvents
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class ScannerWindow Inherits Window
Control view Inherits IKScannerDeviceViewControlMBS
ControlInstance view Inherits IKScannerDeviceViewControlMBS
EventHandler Sub DidEncounterError(error as NSErrorMBS)
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub DidScanToURL(url as String, file as FolderItem, fileData as MemoryBlock, error as NSErrorMBS)
System.DebugLog CurrentMethodName
file.Launch
End EventHandler
End Control
EventHandler Sub Open()
System.DebugLog CurrentMethodName
End EventHandler
Sub Init(device as ICScannerDeviceMBS)
System.DebugLog CurrentMethodName
self.device = device
dim v as IKScannerDeviceViewMBS = view.View
v.documentName = "test"
v.hasDisplayModeSimple = true
v.hasDisplayModeAdvanced = true
v.scanControlLabel = "Scan"
v.overviewControlLabel = "Overview"
v.mode = v.IKScannerDeviceViewDisplayModeSimple
v.transferMode = v.IKScannerDeviceViewTransferModeFileBased
v.displaysPostProcessApplicationControl = true
v.displaysDownloadsDirectoryControl = true
v.downloadsFolder = SpecialFolder.Desktop
v.isHidden = false
v.scannerDevice = device
if not device.HasOpenSession then
device.requestOpenSession
end if
End Sub
Property device As ICScannerDeviceMBS
End Class
Class CameraWindow Inherits Window
Control view Inherits IKCameraDeviceViewControlMBS
ControlInstance view Inherits IKCameraDeviceViewControlMBS
EventHandler Sub DidDownloadFile(CameraFile as ICCameraFileMBS, URL as string, File as folderItem, data as MemoryBlock, error as NSErrorMBS)
System.DebugLog CurrentMethodName
file.Launch
End EventHandler
EventHandler Sub DidEncounterError(Error as NSErrorMBS)
System.DebugLog CurrentMethodName
End EventHandler
EventHandler Sub SelectionDidChange()
System.DebugLog CurrentMethodName
End EventHandler
End Control
Sub Init(device as ICCameraDeviceMBS)
System.DebugLog CurrentMethodName
self.device = device
dim v as IKCameraDeviceViewMBS = view.View
v.downloadAllControlLabel = "Download All"
v.downloadSelectedControlLabel = "Download"
v.displaysDownloadsDirectoryControl = true
v.displaysPostProcessApplicationControl = true
v.transferMode = v.IKCameraDeviceViewTransferModeFileBased
v.mode = v.IKCameraDeviceViewDisplayModeTable
v.downloadsFolder = SpecialFolder.Desktop
v.isHidden = false
v.cameraDevice = device
if not device.HasOpenSession then
device.requestOpenSession
end if
End Sub
Property device As ICCameraDeviceMBS
End Class
Class ImageCaptureEvents Inherits ImageCaptureEventsMBS
EventHandler Sub deviceDidEncounterError(device as ICDeviceMBS, error as NSErrorMBS)
System.DebugLog CurrentMethodName
System.DebugLog error.LocalizedDescription
End EventHandler
EventHandler Sub deviceDidRemove(device as ICDeviceMBS)
System.DebugLog CurrentMethodName
if device.HasOpenSession then
device.requestCloseSession
end if
End EventHandler
EventHandler Sub scannerDeviceDidBecomeAvailable(scanner as ICScannerDeviceMBS)
System.DebugLog CurrentMethodName
if not scanner.HasOpenSession then
scanner.requestOpenSession
end if
End EventHandler
End Class
End Project
See also:
The items on this page are in the following plugins: MBS MacFrameworks Plugin.