public OptionsUI(int flags = 0) { collapsible_ = new Collapsible("Options and presets", null, flags); resetValuesOnFreeze_ = new Checkbox( "Reset positions on freeze", options_.ResetValuesOnFreeze, ResetValuesOnFreezeChanged, flags); resetCountersOnThaw_ = new Checkbox( "Reset counters on thaw", options_.ResetCountersOnThaw, ResetCountersOnThaw, flags); pickAnimatable_ = new Checkbox( "Pick animatable", PickAnimatableChanged, flags); manageAnimatable_ = new Button( "Manage animatables", ManageAnimatables, flags); overlapTime_ = new FloatSlider( "Global overlap time", options_.OverlapTime, new FloatRange(0, 1), OverlapTimeChanged, flags); logLevel_ = new StringList( "Log level", Options.LogLevelToString(options_.LogLevel), Options.GetLogLevelNames(), LogLevelChanged, flags); logOverlap_ = new Checkbox( "Log overlap", LogOverlapChanged, flags); usePlaceholder_ = new Checkbox( "Save: use placeholder for atoms", null, flags); collapsible_.Add(resetValuesOnFreeze_); collapsible_.Add(resetCountersOnThaw_); collapsible_.Add(pickAnimatable_); collapsible_.Add(manageAnimatable_); collapsible_.Add(overlapTime_); collapsible_.Add(logLevel_); collapsible_.Add(logOverlap_); collapsible_.Add(new SmallSpacer(flags)); collapsible_.Add(usePlaceholder_); collapsible_.Add(new Button( "Full: save", SaveFull, flags)); collapsible_.Add(new Button( "Full: load, replace everything", () => { LoadFull(Utilities.PresetReplace); }, flags)); collapsible_.Add(new Button( "Full: load, append steps", () => { LoadFull(Utilities.PresetAppend); }, flags)); collapsible_.Add(new SmallSpacer(flags)); collapsible_.Add(new Button( "Step: save current", SaveStep, flags)); collapsible_.Add(new Button( "Step: load, replace current", () => { LoadStep(Utilities.PresetReplace); }, flags)); collapsible_.Add(new Button( "Step: load, add modifiers to current step", () => { LoadStep(Utilities.PresetMerge); }, flags)); collapsible_.Add(new Button( "Step: load, append as new step", () => { LoadStep(Utilities.PresetAppend); }, flags)); collapsible_.Add(new SmallSpacer(flags)); collapsible_.Add(new Button( "Modifier: save current", SaveModifier, flags)); collapsible_.Add(new Button( "Modifier: load, replace current", () => { LoadModifier(Utilities.PresetReplace); }, flags)); collapsible_.Add(new Button( "Modifier: load, append to current step", () => { LoadModifier(Utilities.PresetAppend); }, flags)); collapsible_.Add(new SmallSpacer(flags)); }