richmemo: implementing Redo and CanRedo for Win32

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5844 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
skalogryz
2017-04-30 02:22:02 +00:00
parent a11167faac
commit d9a05ba0b9
3 changed files with 47 additions and 1 deletions

View File

@ -203,6 +203,7 @@ type
CurrentPage: Integer; var AbortPrint: Boolean); CurrentPage: Integer; var AbortPrint: Boolean);
procedure DoLinkAction(ALinkAction: TLinkAction; const AMouseInfo: TLinkMouseInfo; procedure DoLinkAction(ALinkAction: TLinkAction; const AMouseInfo: TLinkMouseInfo;
LinkStart, LinkEnd: Integer); LinkStart, LinkEnd: Integer);
function GetCanRedo: Boolean; virtual;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
@ -257,11 +258,14 @@ type
function CharAtPos(x, y: Integer): Integer; function CharAtPos(x, y: Integer): Integer;
procedure Redo; virtual;
property HideSelection : Boolean read fHideSelection write SetHideSelection; property HideSelection : Boolean read fHideSelection write SetHideSelection;
property OnSelectionChange: TNotifyEvent read fOnSelectionChange write fOnSelectionChange; property OnSelectionChange: TNotifyEvent read fOnSelectionChange write fOnSelectionChange;
property ZoomFactor: Double read GetZoomFactor write SetZoomFactor; property ZoomFactor: Double read GetZoomFactor write SetZoomFactor;
property OnPrintAction: TPrintActionEvent read fOnPrintAction write fOnPrintAction; property OnPrintAction: TPrintActionEvent read fOnPrintAction write fOnPrintAction;
property OnLinkAction: TLinkActionEvent read fOnLinkAction write fOnLinkAction; property OnLinkAction: TLinkActionEvent read fOnLinkAction write fOnLinkAction;
property CanRedo: Boolean read GetCanRedo;
end; end;
{ TRichMemo } { TRichMemo }
@ -1102,6 +1106,14 @@ begin
Result:=-1; Result:=-1;
end; end;
function TCustomRichMemo.GetCanRedo: Boolean;
begin
if HandleAllocated then
Result:=TWSCustomRichMemoClass(WidgetSetClass).GetCanRedo(Self)
else
Result:=false;
end;
function TCustomRichMemo.PrintMeasure(const params: TPrintParams; var est: TPrintMeasure): Boolean; function TCustomRichMemo.PrintMeasure(const params: TPrintParams; var est: TPrintMeasure): Boolean;
begin begin
if not Assigned(Printer) then begin if not Assigned(Printer) then begin
@ -1117,5 +1129,11 @@ begin
Result:=false; Result:=false;
end; end;
procedure TCustomRichMemo.Redo;
begin
if HandleAllocated then
TWSCustomRichMemoClass(WidgetSetClass).Redo(Self);
end;
end. end.

View File

@ -136,6 +136,9 @@ type
class function Print(const AWinControl: TWinControl; APrinter: TPrinter; class function Print(const AWinControl: TWinControl; APrinter: TPrinter;
const AParams: TPrintParams; DoPrint: Boolean): Integer; override; const AParams: TPrintParams; DoPrint: Boolean): Integer; override;
class procedure Redo(const AWinControl: TWinControl); override;
class function GetCanRedo(const AWinControl: TWinControl): Boolean; override;
end; end;
{ TWin32Inline } { TWin32Inline }
@ -531,7 +534,7 @@ begin
end; end;
class function TWin32WSCustomRichMemo.CanPasteFromClipboard( class function TWin32WSCustomRichMemo.CanPasteFromClipboard(
const AWinControl: TWinControl): Boolean; const AWinControl: TWinControl): boolean;
begin begin
Result:=Assigned(AWinControl) and (SendMessage(AWinControl.Handle, EM_CANPASTE, 0, 0)<>0); Result:=Assigned(AWinControl) and (SendMessage(AWinControl.Handle, EM_CANPASTE, 0, 0)<>0);
end; end;
@ -1437,6 +1440,17 @@ begin
end; end;
end; end;
class procedure TWin32WSCustomRichMemo.Redo(const AWinControl: TWinControl);
begin
SendMessage( AWinControl.Handle, EM_REDO, 0, 0);
end;
class function TWin32WSCustomRichMemo.GetCanRedo(const AWinControl: TWinControl
): Boolean;
begin
Result:=SendMessage( AWinControl.Handle, EM_CANREDO, 0, 0)<>0;
end;
// The function doesn't use Windows 7 (Vista?) animations. And should. // The function doesn't use Windows 7 (Vista?) animations. And should.
function ThemedNCPaint(AWindow: Windows.HANDLE; RichMemo: TCustomRichMemo; WParam: WParam; LParam: LParam; var Handled: Boolean): LResult; function ThemedNCPaint(AWindow: Windows.HANDLE; RichMemo: TCustomRichMemo; WParam: WParam; LParam: LParam; var Handled: Boolean): LResult;

View File

@ -115,6 +115,9 @@ type
AHandler: TRichMemoInline; wsObj: TRichMemoInlineWSObject); virtual; AHandler: TRichMemoInline; wsObj: TRichMemoInlineWSObject); virtual;
class function Print(const AWinControl: TWinControl; APrinter: TPrinter; const AParams: TPrintParams; DoPrint: Boolean): Integer; virtual; class function Print(const AWinControl: TWinControl; APrinter: TPrinter; const AParams: TPrintParams; DoPrint: Boolean): Integer; virtual;
class procedure Redo(const AWinControl: TWinControl); virtual;
class function GetCanRedo(const AWinControl: TWinControl): Boolean; virtual;
end; end;
TWSCustomRichMemoClass = class of TWSCustomRichMemo; TWSCustomRichMemoClass = class of TWSCustomRichMemo;
@ -406,5 +409,16 @@ begin
Result:=0; Result:=0;
end; end;
class procedure TWSCustomRichMemo.Redo(const AWinControl: TWinControl);
begin
end;
class function TWSCustomRichMemo.GetCanRedo(const AWinControl: TWinControl
): Boolean;
begin
Result:=false;
end;
end. end.