From c91e8e47f8c99263b1bcd9865268dbf5ba1a33b3 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sun, 8 Mar 2015 14:23:02 +0100 Subject: [PATCH] renamed widget updater identifiers byevent->imperative --- src/ce_editor.pas | 40 ++++++++++----------- src/ce_projconf.pas | 30 ++++++++-------- src/ce_search.pas | 18 +++++----- src/ce_symlist.pas | 19 +++++----- src/ce_widget.pas | 84 ++++++++++++++++++++++++++------------------- 5 files changed, 101 insertions(+), 90 deletions(-) diff --git a/src/ce_editor.pas b/src/ce_editor.pas index 747a76ea..7ef5b450 100644 --- a/src/ce_editor.pas +++ b/src/ce_editor.pas @@ -29,8 +29,8 @@ type procedure completionExecute(Sender: TObject); procedure PageControlChange(Sender: TObject); protected - procedure UpdateByDelay; override; - procedure UpdateByEvent; override; + procedure updateDelayed; override; + procedure updateImperative; override; private fKeyChanged: boolean; fDoc: TCESynMemo; @@ -167,8 +167,8 @@ begin fDoc := aDoc; pageControl.ActivePage := sheet; focusedEditorChanged; - beginUpdateByDelay; - UpdateByEvent; + beginDelayedUpdate; + updateImperative; end; procedure TCEEditorWidget.docClosing(aDoc: TCESynMemo); @@ -180,7 +180,7 @@ begin fDoc.Parent := nil; fDoc := nil; if sheet <> nil then sheet.Free; - UpdateByEvent; + updateImperative; end; procedure TCEEditorWidget.docFocused(aDoc: TCESynMemo); @@ -188,16 +188,16 @@ begin if aDoc = fDoc then exit; fDoc := aDoc; focusedEditorChanged; - beginUpdateByDelay; - UpdateByEvent; + beginDelayedUpdate; + updateImperative; end; procedure TCEEditorWidget.docChanged(aDoc: TCESynMemo); begin if fDoc <> aDoc then exit; fKeyChanged := true; - beginUpdateByDelay; - UpdateByEvent; + beginDelayedUpdate; + updateImperative; end; {$ENDREGION} @@ -300,13 +300,13 @@ begin if (pageControl.ActivePage.Caption = '') then begin fKeyChanged := true; - beginUpdateByDelay; + beginDelayedUpdate; end; end; procedure TCEEditorWidget.PageControlChange(Sender: TObject); begin - UpdateByEvent; + updateImperative; end; procedure TCEEditorWidget.completionExecute(Sender: TObject); @@ -325,12 +325,12 @@ end; procedure TCEEditorWidget.memoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin - UpdateByEvent; + updateImperative; case Byte(Key) of VK_CLEAR,VK_RETURN,VK_BACK : fKeyChanged := true; end; if fKeyChanged then - beginUpdateByDelay; + beginDelayedUpdate; // if (Key = VK_UP) and (shift = [ssShift,ssCtrl]) then getSymbolLoc; @@ -339,19 +339,19 @@ end; procedure TCEEditorWidget.memoKeyPress(Sender: TObject; var Key: char); begin fKeyChanged := true; - beginUpdateByDelay; + beginDelayedUpdate; end; procedure TCEEditorWidget.memoMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin - beginUpdateByDelay; - UpdateByEvent; + beginDelayedUpdate; + updateImperative; end; procedure TCEEditorWidget.memoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if not (ssLeft in Shift) then exit; - beginUpdateByDelay; + beginDelayedUpdate; end; procedure TCEEditorWidget.memoCtrlClick(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); @@ -402,7 +402,7 @@ begin DcdWrapper.getComplAtCursor(completion.ItemList); end; -procedure TCEEditorWidget.UpdateByEvent; +procedure TCEEditorWidget.updateImperative; const modstr: array[boolean] of string = ('...', 'MODIFIED'); begin @@ -429,12 +429,12 @@ begin end; end; -procedure TCEEditorWidget.UpdateByDelay; +procedure TCEEditorWidget.updateDelayed; var md: string; begin if fDoc = nil then exit; - UpdateByEvent; + updateImperative; if not fKeyChanged then exit; // fKeyChanged := false; diff --git a/src/ce_projconf.pas b/src/ce_projconf.pas index 9d2b1065..321f2361 100644 --- a/src/ce_projconf.pas +++ b/src/ce_projconf.pas @@ -47,7 +47,7 @@ type procedure projFocused(aProject: TCEProject); procedure projCompiling(aProject: TCEProject); protected - procedure UpdateByEvent; override; + procedure updateImperative; override; procedure SetVisible(Value: boolean); override; public constructor create(aOwner: TComponent); override; @@ -92,7 +92,7 @@ end; procedure TCEProjectConfigurationWidget.SetVisible(Value: boolean); begin inherited; - if Visible then UpdateByEvent; + if Visible then updateImperative; end; {$ENDREGION --------------------------------------------------------------------} @@ -100,9 +100,9 @@ end; {$REGION ICEProjectObserver ----------------------------------------------------} procedure TCEProjectConfigurationWidget.projNew(aProject: TCEProject); begin - beginUpdateByEvent; + beginImperativeUpdate; fProj := aProject; - if Visible then UpdateByEvent; + if Visible then updateImperative; syncroMode := false; end; @@ -121,13 +121,13 @@ procedure TCEProjectConfigurationWidget.projChanged(aProject: TCEProject); begin if fProj <> aProject then exit; fProj := aProject; - if Visible then UpdateByEvent; + if Visible then updateImperative; end; procedure TCEProjectConfigurationWidget.projFocused(aProject: TCEProject); begin fProj := aProject; - if Visible then UpdateByEvent; + if Visible then updateImperative; end; procedure TCEProjectConfigurationWidget.projCompiling(aProject: TCEProject); @@ -142,9 +142,9 @@ begin if Updating then exit; if selConf.ItemIndex = -1 then exit; // - beginUpdateByEvent; + beginImperativeUpdate; fProj.ConfigurationIndex := selConf.ItemIndex; - endUpdateByEvent; + endImperativeUpdate; end; procedure TCEProjectConfigurationWidget.TreeChange(Sender: TObject; @@ -261,12 +261,12 @@ begin if fProj = nil then exit; // nme := ''; - beginUpdateByEvent; + beginImperativeUpdate; cfg := fProj.addConfiguration; // note: Cancel is actually related to the conf. name not to the add operation. if InputQuery('Configuration name', '', nme) then cfg.name := nme; fProj.ConfigurationIndex := cfg.Index; - endUpdateByEvent; + endImperativeUpdate; end; procedure TCEProjectConfigurationWidget.btnDelConfClick(Sender: TObject); @@ -274,13 +274,13 @@ begin if fProj = nil then exit; if fProj.OptionsCollection.Count = 1 then exit; // - beginUpdateByEvent; + beginImperativeUpdate; inspector.TIObject := nil; inspector.Clear; Invalidate; fProj.OptionsCollection.Delete(selConf.ItemIndex); fProj.ConfigurationIndex := 0; - endUpdateByEvent; + endImperativeUpdate; end; procedure TCEProjectConfigurationWidget.btnCloneCurrClick(Sender: TObject); @@ -291,13 +291,13 @@ begin if fProj = nil then exit; // nme := ''; - beginUpdateByEvent; + beginImperativeUpdate; src := fProj.currentConfiguration; trg := fProj.addConfiguration; trg.assign(src); if InputQuery('Configuration name', '', nme) then trg.name := nme; fProj.ConfigurationIndex := trg.Index; - endUpdateByEvent; + endImperativeUpdate; end; procedure TCEProjectConfigurationWidget.btnSyncEditClick(Sender: TObject); @@ -365,7 +365,7 @@ begin end; end; -procedure TCEProjectConfigurationWidget.UpdateByEvent; +procedure TCEProjectConfigurationWidget.updateImperative; var i: NativeInt; begin diff --git a/src/ce_search.pas b/src/ce_search.pas index 78f2efdc..402a25a9 100644 --- a/src/ce_search.pas +++ b/src/ce_search.pas @@ -51,7 +51,7 @@ type procedure replaceEvent(Sender: TObject; const ASearch, AReplace: string; Line, Column: integer; var ReplaceAction: TSynReplaceAction); protected - procedure UpdateByEvent; override; + procedure updateImperative; override; public constructor Create(aOwner: TComponent); override; destructor Destroy; override; @@ -221,7 +221,7 @@ begin fHasRestarted := false; chkFromCur.Checked := true; end; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.actReplaceNextExecute(sender: TObject); @@ -249,7 +249,7 @@ begin if fDoc.SearchReplace(fToFind, fReplaceWth, getOptions + [ssoReplace]) <> 0 then fHasSearched := true; fDoc.OnReplaceText := nil; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.actReplaceAllExecute(sender: TObject); @@ -275,7 +275,7 @@ begin end; end; fDoc.OnReplaceText := nil; - UpdateByEvent; + updateImperative; end; {$ENDREGION} @@ -283,20 +283,20 @@ end; procedure TCESearchWidget.docNew(aDoc: TCESynMemo); begin fDoc := aDoc; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.docClosing(aDoc: TCESynMemo); begin if fDoc = aDoc then fDoc := nil; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.docFocused(aDoc: TCESynMemo); begin if fDoc = aDoc then exit; fDoc := aDoc; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.docChanged(aDoc: TCESynMemo); @@ -315,7 +315,7 @@ end; procedure TCESearchWidget.chkEnableRepChange(Sender: TObject); begin if Updating then exit; - UpdateByEvent; + updateImperative; end; procedure TCESearchWidget.cbReplaceWthChange(Sender: TObject); @@ -325,7 +325,7 @@ begin fHasSearched := false; end; -procedure TCESearchWidget.UpdateByEvent; +procedure TCESearchWidget.updateImperative; begin fActFindNext.Enabled := fDoc <> nil; fActReplaceNext.Enabled := (fDoc <> nil) and (chkEnableRep.Checked); diff --git a/src/ce_symlist.pas b/src/ce_symlist.pas index 6e303201..f7c40881 100644 --- a/src/ce_symlist.pas +++ b/src/ce_symlist.pas @@ -102,8 +102,7 @@ type procedure btnRefreshClick(Sender: TObject); procedure TreeDeletion(Sender: TObject; Node: TTreeNode); procedure TreeFilterEdit1AfterFilter(Sender: TObject); - function TreeFilterEdit1FilterItem(Item: TObject; out Done: Boolean - ): Boolean; + function TreeFilterEdit1FilterItem(Item: TObject; out Done: Boolean): Boolean; procedure TreeFilterEdit1MouseEnter(Sender: TObject); procedure TreeKeyPress(Sender: TObject; var Key: char); private @@ -149,7 +148,7 @@ type function optionedWantContainer: TPersistent; procedure optionedEvent(anEvent: TOptionEditorEvent); protected - procedure UpdateByDelay; override; + procedure updateDelayed; override; // function contextName: string; override; function contextActionCount: integer; override; @@ -411,17 +410,17 @@ end; procedure TCESymbolListWidget.actAutoRefreshExecute(Sender: TObject); begin - autoRefresh := not autoRefresh; + autoRefresh := fActAutoRefresh.Checked; end; procedure TCESymbolListWidget.actRefreshOnChangeExecute(Sender: TObject); begin - refreshOnChange := not refreshOnChange; + refreshOnChange := fActRefreshOnChange.Checked; end; procedure TCESymbolListWidget.actRefreshOnFocusExecute(Sender: TObject); begin - refreshOnFocus := not refreshOnFocus; + refreshOnFocus := fActRefreshOnFocus.Checked; end; procedure TCESymbolListWidget.actCopyIdentExecute(Sender: TObject); @@ -460,7 +459,7 @@ end; procedure TCESymbolListWidget.docNew(aDoc: TCESynMemo); begin fDoc := aDoc; - beginUpdateByDelay; + beginDelayedUpdate; end; procedure TCESymbolListWidget.docClosing(aDoc: TCESynMemo); @@ -477,7 +476,7 @@ begin fDoc := aDoc; if not Visible then exit; // - if fAutoRefresh then beginUpdateByDelay + if fAutoRefresh then beginDelayedUpdate else if fRefreshOnFocus then callToolProc; end; @@ -486,13 +485,13 @@ begin if fDoc <> aDoc then exit; if not Visible then exit; // - if fAutoRefresh then beginUpdateByDelay + if fAutoRefresh then beginDelayedUpdate else if fRefreshOnChange then callToolProc; end; {$ENDREGION} {$REGION Symbol-tree things ----------------------------------------------------} -procedure TCESymbolListWidget.UpdateByDelay; +procedure TCESymbolListWidget.updateDelayed; begin if not fAutoRefresh then exit; callToolProc; diff --git a/src/ce_widget.pas b/src/ce_widget.pas index 9c03deeb..731920b5 100644 --- a/src/ce_widget.pas +++ b/src/ce_widget.pas @@ -24,7 +24,8 @@ type fLoopInter: Integer; fUpdaterAuto: TTimer; fUpdaterDelay: TTimer; - fWidgUpdateCount: NativeInt; + fImperativeUpdateCount: Integer; + fLoopUpdateCount: Integer; procedure setDelayDur(aValue: Integer); procedure setLoopInt(aValue: Integer); procedure updaterAutoProc(Sender: TObject); @@ -39,11 +40,11 @@ type fModal: boolean; fID: string; // a descendant overrides to implementi a periodic update. - procedure UpdateByLoop; virtual; - // a descendant overrides to implement an event driven update. - procedure UpdateByEvent; virtual; - // a descendant overrides to implement a delayed update event. - procedure UpdateByDelay; virtual; + procedure updateLoop; virtual; + // a descendant overrides to implement an imperative update. + procedure updateImperative; virtual; + // a descendant overrides to implement a delayed update. + procedure updateDelayed; virtual; // function contextName: string; virtual; function contextActionCount: integer; virtual; @@ -63,19 +64,23 @@ type // restarts the wait period to the delayed update event. // if not re-called during 'updaterByDelayDuration' ms then // 'UpdateByDelay' is called once. - procedure beginUpdateByDelay; + procedure beginDelayedUpdate; // prevent any pending update. - procedure stopUpdateByDelay; - // immediate call any pending update. - procedure endUpdatebyDelay; - // increments the updates count. - procedure beginUpdateByEvent; - // decrements the update count and call 'UpdateByEvent' if the - // counter value is null. - procedure endUpdateByEvent; - // immediate call 'UpdateByEvent' - procedure forceUpdateByEvent; - // + procedure stopDelayedUpdate; + // immediate call any pending delayed update. + procedure forceDelayedUpdate; + + // increments the imperative updates count. + procedure beginImperativeUpdate; + // decrements the imperative updates count and call updateImperative() if the + // counter value is equal to zero. + procedure endImperativeUpdate; + // calls updateImperative() immediatly + procedure forceImperativeUpdate; + + // increment a flag used to indicate if updateLoop has to be called + procedure IncLoopUpdate; + // returns true if one of the three updater is processing. property updating: boolean read fUpdating; // true by default, allow a widget to be docked. @@ -223,42 +228,47 @@ begin fUpdaterAuto.Interval := fLoopInter; end; -procedure TCEWidget.beginUpdateByEvent; +procedure TCEWidget.IncLoopUpdate; begin - Inc(fWidgUpdateCount); + inc(fLoopUpdateCount); end; -procedure TCEWidget.endUpdateByEvent; +procedure TCEWidget.beginImperativeUpdate; begin - Dec(fWidgUpdateCount); - if fWidgUpdateCount > 0 then exit; + Inc(fImperativeUpdateCount); +end; + +procedure TCEWidget.endImperativeUpdate; +begin + Dec(fImperativeUpdateCount); + if fImperativeUpdateCount > 0 then exit; fUpdating := true; - UpdateByEvent; + updateImperative; fUpdating := false; - fWidgUpdateCount := 0; + fImperativeUpdateCount := 0; end; -procedure TCEWidget.forceUpdateByEvent; +procedure TCEWidget.forceImperativeUpdate; begin fUpdating := true; - UpdateByEvent; + updateImperative; fUpdating := false; - fWidgUpdateCount := 0; + fImperativeUpdateCount := 0; end; -procedure TCEWidget.beginUpdateByDelay; +procedure TCEWidget.beginDelayedUpdate; begin fUpdaterDelay.Enabled := false; fUpdaterDelay.Enabled := true; fUpdaterDelay.OnTimer := @updaterLatchProc; end; -procedure TCEWidget.stopUpdateByDelay; +procedure TCEWidget.stopDelayedUpdate; begin fUpdaterDelay.OnTimer := nil; end; -procedure TCEWidget.endUpdateByDelay; +procedure TCEWidget.forceDelayedUpdate; begin updaterLatchProc(nil); end; @@ -266,27 +276,29 @@ end; procedure TCEWidget.updaterAutoProc(Sender: TObject); begin fUpdating := true; - UpdateByLoop; + if fLoopUpdateCount > 0 then + updateLoop; + fLoopUpdateCount := 0; fUpdating := false; end; procedure TCEWidget.updaterLatchProc(Sender: TObject); begin fUpdating := true; - UpdateByDelay; + updateDelayed; fUpdating := false; fUpdaterDelay.OnTimer := nil; end; -procedure TCEWidget.UpdateByLoop; +procedure TCEWidget.updateLoop; begin end; -procedure TCEWidget.UpdateByEvent; +procedure TCEWidget.updateImperative; begin end; -procedure TCEWidget.UpdateByDelay; +procedure TCEWidget.updateDelayed; begin end; {$ENDREGION}