private Widget BuildCheck(PipelineVariable variable) { CheckButton check = new CheckButton(variable.Name); check.Toggled += delegate { variable.CurrentValue = Convert.ToString(check.Active ? 1 : 0); for (int i = 0; i < variable.Enables.Length; i++) { if (variable_widgets.ContainsKey(variable.Enables[i])) { variable_widgets[variable.Enables[i]].Visible = check.Active; variable_widgets[".label." + variable.Enables[i]].Visible = check.Active; } } for (int i = 0; i < variable.Disables.Length; i++) { if (variable_widgets.ContainsKey(variable.Disables[i])) { variable_widgets[variable.Disables[i]].Visible = !check.Active; variable_widgets[".label." + variable.Disables[i]].Visible = !check.Active; } } }; check.Active = ((int)variable.CurrentValueNumeric.Value) != 0; check.Show(); return(check); }
private TreeIter ComboAppend(ListStore model, PipelineVariable variable, string display, string value) { if (variable.Unit != null) { return(model.AppendValues(String.Format("{0} {1}", display, variable.Unit), value)); } else { return(model.AppendValues(display, value)); } }
private Widget BuildSlider(PipelineVariable variable) { if (variable.StepValue <= 0.0) { return(null); } HBox box = new HBox(); HScale slider = new HScale(variable.MinValue, variable.MaxValue, variable.StepValue); slider.DrawValue = true; slider.Digits = variable.StepPrecision; if (variable.DefaultValueNumeric != null) { slider.Value = (double)variable.DefaultValueNumeric; } if (variable.CurrentValueNumeric != null) { slider.Value = (double)variable.CurrentValueNumeric; } slider.ChangeValue += delegate { variable.CurrentValue = slider.Value.ToString(); }; if (variable.MinLabel != null) { Label min_label = new Label(); min_label.Yalign = 0.9f; min_label.Markup = String.Format("<small>{0}</small>", GLib.Markup.EscapeText(variable.MinLabel)); box.PackStart(min_label, false, false, 0); box.Spacing = 5; } box.PackStart(slider, true, true, 0); if (variable.MaxLabel != null) { Label max_label = new Label(); max_label.Yalign = 0.9f; max_label.Markup = String.Format("<small>{0}</small>", GLib.Markup.EscapeText(variable.MaxLabel)); box.PackStart(max_label, false, false, 0); box.Spacing = 5; } box.ShowAll(); return(box); }
private void OnComboChanged(object o, EventArgs args) { if (!(o is PipelineVariableComboBox)) { return; } PipelineVariableComboBox box = o as PipelineVariableComboBox; PipelineVariable variable = box.Variable; ListStore model = box.Store; TreeIter selected_iter = TreeIter.Zero; if (box.GetActiveIter(out selected_iter)) { variable.CurrentValue = (string)model.GetValue(selected_iter, 1); if (variable.PossibleValuesCount > 0 && variable.PossibleValues.ContainsKey(variable.CurrentValue)) { PipelineVariable.PossibleValue possible_value = variable.PossibleValues[variable.CurrentValue]; if (possible_value.Disables != null) { for (int i = 0; i < possible_value.Disables.Length; i++) { if (variable_widgets.ContainsKey(possible_value.Disables[i])) { variable_widgets[possible_value.Disables[i]].Visible = false; variable_widgets[".label." + possible_value.Disables[i]].Visible = false; } } } if (possible_value.Enables != null) { for (int i = 0; i < possible_value.Enables.Length; i++) { if (variable_widgets.ContainsKey(possible_value.Enables[i])) { variable_widgets[possible_value.Enables[i]].Visible = true; variable_widgets[".label." + possible_value.Enables[i]].Visible = true; } } } } } }
private Widget BuildControl(PipelineVariable variable) { switch (variable.ControlType) { default: case PipelineVariableControlType.Text: return(new Entry()); case PipelineVariableControlType.Slider: return(BuildSlider(variable)); case PipelineVariableControlType.Combo: return(BuildCombo(variable)); case PipelineVariableControlType.Check: return(BuildCheck(variable)); } }
public PipelineVariableComboBox(PipelineVariable variable, ListStore model) : base() { this.variable = variable; this.model = model; }
private Widget BuildCombo(PipelineVariable variable) { ListStore model = new ListStore(typeof(string), typeof(string)); PipelineVariableComboBox box = new PipelineVariableComboBox(variable, model); TreeIter active_iter = TreeIter.Zero; box.Changed += OnComboChanged; if (variable.PossibleValuesCount > 0) { foreach (string key in variable.PossibleValuesKeys) { TreeIter iter = ComboAppend(model, variable, variable.PossibleValues[key].Display, key); if (variable.CurrentValue == key || (active_iter.Equals(TreeIter.Zero) && variable.DefaultValue == key)) { active_iter = iter; } } } else { double min = variable.MinValue; double max = variable.MaxValue; double step = variable.StepValue; double current = min; for (; current <= max; current += step) { ComboAppend(model, variable, current.ToString(), current.ToString()); } } if (active_iter.Equals(TreeIter.Zero)) { for (int i = 0, n = model.IterNChildren(); i < n; i++) { TreeIter iter; if (model.IterNthChild(out iter, i)) { string value = (string)model.GetValue(iter, 1); if (value == variable.CurrentValue) { active_iter = iter; break; } } } } CellRendererText text_renderer = new CellRendererText(); box.PackStart(text_renderer, true); box.AddAttribute(text_renderer, "text", 0); box.Model = model; if (active_iter.Equals(TreeIter.Zero)) { if (model.IterNthChild(out active_iter, 0)) { box.SetActiveIter(active_iter); } } else { box.SetActiveIter(active_iter); } return(box); }