diff --git a/include/lib_table_grid.h b/include/lib_table_grid.h index 5cc77f69b8..22ab197254 100644 --- a/include/lib_table_grid.h +++ b/include/lib_table_grid.h @@ -24,15 +24,18 @@ #include +const wxColour COLOUR_ROW_ENABLED( 0, 0, 0 ); +const wxColour COLOUR_ROW_DISABLED( 100, 100, 100 ); + /// The library table grid column order is established by this sequence. enum COL_ORDER { + COL_ENABLED, COL_NICKNAME, COL_URI, COL_TYPE, COL_OPTIONS, COL_DESCR, - COL_ENABLED, COL_COUNT // keep as last }; @@ -180,12 +183,53 @@ public: case COL_TYPE: return _( "Plugin Type" ); case COL_OPTIONS: return _( "Options" ); case COL_DESCR: return _( "Description" ); - case COL_ENABLED: return _( "Enabled" ); + case COL_ENABLED: return _( "Active" ); default: return wxEmptyString; } } + /** + * Customize the appearance of LIB_TABLE_ROW entries + * - If not enabled, greyed out and italic + */ + virtual wxGridCellAttr* GetAttr( int aRow, int aCol, wxGridCellAttr::wxAttrKind aKind) override + { + auto* attr = wxGridTableBase::GetAttr( aRow, aCol, aKind ); + + if( aRow < (int) size() ) + { + if( !attr ) + { + attr = new wxGridCellAttr(); + } + + wxFont font; + + if( attr->HasFont() ) + { + font = attr->GetFont(); + } + + LIB_TABLE_ROW* r = at( (size_t) aRow ); + + if( r && r->GetIsEnabled() ) + { + font.SetStyle( wxFONTSTYLE_NORMAL ); + attr->SetTextColour( COLOUR_ROW_ENABLED ); + } + else + { + font.SetStyle( wxFONTSTYLE_ITALIC ); + attr->SetTextColour( COLOUR_ROW_DISABLED ); + } + + attr->SetFont( font ); + } + + return attr; + } + protected: virtual LIB_TABLE_ROW* at( size_t aIndex ) = 0;