// Copyright (C) 2020-2021 Intel Corporation // // SPDX-License-Identifier: MIT import React from 'react'; import { Row, Col } from 'antd/lib/grid'; import Checkbox, { CheckboxChangeEvent } from 'antd/lib/checkbox'; import Button from 'antd/lib/button'; import Slider from 'antd/lib/slider'; import Select from 'antd/lib/select'; import Popover from 'antd/lib/popover'; import InputNumber from 'antd/lib/input-number'; import Icon from '@ant-design/icons'; import Text from 'antd/lib/typography/Text'; import { CompactPicker } from 'react-color'; import { clamp } from 'utils/math'; import { BackJumpIcon, ForwardJumpIcon } from 'icons'; import { FrameSpeed, GridColor } from 'reducers/interfaces'; import consts from 'consts'; interface Props { frameStep: number; frameSpeed: FrameSpeed; resetZoom: boolean; rotateAll: boolean; grid: boolean; gridSize: number; gridColor: GridColor; gridOpacity: number; brightnessLevel: number; contrastLevel: number; saturationLevel: number; canvasBackgroundColor: string; onChangeFrameStep(step: number): void; onChangeFrameSpeed(speed: FrameSpeed): void; onSwitchResetZoom(enabled: boolean): void; onSwitchRotateAll(rotateAll: boolean): void; onSwitchGrid(grid: boolean): void; onChangeGridSize(gridSize: number): void; onChangeGridColor(gridColor: GridColor): void; onChangeGridOpacity(gridOpacity: number): void; onChangeBrightnessLevel(level: number): void; onChangeContrastLevel(level: number): void; onChangeSaturationLevel(level: number): void; onChangeCanvasBackgroundColor(color: string): void; } export default function PlayerSettingsComponent(props: Props): JSX.Element { const { frameStep, frameSpeed, resetZoom, rotateAll, grid, gridSize, gridColor, gridOpacity, brightnessLevel, contrastLevel, saturationLevel, canvasBackgroundColor, onChangeFrameStep, onChangeFrameSpeed, onSwitchResetZoom, onSwitchRotateAll, onSwitchGrid, onChangeGridSize, onChangeGridColor, onChangeGridOpacity, onChangeBrightnessLevel, onChangeContrastLevel, onChangeSaturationLevel, onChangeCanvasBackgroundColor, } = props; const minFrameStep = 2; const maxFrameStep = 1000; const minGridSize = 5; const maxGridSize = 1000; return (
Player step { if (typeof value !== 'undefined') { onChangeFrameStep(Math.floor(clamp(+value, minFrameStep, maxFrameStep))); } }} /> Number of frames skipped when selecting or Player speed onChangeCanvasBackgroundColor(e.hex)} /> )} overlayClassName='canvas-background-color-picker-popover' trigger='click' > { onSwitchGrid(event.target.checked); }} > Show grid Grid size { if (typeof value !== 'undefined') { onChangeGridSize(Math.floor(clamp(+value, minGridSize, maxGridSize))); } }} /> Grid color Grid opacity { onChangeGridOpacity(value as number); }} /> {`${gridOpacity} %`} { onSwitchResetZoom(event.target.checked); }} > Reset zoom Fit image after changing frame { onSwitchRotateAll(event.target.checked); }} > Rotate all images Rotate all images simultaneously Brightness { onChangeBrightnessLevel(value as number); }} /> Contrast { onChangeContrastLevel(value as number); }} /> Saturation { onChangeSaturationLevel(value as number); }} />
); }