added message-widget setting, single/dbl click handler

This commit is contained in:
Basile Burg 2015-02-22 12:49:05 +01:00
parent e9926c8203
commit 701fd79d00
2 changed files with 29 additions and 3 deletions

View File

@ -37,7 +37,6 @@ inherited CEMessagesWidget: TCEMessagesWidget
ShowLines = False ShowLines = False
ShowRoot = False ShowRoot = False
TabOrder = 0 TabOrder = 0
OnDblClick = ListDblClick
OnKeyDown = ListKeyDown OnKeyDown = ListKeyDown
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoToolTips, tvoThemedDraw] Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoToolTips, tvoThemedDraw]
end end
@ -63,6 +62,7 @@ inherited CEMessagesWidget: TCEMessagesWidget
end end
object ToolButton2: TToolButton object ToolButton2: TToolButton
Left = 133 Left = 133
Height = 24
Top = 2 Top = 2
Width = 5 Width = 5
Caption = 'ToolButton2' Caption = 'ToolButton2'
@ -76,6 +76,7 @@ inherited CEMessagesWidget: TCEMessagesWidget
end end
object ToolButton4: TToolButton object ToolButton4: TToolButton
Left = 238 Left = 238
Height = 24
Top = 2 Top = 2
Width = 5 Width = 5
Caption = 'ToolButton4' Caption = 'ToolButton4'
@ -89,6 +90,7 @@ inherited CEMessagesWidget: TCEMessagesWidget
end end
object ToolButton8: TToolButton object ToolButton8: TToolButton
Left = 343 Left = 343
Height = 24
Top = 2 Top = 2
Width = 5 Width = 5
Caption = 'ToolButton8' Caption = 'ToolButton8'
@ -102,6 +104,7 @@ inherited CEMessagesWidget: TCEMessagesWidget
end end
object ToolButton10: TToolButton object ToolButton10: TToolButton
Left = 448 Left = 448
Height = 24
Top = 2 Top = 2
Width = 5 Width = 5
Caption = 'ToolButton10' Caption = 'ToolButton10'
@ -158,6 +161,7 @@ inherited CEMessagesWidget: TCEMessagesWidget
end end
object ToolButton1: TToolButton object ToolButton1: TToolButton
Left = 28 Left = 28
Height = 24
Top = 2 Top = 2
Width = 5 Width = 5
Caption = 'ToolButton1' Caption = 'ToolButton1'

View File

