anchor.diff:  
   procedure TCEMessagesWidget.setColorError(aValue: TColor);
   begin
  -  fMsgColors[amkErr] := aValue;
  +  fMsgColors[amkErr] := max(aValue, minColor);
     List.Invalidate;
   end;
   
   procedure TCEMessagesWidget.setColorInfo(aValue: TColor);
   begin
  -  fMsgColors[amkInf] := aValue;
  +  fMsgColors[amkInf] := max(aValue, minColor);
     List.Invalidate;
   end;
   
   procedure TCEMessagesWidget.setColorHint(aValue: TColor);
   begin
  -  fMsgColors[amkHint] := aValue;
  +  fMsgColors[amkHint] := max(aValue, minColor);
     List.Invalidate;
   end;
   
   procedure TCEMessagesWidget.setColorBuble(aValue: TColor);
   begin
  -  fMsgColors[amkBub] := aValue;
  +  fMsgColors[amkBub] := max(aValue, minColor);
     List.Invalidate;
   end;
   
  
positive.code: procedure TCEMessagesWidget.ListCustomDrawItem(Sender: TCustomTreeView;
    Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
  var
    rc: TRect;
    customdraw: Boolean;
  begin
    customdraw := fMsgColors[TCEAppMessageKind(node.ImageIndex + 1)] <> clDefault;
    if customdraw then
    begin
      rc := node.DisplayRect(false);
      Sender.Canvas.Brush.Color := fMsgColors[TCEAppMessageKind(node.ImageIndex + 1)];
      if node.Selected then
      begin
        Sender.Canvas.DrawFocusRect(rc);
        Sender.Canvas.Brush.Color := Sender.Canvas.Brush.Color - $232323;
      end;
      Sender.Canvas.FillRect(rc);
      Sender.Canvas.TextOut(rc.Left + 30, rc.Top, node.Text);
      list.Images.Draw(sender.Canvas, rc.Left + 1, (rc.Top + rc.Bottom - list.Images.Height) div 2,
        node.ImageIndex, Node.NodeEffect);
    end;
    DefaultDraw := not customdraw;
  end;
  {$ENDREGION}
  
  
negative.code:     function contextActionCount: integer; override;
      function contextAction(index: integer): TAction; override;
      //
      property maxMessageCount: Integer     read fMaxMessCnt  write setMaxMessageCount;
      property autoSelectCategory: boolean  read fAutoSelect  write setAutoSelectCategory;
      property singleMessageClick: boolean  read fSingleClick write setSingleMessageClick;
      //
      property colorBuble: TColor   read fMsgColors[amkBub]   write setColorBuble;
      property colorInfo: TColor    read fMsgColors[amkInf]   write setColorInfo;
      property colorHint: TColor    read fMsgColors[amkHint]  write setColorHint;
      property colorWarning: TColor read fMsgColors[amkWarn]  write setColorWarning;
      property colorError: TColor   read fMsgColors[amkErr]   write setColorError;
    public
      constructor create(aOwner: TComponent); override;
      destructor destroy; override;
    end;
  
    function guessMessageKind(const aMessg: string): TCEAppMessageKind;
  