bool DIALOG_TARGET_PROPERTIES::TransferDataFromWindow() { // Zero-size targets are hard to see/select. if( !m_Size.Validate( Mils2iu( 1 ), INT_MAX ) ) return false; BOARD_COMMIT commit( m_Parent ); commit.Modify( m_Target ); if( m_DC ) m_Target->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); // Save old item in undo list, if is is not currently edited (will be later if so) bool pushCommit = ( m_Target->GetFlags() == 0 ); if( m_Target->GetFlags() != 0 ) // other edit in progress (MOVE, NEW ..) m_Target->SetFlags( IN_EDIT ); // set flag in edit to force // undo/redo/abort proper operation m_Target->SetWidth( m_Thickness.GetValue() ); m_Target->SetSize( m_Size.GetValue() ); m_Target->SetShape( m_TargetShape->GetSelection() ? 1 : 0 ); if( m_DC ) m_Target->Draw( m_Parent->GetCanvas(), m_DC, ( m_Target->IsMoving() ) ? GR_XOR : GR_OR ); if( pushCommit ) commit.Push( _( "Modified alignment target" ) ); return true; }
bool DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow() { m_settings.SetCornerSmoothingType( m_cornerSmoothingChoice->GetSelection() ); m_settings.SetCornerRadius( m_settings.GetCornerSmoothingType() == ZONE_SETTINGS::SMOOTHING_NONE ? 0 : m_cornerRadius.GetValue() ); if( !m_gridStyleRotation.Validate( -1800, 1800 ) ) return false; m_settings.m_ZoneMinThickness = m_minWidth.GetValue(); switch( m_OutlineAppearanceCtrl->GetSelection() ) { case 0: m_settings.m_Zone_HatchingStyle = ZONE_CONTAINER::NO_HATCH; break; case 1: m_settings.m_Zone_HatchingStyle = ZONE_CONTAINER::DIAGONAL_EDGE; break; case 2: m_settings.m_Zone_HatchingStyle = ZONE_CONTAINER::DIAGONAL_FULL; break; } if( m_GridStyleCtrl->GetSelection() > 0 ) m_settings.m_FillMode = ZFM_HATCH_PATTERN; else m_settings.m_FillMode = ZFM_POLYGONS; if( m_settings.m_FillMode == ZFM_HATCH_PATTERN ) { int minThickness = m_minWidth.GetValue(); if( !m_gridStyleThickness.Validate( minThickness, INT_MAX ) ) return false; if( !m_gridStyleGap.Validate( minThickness, INT_MAX ) ) return false; } m_settings.m_HatchFillTypeOrientation = m_gridStyleRotation.GetValue()/10.0; // value is returned in deci-degree m_settings.m_HatchFillTypeThickness = m_gridStyleThickness.GetValue(); m_settings.m_HatchFillTypeGap = m_gridStyleGap.GetValue(); m_settings.m_HatchFillTypeSmoothingLevel = m_spinCtrlSmoothLevel->GetValue(); m_settings.m_HatchFillTypeSmoothingValue = m_spinCtrlSmoothValue->GetValue(); wxConfigBase* cfg = Kiface().KifaceSettings(); wxASSERT( cfg ); cfg->Write( ZONE_NET_OUTLINES_STYLE_KEY, (long) m_settings.m_Zone_HatchingStyle ); m_settings.m_Zone_45_Only = m_ConstrainOpt->GetValue(); // Get the layer selection for this zone int layer = -1; for( int ii = 0; ii < m_layers->GetItemCount(); ++ii ) { if( m_layers->GetToggleValue( (unsigned) ii, 0 ) ) { layer = ii; break; } } if( layer < 0 ) { DisplayError( this, _( "No layer selected." ) ); return false; } *m_ptr = m_settings; return true; }