ColourConversionEditor::ColourConversionEditor (wxWindow* parent, bool yuv)
: wxPanel (parent, wxID_ANY)
+ , _ignore_chromaticity_changed (false)
{
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
SetSizer (overall_sizer);
_yuv_to_rgb->SetSelection (conversion.yuv_to_rgb ());
+ _ignore_chromaticity_changed = true;
+
SafeStringStream s;
s.setf (std::ios::fixed, std::ios::floatfield);
s.precision (6);
s << conversion.white().y;
_white_y->SetValue (std_to_wx (s.str ()));
+ _ignore_chromaticity_changed = false;
+
if (conversion.adjusted_white ()) {
_adjust_white->SetValue (true);
s.str ("");
update_rgb_to_xyz ();
update_bradford ();
+ changed ();
}
ColourConversion
void
ColourConversionEditor::chromaticity_changed ()
{
+ if (_ignore_chromaticity_changed) {
+ return;
+ }
+
update_rgb_to_xyz ();
changed ();
}
void set_spin_ctrl (wxSpinCtrlDouble *, double);
std::map<wxSpinCtrlDouble*, double> _last_spin_ctrl_value;
+ bool _ignore_chromaticity_changed;
wxSpinCtrlDouble* _input_gamma;
wxSpinCtrlDouble* _input_power;