--- qsampler/trunk/src/qsamplerChannelStrip.cpp 2007/11/23 09:32:06 1513 +++ qsampler/trunk/src/qsamplerChannelStrip.cpp 2007/11/23 10:51:37 1514 @@ -34,8 +34,6 @@ // Needed for lroundf() #include -namespace QSampler { - #ifndef CONFIG_ROUND static inline long lroundf ( float x ) { @@ -46,6 +44,13 @@ } #endif + +namespace QSampler { + +// Channel strip activation/selection. +ChannelStrip *ChannelStrip::g_pSelectedStrip = NULL; + + ChannelStrip::ChannelStrip ( QWidget* pParent, Qt::WindowFlags wflags ) : QWidget(pParent, wflags) { @@ -58,6 +63,7 @@ // Try to restore normal window positioning. adjustSize(); + setSelected(false); QObject::connect(m_ui.ChannelSetupPushButton, SIGNAL(clicked()), @@ -503,6 +509,37 @@ m_iErrorCount = 0; } + +// Channel strip activation/selection. +void ChannelStrip::setSelected ( bool bSelected ) +{ + if (bSelected) { + if (g_pSelectedStrip == this) + return; + if (g_pSelectedStrip) + g_pSelectedStrip->setSelected(false); + g_pSelectedStrip = this; + } else { + if (g_pSelectedStrip == this) + g_pSelectedStrip = NULL; + } + + QPalette pal; + if (bSelected) { + const QColor& color = pal.midlight().color(); + pal.setColor(QPalette::Background, color.dark(150)); + pal.setColor(QPalette::Foreground, color.light(150)); + } + QWidget::setPalette(pal); +} + + +bool ChannelStrip::isSelected (void) const +{ + return (this == g_pSelectedStrip); +} + + } // namespace QSampler