private HScaleSpinButtonWidget CreateSlider(string caption, object o, MemberInfo member, object[] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget(); int min_value = -100; int max_value = 100; double inc_value = 1.0; int digits_value = 0; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) { min_value = ((MinimumValueAttribute)attr).Value; } else if (attr is MaximumValueAttribute) { max_value = ((MaximumValueAttribute)attr).Value; } else if (attr is IncrementValueAttribute) { inc_value = ((IncrementValueAttribute)attr).Value; } else if (attr is DigitsValueAttribute) { digits_value = ((DigitsValueAttribute)attr).Value; } } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.IncrementValue = inc_value; widget.DigitsValue = digits_value; widget.DefaultValue = (int)GetValue(member, o); widget.ValueChanged += delegate(object sender, EventArgs e) { if (event_delay_timeout_id != 0) { GLib.Source.Remove(event_delay_timeout_id); } event_delay_timeout_id = GLib.Timeout.Add(event_delay_millis, () => { event_delay_timeout_id = 0; SetValue(member, o, widget.ValueAsInt); return(false); }); }; return(widget); }
private HScaleSpinButtonWidget CreateSlider(string caption, object o, MemberInfo member, object[] attributes) { var min_value = -100; var max_value = 100; var inc_value = 1.0; var digits_value = 0; foreach (var attr in attributes) { if (attr is MinimumValueAttribute min) { min_value = min.Value; } else if (attr is MaximumValueAttribute max) { max_value = max.Value; } else if (attr is IncrementValueAttribute inc) { inc_value = inc.Value; } else if (attr is DigitsValueAttribute digits) { digits_value = digits.Value; } } var widget = new HScaleSpinButtonWidget { Label = caption, MinimumValue = min_value, MaximumValue = max_value, IncrementValue = inc_value, DigitsValue = digits_value }; if (GetValue(member, o) is int i) { widget.DefaultValue = i; } widget.ValueChanged += delegate(object?sender, EventArgs e) { DelayedUpdate(() => { SetValue(member, o, widget.ValueAsInt); return(false); }); }; return(widget); }
private HScaleSpinButtonWidget CreateDoubleSlider(string caption, object o, MemberInfo member, object [] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget(); int min_value = -100; int max_value = 100; double inc_value = 0.01; int digits_value = 2; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) { min_value = ((MinimumValueAttribute)attr).Value; } else if (attr is MaximumValueAttribute) { max_value = ((MaximumValueAttribute)attr).Value; } else if (attr is IncrementValueAttribute) { inc_value = ((IncrementValueAttribute)attr).Value; } else if (attr is DigitsValueAttribute) { digits_value = ((DigitsValueAttribute)attr).Value; } } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.IncrementValue = inc_value; widget.DigitsValue = digits_value; widget.DefaultValue = (double)GetValue(member, o); widget.ValueChanged += delegate(object sender, EventArgs e) { DelayedUpdate(() => { SetValue(member, o, widget.Value); return(false); }); }; return(widget); }
private HScaleSpinButtonWidget CreateSlider(string caption, object o, MemberInfo member, object[] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget (); int min_value = -100; int max_value = 100; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) min_value = ((MinimumValueAttribute)attr).Value; else if (attr is MaximumValueAttribute) max_value = ((MaximumValueAttribute)attr).Value; } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.DefaultValue = (int)GetValue (member, o); widget.ValueChanged += delegate (object sender, EventArgs e) { if (event_delay_timeout_id != 0) GLib.Source.Remove (event_delay_timeout_id); event_delay_timeout_id = GLib.Timeout.Add (event_delay_millis, () => { event_delay_timeout_id = 0; SetValue (member, o, widget.Value); return false; }); }; return widget; }
private void Build () { Resizable = false; VBox.WidthRequest = 400; VBox.BorderWidth = 6; VBox.Spacing = 6; red_spinbox = new HScaleSpinButtonWidget (); red_spinbox.Label = Catalog.GetString ("Red"); InitSpinBox (red_spinbox); green_spinbox = new HScaleSpinButtonWidget (); green_spinbox.Label = Catalog.GetString ("Green"); InitSpinBox (green_spinbox); blue_spinbox = new HScaleSpinButtonWidget (); blue_spinbox.Label = Catalog.GetString ("Blue"); InitSpinBox (blue_spinbox); link_button = new CheckButton (Catalog.GetString ("Linked")); link_button.Active = true; VBox.Add (link_button); AddButton (Stock.Cancel, ResponseType.Cancel); AddButton (Stock.Ok, ResponseType.Ok); DefaultWidth = 400; DefaultHeight = 300; ShowAll (); }
private void InitSpinBox (HScaleSpinButtonWidget spinbox) { spinbox.DefaultValue = 16; spinbox.MaximumValue = 64; spinbox.MinimumValue = 2; VBox.Add (spinbox); }
private HScaleSpinButtonWidget CreateSlider(string caption, object o, MemberInfo member, object[] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget (); int min_value = -100; int max_value = 100; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) min_value = ((MinimumValueAttribute)attr).Value; else if (attr is MaximumValueAttribute) max_value = ((MaximumValueAttribute)attr).Value; } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.DefaultValue = (int)GetValue (member, o); widget.ValueChanged += delegate (object sender, EventArgs e) { SetValue (member, o, widget.Value); }; return widget; }