@ -24,11 +24,13 @@ type
private private
fMaxCount: Integer; fMaxCount: Integer;
fAutoSelect: boolean; fAutoSelect: boolean;
fSingleClick: boolean;
fFont: TFont; fFont: TFont;
procedure setFont(aValue: TFont); procedure setFont(aValue: TFont);
published published
property maxMessageCount: integer read fMaxCount write fMaxCount; property maxMessageCount: integer read fMaxCount write fMaxCount;
property autoSelect: boolean read fAutoSelect write fAutoSelect; property autoSelect: boolean read fAutoSelect write fAutoSelect;
property singleMessageClick: boolean read fSingleClick write fSingleClick;
property font: TFont read fFont write setFont; property font: TFont read fFont write setFont;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
@ -52,7 +54,6 @@ type
btnSelProj: TToolButton; btnSelProj: TToolButton;
ToolButton8: TToolButton; ToolButton8: TToolButton;
btnSelApp: TToolButton; btnSelApp: TToolButton;
procedure ListDblClick(Sender: TObject);
procedure ListKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ListKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private private
fActAutoSel: TAction; fActAutoSel: TAction;
@ -66,6 +67,7 @@ type
fDoc: TCESynMemo; fDoc: TCESynMemo;
fCtxt: TCEAppMessageCtxt; fCtxt: TCEAppMessageCtxt;
fAutoSelect: boolean; fAutoSelect: boolean;
fSingleClick: boolean;
fOptions: TCEMessagesOptions; fOptions: TCEMessagesOptions;
fOptionsBackup: TCEMessagesOptions; fOptionsBackup: TCEMessagesOptions;
fBtns: array[TCEAppMessageCtxt] of TToolButton; fBtns: array[TCEAppMessageCtxt] of TToolButton;
@ -79,9 +81,11 @@ type
procedure actSelAllExecute(Sender: TObject); procedure actSelAllExecute(Sender: TObject);
procedure setMaxMessageCount(aValue: Integer); procedure setMaxMessageCount(aValue: Integer);
procedure setAutoSelectCategory(aValue: boolean); procedure setAutoSelectCategory(aValue: boolean);
procedure setSingleMessageClick(aValue: boolean);
procedure listDeletion(Sender: TObject; Node: TTreeNode); procedure listDeletion(Sender: TObject; Node: TTreeNode);
procedure selCtxtClick(Sender: TObject); procedure selCtxtClick(Sender: TObject);
function iconIndex(aKind: TCEAppMessageKind): Integer; function iconIndex(aKind: TCEAppMessageKind): Integer;
procedure handleMessageClick(Sender: TObject);
// //
procedure projNew(aProject: TCEProject); procedure projNew(aProject: TCEProject);
procedure projClosing(aProject: TCEProject); procedure projClosing(aProject: TCEProject);
@ -111,6 +115,7 @@ type
// //
property maxMessageCount: Integer read fMaxMessCnt write setMaxMessageCount; property maxMessageCount: Integer read fMaxMessCnt write setMaxMessageCount;
property autoSelectCategory: boolean read fAutoSelect write setAutoSelectCategory; property autoSelectCategory: boolean read fAutoSelect write setAutoSelectCategory;
property singleMessageClick: boolean read fSingleClick write setSingleMessageClick;
public public
constructor create(aOwner: TComponent); override; constructor create(aOwner: TComponent); override;
destructor destroy; override; destructor destroy; override;
@ -158,6 +163,7 @@ begin
fFont.Assign(opts.font); fFont.Assign(opts.font);
fMaxCount := opts.fMaxCount; fMaxCount := opts.fMaxCount;
fAutoSelect := opts.fAutoSelect; fAutoSelect := opts.fAutoSelect;
fSingleClick := opts.fSingleClick;
fFont.EndUpdate; fFont.EndUpdate;
end end
else if Source is TCEMessagesWidget then else if Source is TCEMessagesWidget then
@ -166,6 +172,7 @@ begin
fFont.Assign(widg.List.Font); fFont.Assign(widg.List.Font);
fMaxCount := widg.fMaxMessCnt; fMaxCount := widg.fMaxMessCnt;
fAutoSelect := widg.fAutoSelect; fAutoSelect := widg.fAutoSelect;
fSingleClick := widg.fSingleClick;
end end
else inherited; else inherited;
end; end;
@ -180,6 +187,7 @@ begin
widg.List.Font.Assign(fFont); widg.List.Font.Assign(fFont);
widg.maxMessageCount := fMaxCount; widg.maxMessageCount := fMaxCount;
widg.autoSelectCategory := fAutoSelect; widg.autoSelectCategory := fAutoSelect;
widg.singleMessageClick := fSingleClick;
end end
else inherited; else inherited;
end; end;
@ -317,6 +325,20 @@ begin
fAutoSelect := aValue; fAutoSelect := aValue;
fActAutoSel.Checked:= fAutoSelect; fActAutoSel.Checked:= fAutoSelect;
end; end;
procedure TCEMessagesWidget.setSingleMessageClick(aValue: boolean);
begin
fSingleClick := aValue;
if fSingleClick then
begin
List.OnClick := @handleMessageClick;
List.OnDblClick:= nil;
end else begin
List.OnClick := nil;
List.OnDblClick:= @handleMessageClick;
end;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEEditableOptions ----------------------------------------------------} {$REGION ICEEditableOptions ----------------------------------------------------}
@ -588,7 +610,7 @@ begin
List.BottomItem.MakeVisible; List.BottomItem.MakeVisible;
end; end;
procedure TCEMessagesWidget.ListDblClick(Sender: TObject); procedure TCEMessagesWidget.handleMessageClick(Sender: TObject);
var var
pos: TPoint; pos: TPoint;
msg: string; msg: string;