mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-21 05:17:43 +00:00
* Keyman for Windows 10.0 Open Source * Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2 git-subtree-dir: windows/src/ext/jedi/jedi git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24 * Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd git-subtree-dir: windows/src/ext/jedi/jcl git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243 * Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4 git-subtree-dir: windows/src/ext/jedi/jvcl git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3 * Add required .res files * Add required .res files * Add docbook files (forced) * Add required libxslt * Add required jedi files * Add installation files * Tweak .gitignore for open * CI * Remove KMW from Developer source (#122) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Fixup release build and copy license, readme from kmw during build * Remove obsolete build help documentation * Keyman Engine 10 on Windows regression for shift states (#129) * Improve #128 -- cleaner debug messages * Fixes #127, shift state now resets correctly; and more work for #128 * Fixes #130 (#131)
96 lines
2.3 KiB
ObjectPascal
96 lines
2.3 KiB
ObjectPascal
(*
|
|
Name: KeymanDeveloperDebuggerMemo
|
|
Copyright: Copyright (C) 2003-2017 SIL International.
|
|
Documentation:
|
|
Description:
|
|
Create Date: 8 Jun 2012
|
|
|
|
Modified Date: 8 Jun 2012
|
|
Authors: mcdurdin
|
|
Related Files:
|
|
Dependencies:
|
|
|
|
Bugs:
|
|
Todo:
|
|
Notes:
|
|
History: 08 Jun 2012 - mcdurdin - I3323 - V9.0 - Extract debug-related code TPlus-Memo into subclass
|
|
*)
|
|
unit KeymanDeveloperDebuggerMemo; // I3323
|
|
|
|
interface
|
|
|
|
uses
|
|
System.Classes,
|
|
Winapi.Messages,
|
|
Winapi.Windows,
|
|
KeymanDeveloperMemo
|
|
{$IFDEF USE_PLUSMEMO}
|
|
,
|
|
PlusMemo,
|
|
PMSupport
|
|
{$ENDIF}
|
|
;
|
|
|
|
type
|
|
TPlusMemoDebuggerMessageEvent = procedure(Sender: TObject; var Message: TMessage; var Handled: Boolean) of object;
|
|
|
|
TKeymanDeveloperDebuggerMemo = class(TKeymanDeveloperMemo)
|
|
private
|
|
FOnMessage: TPlusMemoDebuggerMessageEvent;
|
|
FAllowUnicodeInput: Boolean;
|
|
procedure SetAllowUnicode(const Value: Boolean);
|
|
protected
|
|
procedure CreateHandle; override;
|
|
procedure WndProc(var Message: TMessage); override;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
published
|
|
property AllowUnicode: Boolean read FAllowUnicodeInput write SetAllowUnicode default True;
|
|
property OnMessage: TPlusMemoDebuggerMessageEvent read FOnMessage write FOnMessage;
|
|
end;
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
{ TPlusMemoDebugger }
|
|
|
|
constructor TKeymanDeveloperDebuggerMemo.Create(AOwner: TComponent);
|
|
begin
|
|
FAllowUnicodeInput := True;
|
|
inherited Create(AOwner);
|
|
end;
|
|
|
|
procedure TKeymanDeveloperDebuggerMemo.CreateHandle;
|
|
begin
|
|
inherited;
|
|
if FAllowUnicodeInput
|
|
then SetWindowLongW(Handle, GWL_WNDPROC, GetWindowLong(Handle, GWL_WNDPROC))
|
|
else SetWindowLongA(Handle, GWL_WNDPROC, GetWindowLong(Handle, GWL_WNDPROC));
|
|
end;
|
|
|
|
procedure TKeymanDeveloperDebuggerMemo.SetAllowUnicode(const Value: Boolean);
|
|
begin
|
|
if Value <> fAllowUnicodeInput then
|
|
begin
|
|
fAllowUnicodeInput := Value;
|
|
if HandleAllocated then RecreateWnd;
|
|
end;
|
|
end;
|
|
|
|
procedure TKeymanDeveloperDebuggerMemo.WndProc(var Message: TMessage);
|
|
var
|
|
b: Boolean;
|
|
begin
|
|
b := False;
|
|
if Assigned(FOnMessage) then
|
|
FOnMessage(Self, Message, b);
|
|
if not b then inherited WndProc(Message);
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterComponents('Keyman', [TKeymanDeveloperDebuggerMemo]);
|
|
end;
|
|
|
|
end.
|