Index: haiku/src/apps/mail/Header.cpp =================================================================== --- haiku/src/apps/mail/Header.cpp (revision 41262) +++ haiku/src/apps/mail/Header.cpp (working copy) @@ -390,6 +390,19 @@ } y += controlHeight; } + + if (fIncoming) { + --y; + r.Set(SEPARATOR_MARGIN, y, + windowRect.Width() - SEPARATOR_MARGIN, y + menuFieldHeight); + y += controlHeight; + fCc = new TTextControl(r, B_TRANSLATE("Cc:"), + NULL, fIncoming, false, B_FOLLOW_LEFT_RIGHT); + fCc->SetEnabled(false); + fCc->SetDivider(x - 12 - SEPARATOR_MARGIN); + fCc->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); + AddChild(fCc); + } --y; r.Set(SEPARATOR_MARGIN, y, @@ -708,8 +721,10 @@ if (fBcc != NULL) fBcc->SetEnabled(false); - if (fCc != NULL) + if (fCc != NULL) { fCc->SetEnabled(false); + fCc->SetText(mail->CC()); + } if (fAccount != NULL) fAccount->SetEnabled(false); @@ -719,6 +734,29 @@ fSubject->SetEnabled(false); fTo->SetEnabled(false); + + // show/hide CC field + bool haveText = false; + if (mail->CC() != NULL && strlen(mail->CC()) > 0) { + haveText = true; + } + bool isHidden = fCc->IsHidden(this); // hidden relative to parent + if (haveText && isHidden) { + float diff = fAccountTo->Frame().top - fTo->Frame().top; + fSubject->MoveBy(0, diff); + fDate->MoveBy(0, diff); + fDateLabel->MoveBy(0, diff); + fCc->Show(); + this->ResizeBy(0, diff); + } + else if (!haveText && !isHidden) { + float diff = fAccountTo->Frame().top - fTo->Frame().top; + fSubject->MoveBy(0, - diff); + fDate->MoveBy(0, - diff); + fDateLabel->MoveBy(0, - diff); + fCc->Hide(); + this->ResizeBy(0, - diff); + } } // Set Subject: & From: fields