From ea9e588d42f75b6dff8077db913b11a69df8ce02 Mon Sep 17 00:00:00 2001 From: juha Date: Fri, 23 Sep 2011 08:30:48 +0000 Subject: [PATCH] =?UTF-8?q?LCL:=20add=20EnabledChanging=20and=20EnabledCha?= =?UTF-8?q?nged=20events=20for=20TControl.=20Issue=20#20300,=20patch=20fro?= =?UTF-8?q?m=20Silvio=20Cl=C3=A9cio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: trunk@32465 - --- lcl/controls.pp | 7 +++++++ lcl/include/control.inc | 31 +++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/lcl/controls.pp b/lcl/controls.pp index 1d7aaf949b..95109b46c1 100644 --- a/lcl/controls.pp +++ b/lcl/controls.pp @@ -874,6 +874,8 @@ type chtOnChangeBounds, chtOnVisibleChanging, chtOnVisibleChanged, + chtOnEnabledChanging, + chtOnEnabledChanged, chtOnKeyDown ); @@ -1230,6 +1232,8 @@ type function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; virtual; procedure VisibleChanging; virtual; procedure VisibleChanged; virtual; + procedure EnabledChanging; virtual; + procedure EnabledChanged; virtual; procedure AddHandler(HandlerType: TControlHandlerType; const AMethod: TMethod; AsFirst: boolean = false); procedure RemoveHandler(HandlerType: TControlHandlerType; @@ -1398,6 +1402,9 @@ type procedure AddHandlerOnVisibleChanged(const OnVisibleChangedEvent: TNotifyEvent; AsFirst: boolean = false); procedure RemoveHandlerOnVisibleChanged(const OnVisibleChangedEvent: TNotifyEvent); + procedure AddHandlerOnEnabledChanged(const OnEnabledChangedEvent: TNotifyEvent; + AsFirst: boolean = false); + procedure RemoveHandlerOnEnableChanging(const OnEnableChangingEvent: TNotifyEvent); procedure AddHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent; AsFirst: boolean = false); procedure RemoveHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent); diff --git a/lcl/include/control.inc b/lcl/include/control.inc index 32fa34eb76..305a993892 100644 --- a/lcl/include/control.inc +++ b/lcl/include/control.inc @@ -1387,11 +1387,24 @@ end; procedure TControl.VisibleChanged; begin -{ TODO -cdocking : For docked controls, the docking manager must receive a notification! - } +{ TODO -cdocking : For docked controls, the docking manager must receive a notification! } DoCallNotifyHandler(chtOnVisibleChanged); end; +{------------------------------------------------------------------------------ + procedure TControl.EnabledChanging; +------------------------------------------------------------------------------} +procedure TControl.EnabledChanging; +begin + DoCallNotifyHandler(chtOnEnabledChanging); +end; + +procedure TControl.EnabledChanged; +begin +{ TODO -cdocking : For docked controls, the docking manager must receive a notification! } + DoCallNotifyHandler(chtOnEnabledChanged); +end; + procedure TControl.AddHandler(HandlerType: TControlHandlerType; const AMethod: TMethod; AsFirst: boolean); begin @@ -2662,8 +2675,10 @@ procedure TControl.SetEnabled(Value: Boolean); begin if FEnabled <> Value then begin + EnabledChanging; FEnabled := Value; Perform(CM_ENABLEDCHANGED, 0, 0); + EnabledChanged; end; end; @@ -4098,6 +4113,18 @@ begin RemoveHandler(chtOnVisibleChanged,TMethod(OnVisibleChangedEvent)); end; +procedure TControl.AddHandlerOnEnabledChanged( + const OnEnabledChangedEvent: TNotifyEvent; AsFirst: boolean); +begin + AddHandler(chtOnEnabledChanged,TMethod(OnEnabledChangedEvent),AsFirst); +end; + +procedure TControl.RemoveHandlerOnEnableChanging( + const OnEnableChangingEvent: TNotifyEvent); +begin + RemoveHandler(chtOnEnabledChanged,TMethod(OnEnableChangingEvent)); +end; + procedure TControl.AddHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent; AsFirst: boolean); begin