namespace GConf.PropertyEditors { using Gtk; using GtkSharp; using System; public class PropertyEditorSpinButton : PropertyEditor { bool is_int; protected override void ValueChanged (object sender, NotifyEventArgs args) { object val = args.Value; SpinButton spin = (SpinButton) Control; is_int = val is int; if (is_int) spin.Value = (double) (int) val; else spin.Value = (double) val; } void Changed (object obj, EventArgs args) { Adjustment adj = (Adjustment) obj; if (is_int) Set ((int) adj.Value); else Set (adj.Value); } protected override void ConnectHandlers () { SpinButton spin = (SpinButton) Control; spin.Adjustment.ValueChanged += new EventHandler (Changed); } public PropertyEditorSpinButton (string key, SpinButton spin) : base (key, spin) { } } }