mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-17 04:07:58 +01:00
Unifies the way windows are considered "interesting" by FancyZone. Berfore the change WinKey + arrows would use different method than dragging. This PR makes both use the WinKey + arrows method. Cleans up FancyZones Settings.cpp by removing m_configStrings variable. Contrary to its name it was used to create color picker control. Adds a multiline option to the text input to settings. Uses this to provide the user with a way to exclude certain apps from snapping to zones.
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import React from 'react';
|
|
import {BaseSettingsControl} from './BaseSettingsControl';
|
|
import { TextField } from 'office-ui-fabric-react';
|
|
|
|
export class StringTextSettingsControl extends BaseSettingsControl {
|
|
textref:any = null; // Keeps a reference to the corresponding TextField in the DOM.
|
|
|
|
constructor(props:any) {
|
|
super(props);
|
|
this.textref = null;
|
|
this.state={
|
|
property_values: props.setting,
|
|
multiline: !!props.setting.multiline
|
|
}
|
|
}
|
|
|
|
componentWillReceiveProps(props: any) {
|
|
// Fully controlled component.
|
|
// Reacting to a property change so that the control is redrawn properly.
|
|
this.setState({ property_values: props.setting })
|
|
}
|
|
|
|
public get_value() : any {
|
|
// Returns the TextField value.
|
|
return {value: this.textref.value};
|
|
}
|
|
|
|
public render(): JSX.Element {
|
|
// Renders a UI Fabric TextField.
|
|
return (
|
|
<TextField
|
|
styles={{ fieldGroup: {
|
|
width: '350px',
|
|
alignSelf: 'start'
|
|
}}}
|
|
onChange = {
|
|
(_event,_new_value) => {
|
|
// Updates the state with the new value introduced in the TextField.
|
|
this.setState( (prev_state:any) => ({
|
|
property_values: {
|
|
...(prev_state.property_values),
|
|
value: _new_value
|
|
}
|
|
})
|
|
);
|
|
// Signal the parent that the user changed a value.
|
|
this.parent_on_change();
|
|
}
|
|
}
|
|
multiline={this.state.multiline}
|
|
value={this.state.property_values.value}
|
|
label={this.state.property_values.display_name}
|
|
componentRef= {(input) => {this.textref=input;}}
|
|
/>
|
|
);
|
|
}
|
|
}
|