| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- * Copyright (c) 2012-2026 Daniele Bartolini et al.
- * SPDX-License-Identifier: GPL-3.0-or-later
- */
- namespace Crown
- {
- public class InputAngle : InputField
- {
- public double _radians;
- public InputDouble _degrees;
- public override void set_inconsistent(bool inconsistent)
- {
- }
- public override bool is_inconsistent()
- {
- return false;
- }
- public override GLib.Value union_value()
- {
- return this.value;
- }
- public override void set_union_value(GLib.Value v)
- {
- this.value = (double)v;
- }
- public double value
- {
- get
- {
- return _radians;
- }
- set
- {
- _radians = value;
- // Convert to radians for displaying.
- _degrees.value_changed.disconnect(on_value_changed);
- _degrees.value = MathUtils.deg(_radians);
- _degrees.value_changed.connect(on_value_changed);
- value_changed(this);
- }
- }
- public InputAngle(double val = 0.0, double min = 0.0, double max = 360.0)
- {
- _degrees = new InputDouble(val, min, max);
- _degrees.value_changed.connect(on_value_changed);
- this.add(_degrees);
- }
- public void on_value_changed(InputField p)
- {
- double new_radians = MathUtils.rad((double)_degrees.value);
- if (_radians != new_radians) {
- _radians = new_radians;
- value_changed(this);
- }
- }
- }
- } /* namespace Crown */
|