From 4e22c679d51e4e594d07377c404ed1f91abec770 Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 2 Mar 2015 18:42:01 +0000 Subject: [PATCH] IDE: Messages options: added text color git-svn-id: trunk@48098 - --- ide/environmentopts.pp | 10 +++++++--- ide/etmessageframe.pas | 29 +++++++++++++++++++++++------ ide/frames/msgwnd_options.lfm | 2 +- ide/frames/msgwnd_options.pas | 1 + 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/ide/environmentopts.pp b/ide/environmentopts.pp index d100983de6..04fdeacffa 100644 --- a/ide/environmentopts.pp +++ b/ide/environmentopts.pp @@ -194,7 +194,8 @@ type mwRunning, mwSuccess, mwFailed, - mwAutoHeader + mwAutoHeader, + mwTextColor ); const MsgWndDefBackgroundColor = clWindow; @@ -202,20 +203,23 @@ const MsgWndDefHeaderBackgroundSuccess = TColor($60FF60); // light green MsgWndDefHeaderBackgroundFailed = TColor($6060FF); // light red MsgWndDefAutoHeaderBackground = clSkyBlue; + MsgWndDefTextColor = clDefault; MsgWndDefaultColors: array[TMsgWndColor] of TColor = ( MsgWndDefBackgroundColor, // mwBackground MsgWndDefHeaderBackgroundRunning, // mwRunning MsgWndDefHeaderBackgroundSuccess, // mwSuccess MsgWndDefHeaderBackgroundFailed, // mwFailed - MsgWndDefAutoHeaderBackground // mwAutoHeader + MsgWndDefAutoHeaderBackground, // mwAutoHeader + MsgWndDefTextColor ); MsgWndColorNames: array[TMsgWndColor] of string = ( 'Background', 'Running', 'Success', 'Failed', - 'AutoHeader' + 'AutoHeader', + 'TextColor' ); { External Tools - the user menu items in the Tools menu } diff --git a/ide/etmessageframe.pas b/ide/etmessageframe.pas index fd433ae052..3cadd94406 100644 --- a/ide/etmessageframe.pas +++ b/ide/etmessageframe.pas @@ -154,6 +154,7 @@ type FSelectedLine: integer; FSelectedView: TLMsgWndView; FSourceMarks: TETMarks; + FTextColor: TColor; fUpdateLock: integer; FUpdateTimer: TTimer; fSomeViewsRunning: boolean; @@ -183,6 +184,7 @@ type procedure SetSelectedLine(AValue: integer); procedure SetSelectedView(AValue: TLMsgWndView); procedure SetSourceMarks(AValue: TETMarks); + procedure SetTextColor(AValue: TColor); procedure SetUrgencyStyles(Urgency: TMessageLineUrgency; AValue: TMsgCtrlUrgencyStyle); procedure SetAutoHeaderBackground(AValue: TColor); @@ -299,6 +301,7 @@ type property SelectedView: TLMsgWndView read FSelectedView write SetSelectedView; property ShowHint default true; property SourceMarks: TETMarks read FSourceMarks write SetSourceMarks; + property TextColor: TColor read FTextColor write SetTextColor default MsgWndDefTextColor; property UrgencyStyles[Urgency: TMessageLineUrgency]: TMsgCtrlUrgencyStyle read GetUrgencyStyles write SetUrgencyStyles; end; @@ -1233,6 +1236,13 @@ begin FreeNotification(SourceMarks); end; +procedure TMessagesCtrl.SetTextColor(AValue: TColor); +begin + if FTextColor=AValue then Exit; + FTextColor:=AValue; + Invalidate; +end; + procedure TMessagesCtrl.SetUrgencyStyles(Urgency: TMessageLineUrgency; AValue: TMsgCtrlUrgencyStyle); begin @@ -1511,6 +1521,7 @@ var IsSelected: Boolean; FirstLineIsNotSelectedMessage: Boolean; SecondLineIsNotSelectedMessage: Boolean; + col: TColor; begin if Focused then Include(FStates,mcsFocused) @@ -1546,7 +1557,7 @@ begin Canvas.Line(NodeRect.Left,NodeRect.Top,NodeRect.Right,NodeRect.Top); Canvas.Pen.Style:=psSolid; DrawText(NodeRect,GetHeaderText(View), - (fSelectedView=View) and (FSelectedLine=-1),clDefault); + (fSelectedView=View) and (FSelectedLine=-1),TextColor); Canvas.Brush.Color:=BackgroundColor; end; inc(y,ItemHeight); @@ -1578,8 +1589,10 @@ begin inc(NodeRect.Left,Images.Width+2); end; // message text - DrawText(NodeRect,GetLineText(Line),IsSelected, - UrgencyStyles[Line.Urgency].Color); + col:=TextColor; + if col=clDefault then + col:=UrgencyStyles[Line.Urgency].Color; + DrawText(NodeRect,GetLineText(Line),IsSelected,col); inc(y,ItemHeight); inc(j); end; @@ -1597,7 +1610,7 @@ begin NodeRect:=Rect(0,0,ClientWidth,ItemHeight); Canvas.Line(NodeRect.Left,NodeRect.Bottom,NodeRect.Right,NodeRect.Bottom); Canvas.Pen.Style:=psSolid; - DrawText(NodeRect,'...'+GetHeaderText(View),false,clDefault); + DrawText(NodeRect,'...'+GetHeaderText(View),false,TextColor); Canvas.Brush.Color:=BackgroundColor; end; inc(y,ItemHeight*(View.Lines.Count-j)); @@ -1607,9 +1620,11 @@ begin if (y+ItemHeight>0) and (y