1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
//---------------------------------------------------------------------------
/*static*/ void TComboChannelManager::DrawComboChannel(TComboBox *ACombo, TIdentObjChannel* AChannel, TRect &Rect, TOwnerDrawState State, ISygalDVRDahuaBulkCamerasConfigurationManager* ABulk/* = NULL*/)
{
if (ACombo && AChannel)
{
TCanvas *ComboCanvas = ACombo->Canvas;
// Choix de la couleur de fond selon sélection
ComboCanvas->Brush->Color = State.Contains(odSelected) ? clHighlight : ACombo->Color;
ComboCanvas->Pen->Color = ComboCanvas->Brush->Color;
// Dessin du fond
ComboCanvas->Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
// Texte
ComboCanvas->TextOut(Rect.Left + 2, Rect.Top + 1, AChannel->Ident);
// Vérifie l'état du canal
if (ABulk)
AChannel->Reserved = ABulk->BulkChannelReservation[AChannel->FriendlyChannel];
// Choix de la couleur indiquant l'affectation d'un canal
ComboCanvas->Brush->Color = AChannel->Selected ? clSkyBlue : AChannel->Affected ? clWebLightCoral : AChannel->Reserved ? clWebLavenderBlush : clMoneyGreen;
ComboCanvas->Pen->Color = ComboCanvas->Brush->Color;
// Dessin du pseudo icone d'indication d'état
int l = Rect.Left + ComboCanvas->TextWidth(AChannel->Ident) + 4 + 2;
ComboCanvas->Rectangle(l , Rect.Top + 4, l + 8, Rect.Top + 4 + 8);
}
} |
Partager