import './ControlBar.css'; import { Accessor, createSignal, For, Match, Show, Switch } from 'solid-js'; import { Node, NodeType } from '../structs/node'; import { TextInput } from './TextInput'; import { invoke } from '@tauri-apps/api/core'; import { OSCMessage } from '../structs/OscMessage'; import { ParameterList } from './ParameterList'; import { NodeManager } from '../Mangers/NodeManager'; export interface ControlBarProps{ node: Accessor, lockMovement: ( lock: boolean ) => void } export let ControlBar = ( props: ControlBarProps ) => { return (
{ ( item ) => { let [ popupOpen, setPopupOpen ] = createSignal(false); return (
{ item.name }
{ let value = el.target.value; let node = props.node()[0]!; item.value = value; node.onStaticsUpdate(node); NodeManager.Instance.UpdateConfig(); }} />
{ item.name }
{ let value = el.target.value; let node = props.node()[0]!; item.value = parseInt(value); node.onStaticsUpdate(node); NodeManager.Instance.UpdateConfig(); }} />
{ item.name }
{ let value = el.target.value; let node = props.node()[0]!; item.value = parseFloat(value); node.onStaticsUpdate(node); NodeManager.Instance.UpdateConfig(); }} />
{ item.name }
=> { let addresses = await invoke('get_addresses'); return addresses.map(x => x.address).filter(x => x.toLowerCase().includes(text.toLowerCase())); }} change={( text ) => { let node = props.node()[0]!; item.value = text; node.onStaticsUpdate(node); NodeManager.Instance.UpdateConfig(); }} />
{ let popup = !popupOpen(); props.lockMovement(popup); setPopupOpen(popup); }}> { item.name }
{ setPopupOpen(open); props.lockMovement(open); }} value={item.value} changed={( value ) => { let node = props.node()[0]!; item.value = value; node.onStaticsUpdate(node); NodeManager.Instance.UpdateConfig(); }} />
) }}
) }