void PenStyleComboBox::OnDrawBackground( wxDC& dc, const wxRect& rect, int item, int flags ) const { // If item is selected or even, or we are painting the // combo control itself, use the default rendering. if ( (flags & (wxODCB_PAINTING_CONTROL|wxODCB_PAINTING_SELECTED)) || (item & 1) == 0 ) { wxOwnerDrawnComboBox::OnDrawBackground(dc,rect,item,flags); return; } // Otherwise, draw every other background with different colour. wxColour bgCol(240,240,250); dc.SetBrush(wxBrush(bgCol)); dc.SetPen(wxPen(bgCol)); dc.DrawRectangle(rect); }
void MixerTrackPart::updateNameLabel() { Part* part = _mti->part(); Channel* chan = _mti->focusedChan(); trackLabel->setText(part->partName()); MidiPatch* mp = synti->getPatchInfo(chan->synti(), chan->bank(), chan->program()); QString tooltip = tr("Part Name: %1\n" "Primary Instrument: %2\n" "Bank: %3\n" "Program: %4\n" "Patch: %5") .arg(part->partName(), part->longName(), QString::number(chan->bank()), QString::number(chan->program()), mp ? mp->name : tr("~no patch~")); trackLabel->setToolTip(tooltip); QColor bgCol((QRgb)part->color()); QString colName = bgCol.name(); int val = bgCol.value(); QString ss = QString(".QLabel {" "border: 2px solid black;" "background: %1;" "color: %2;" "padding: 6px 0px;" "}").arg(colName, val > 128 ? "black" : "white"); trackLabel->setStyleSheet(ss); //Update component colors qreal h, s, v; bgCol.getHsvF(&h, &s, &v); QColor brightCol = QColor::fromHsvF(h, s, 1); panSlider->setScaleValueColor(brightCol); volumeSlider->setHilightColor(brightCol); }