void GERBER_LAYER_WIDGET::ReFill() { Freeze(); ClearLayerRows(); for( int layer = 0; layer < GERBER_DRAWLAYERS_COUNT; ++layer ) { wxString msg = GetImagesList()->GetDisplayName( layer ); bool visible = true; if( auto canvas = myframe->GetGalCanvas() ) { visible = canvas->GetView()->IsLayerVisible( GERBER_DRAW_LAYER( layer ) ); } else { visible = myframe->IsLayerVisible( layer ); } AppendLayerRow( LAYER_WIDGET::ROW( msg, layer, myframe->GetLayerColor( GERBER_DRAW_LAYER( layer ) ), wxEmptyString, visible, true ) ); } Thaw(); }
bool GERBVIEW_FRAME::Clear_DrawLayers( bool query ) { if( GetGerberLayout() == NULL ) return false; if( query && GetScreen()->IsModify() ) { if( !IsOK( this, _( "Current data will be lost?" ) ) ) return false; } if( auto canvas = GetGalCanvas() ) { canvas->GetView()->Clear(); } GetImagesList()->DeleteAllImages(); GetGerberLayout()->SetBoundingBox( EDA_RECT() ); SetActiveLayer( 0 ); ReFillLayerWidget(); syncLayerBox(); return true; }
void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event ) { int rowCount; int menuId = event.GetId(); bool visible = (menuId == ID_SHOW_ALL_LAYERS) ? true : false; long visibleLayers = 0; bool force_active_layer_visible; m_alwaysShowActiveLayer = ( menuId == ID_ALWAYS_SHOW_NO_LAYERS_BUT_ACTIVE ); force_active_layer_visible = ( menuId == ID_SHOW_NO_LAYERS_BUT_ACTIVE || menuId == ID_ALWAYS_SHOW_NO_LAYERS_BUT_ACTIVE ); switch( menuId ) { case ID_SHOW_ALL_LAYERS: case ID_SHOW_NO_LAYERS: case ID_ALWAYS_SHOW_NO_LAYERS_BUT_ACTIVE: case ID_SHOW_NO_LAYERS_BUT_ACTIVE: rowCount = GetLayerRowCount(); for( int row=0; row < rowCount; ++row ) { wxCheckBox* cb = (wxCheckBox*) getLayerComp( row, COLUMN_COLOR_LYR_CB ); int layer = getDecodedId( cb->GetId() ); bool loc_visible = visible; if( force_active_layer_visible && (layer == myframe->getActiveLayer() ) ) loc_visible = true; cb->SetValue( loc_visible ); if( loc_visible ) visibleLayers |= 1 << row; else visibleLayers &= ~( 1 << row ); } myframe->SetVisibleLayers( visibleLayers ); myframe->GetCanvas()->Refresh(); break; case ID_SORT_GBR_LAYERS: GetImagesList()->SortImagesByZOrder(); myframe->ReFillLayerWidget(); myframe->syncLayerBox( true ); myframe->GetCanvas()->Refresh(); break; } }
void GERBER_LAYER_WIDGET::ReFill() { Freeze(); ClearLayerRows(); for( int layer = 0; layer < GERBER_DRAWLAYERS_COUNT; ++layer ) { wxString msg = GetImagesList()->GetDisplayName( layer ); AppendLayerRow( LAYER_WIDGET::ROW( msg, layer, myframe->GetLayerColor( layer ), wxEmptyString, true ) ); } Thaw(); installRightLayerClickHandler(); }
void GERBVIEW_FRAME::Erase_Current_DrawLayer( bool query ) { int layer = GetActiveLayer(); wxString msg; msg.Printf( _( "Clear layer %d?" ), layer + 1 ); if( query && !IsOK( this, msg ) ) return; SetCurItem( NULL ); GetImagesList()->DeleteImage( layer ); ReFillLayerWidget(); syncLayerBox(); m_canvas->Refresh(); }
/* * Virtual Function useAlternateBitmap * return true if bitmaps shown in Render layer list * must be alternate bitmap (when a gerber image is loaded), or false to use "normal" bitmap */ bool GERBER_LAYER_WIDGET::useAlternateBitmap(int aRow) { return GetImagesList()->GetGbrImage( aRow ) != NULL; }