---
title: FxOnScreenControl_v4
framework: Professional Video Applications
role: symbol
role_heading: Protocol
platforms: [fxplug 4.0+]
path: professional_video_applications/fxonscreencontrol_v4
---

# FxOnScreenControl_v4

Defines the methods a plug-in must implement to create parameter controls.

## Declaration

```swift
protocol FxOnScreenControl_v4
```

## Topics

### Instance Methods

- [drawOSC(withWidth:height:activePart:destinationImage:at:)](professional_video_applications/fxonscreencontrol_v4/drawosc(withwidth:height:activepart:destinationimage:at:).md)
- [drawingCoordinates()](professional_video_applications/fxonscreencontrol_v4/drawingcoordinates().md)
- [hitTestOSC(atMousePositionX:mousePositionY:activePart:at:)](professional_video_applications/fxonscreencontrol_v4/hittestosc(atmousepositionx:mousepositiony:activepart:at:).md)
- [keyDown(atPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:at:)](professional_video_applications/fxonscreencontrol_v4/keydown(atpositionx:positiony:keypressed:modifiers:forceupdate:didhandle:at:).md)
- [keyUp(atPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:at:)](professional_video_applications/fxonscreencontrol_v4/keyup(atpositionx:positiony:keypressed:modifiers:forceupdate:didhandle:at:).md)
- [mouseDown(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousedown(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseDragged(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousedragged(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseEntered(atPositionX:positionY:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseentered(atpositionx:positiony:modifiers:forceupdate:at:).md)
- [mouseExited(atPositionX:positionY:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseexited(atpositionx:positiony:modifiers:forceupdate:at:).md)
- [mouseMoved(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousemoved(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseUp(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseup(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)

## See Also

### Onscreen Control APIs

- [FxOnScreenControlAPI](professional_video_applications/fxonscreencontrolapi.md)
- [FxOnScreenControlAPI_v2](professional_video_applications/fxonscreencontrolapi_v2.md)
- [FxOnScreenControlAPI_v3](professional_video_applications/fxonscreencontrolapi_v3.md)
- [FxOnScreenControlAPI_v4](professional_video_applications/fxonscreencontrolapi_v4.md)
