Added more XML documentation.

This commit is contained in:
salvadordf 2023-09-26 12:20:22 +02:00
parent 69adbfb115
commit f44c9ebbeb
5 changed files with 223 additions and 2 deletions

Binary file not shown.

View File

@ -207,6 +207,8 @@ type
property Buffer : TBitmap read FBuffer;
/// <summary>
/// Copy of the raw main bitmap buffer sent by CEF in the TChromiumCore.OnPaint event.
/// OrigBuffer will be transferred to the bitmap buffer before copying the bitmap buffer
/// to the panel.
/// </summary>
property OrigBuffer : TCEFBitmapBitBuffer read FOrigBuffer;
/// <summary>
@ -254,17 +256,90 @@ type
published
{$IFDEF MSWINDOWS}
/// <summary>
/// Event triggered when a WM_IME_ENDCOMPOSITION message is received because
/// the IME ended composition.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/intl/wm-ime-endcomposition">See the WM_IME_ENDCOMPOSITION article.</see></para>
/// </remarks>
property OnIMECancelComposition : TNotifyEvent read FOnIMECancelComposition write FOnIMECancelComposition;
/// <summary>
/// Event triggered when a WM_IME_COMPOSITION message is received because
/// the IME changed composition status as a result of a keystroke. This
/// event is triggered after retrieving a composition result of the ongoing
/// composition if it exists.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/intl/wm-ime-composition">See the WM_IME_COMPOSITION article.</see></para>
/// </remarks>
property OnIMECommitText : TOnIMECommitTextEvent read FOnIMECommitText write FOnIMECommitText;
/// <summary>
/// Event triggered when a WM_IME_COMPOSITION message is received because
/// the IME changed composition status as a result of a keystroke.
/// This event is triggered after retrieving the current composition
/// status of the ongoing composition.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/intl/wm-ime-composition">See the WM_IME_COMPOSITION article.</see></para>
/// </remarks>
property OnIMESetComposition : TOnIMESetCompositionEvent read FOnIMESetComposition write FOnIMESetComposition;
/// <summary>
/// Event triggered when a WM_TOUCH message is received. It notifies the
/// window when one or more touch points, such as a finger or pen,
/// touches a touch-sensitive digitizer surface.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/wintouch/wm-touchdown">See the WM_TOUCH article.</see></para>
/// </remarks>
property OnCustomTouch : TOnHandledMessageEvent read FOnCustomTouch write FOnCustomTouch;
/// <summary>
/// Event triggered when a WM_POINTERDOWN message is received.
/// Posted when a pointer makes contact over the client area of a window.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/inputmsg/wm-pointerdown">See the WM_POINTERDOWN article.</see></para>
/// </remarks>
property OnPointerDown : TOnHandledMessageEvent read FOnPointerDown write FOnPointerDown;
/// <summary>
/// Event triggered when a WM_POINTERUP message is received.
/// Posted when a pointer that made contact over the client area of a window breaks contact.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/inputmsg/wm-pointerup">See the WM_POINTERUP article.</see></para>
/// </remarks>
property OnPointerUp : TOnHandledMessageEvent read FOnPointerUp write FOnPointerUp;
/// <summary>
/// Event triggered when a WM_POINTERUPDATE message is received.
/// Posted to provide an update on a pointer that made contact over the client area of a
/// window or on a hovering uncaptured pointer over the client area of a window.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/inputmsg/wm-pointerupdate">See the WM_POINTERUPDATE article.</see></para>
/// </remarks>
property OnPointerUpdate : TOnHandledMessageEvent read FOnPointerUpdate write FOnPointerUpdate;
{$ENDIF}
/// <summary>
/// Event triggered before the AlphaBlend call that transfer the web contents from the
/// bitmap buffer to the panel when the Transparent property is True.
/// </summary>
property OnPaintParentBkg : TNotifyEvent read FOnPaintParentBkg write FOnPaintParentBkg;
/// <summary>
/// Set Transparent to True to use a WS_EX_TRANSPARENT window style in the panel
/// and to call AlphaBlend in order to transfer the web contents from the bitmap
/// buffer to the panel.
/// If this property is False then BitBlt is used to transfer the web contents
/// from the bitmap buffer to the panel.
/// </summary>
property Transparent : boolean read FTransparent write SetTransparent default False;
/// <summary>
/// When CopyOriginalBuffer is True then OrigBuffer will be used internally to copy of
/// the raw main bitmap buffer sent by CEF in the TChromiumCore.OnPaint event.
/// OrigBuffer will be transferred to the bitmap buffer before copying the buffer to the panel.
/// This is necessary in GTK applications in order to avoid handling bitmaps in background
/// threads.
/// </summary>
property CopyOriginalBuffer : boolean read FCopyOriginalBuffer write FCopyOriginalBuffer default False;
property Align;

View File

@ -61,23 +61,76 @@ type
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure AfterConstruction; override;
/// <summary>
/// Save the visible web contents as a bitmap file.
/// </summary>
function SaveToFile(const aFilename : string) : boolean;
/// <summary>
/// Invalidate this panel.
/// </summary>
procedure InvalidatePanel;
/// <summary>
/// Acquires the synchronization object before drawing into the background bitmap.
/// </summary>
function BeginBufferDraw : boolean;
/// <summary>
/// Releases the synchronization object after drawing into the background bitmap.
/// </summary>
procedure EndBufferDraw;
/// <summary>
/// Draws a part of aBitmap into the background bitmap buffer at the specified rectangle.
/// </summary>
/// <param name="aBitmap">Bitmap that will be drawn into the background bitmap.</param>
/// <param name="aSrcRect">Rectangle that defines the area of aBitmap that will be drawn into the background bitmap.</param>
/// <param name="aDstRect">Rectangle that defines the area of the background bitmap where aBitmap will be drawn.</param>
procedure BufferDraw(const aBitmap : TBitmap; const aSrcRect, aDstRect : TRectF);
/// <summary>
/// Update the background bitmap size.
/// </summary>
function UpdateBufferDimensions(aWidth, aHeight : integer) : boolean;
/// <summary>
/// Check if the background image buffers have the same dimensions as this panel. Returns true if they have the same size.
/// </summary>
function BufferIsResized(aUseMutex : boolean = True) : boolean;
/// <summary>
/// Convert a point from the screen coordinate system to the client coordinate system.
/// </summary>
function ScreenToClient(aPoint : TPoint) : TPoint; overload;
/// <summary>
/// Convert a point from the screen coordinate system to the client coordinate system.
/// </summary>
function ScreenToClient(aPoint : TPointF) : TPointF; overload;
/// <summary>
/// Convert a point from the client coordinate system to the screen coordinate system.
/// </summary>
function ClientToScreen(aPoint : TPoint) : TPoint; overload;
/// <summary>
/// Convert a point from the client coordinate system to the screen coordinate system.
/// </summary>
function ClientToScreen(aPoint : TPointF) : TPointF; overload;
/// <summary>
/// Background bitmap.
/// </summary>
property Buffer : TBitmap read FBuffer;
/// <summary>
/// Returns the scanline size.
/// </summary>
property ScanlineSize : integer read FScanlineSize;
/// <summary>
/// Image width.
/// </summary>
property BufferWidth : integer read GetBufferWidth;
/// <summary>
/// Image height.
/// </summary>
property BufferHeight : integer read GetBufferHeight;
/// <summary>
/// Returns the screen scale.
/// </summary>
property ScreenScale : single read GetScreenScale;
/// <summary>
/// Screen scale value used instead of the real one.
/// </summary>
property ForcedDeviceScaleFactor : single read FForcedDeviceScaleFactor write FForcedDeviceScaleFactor;
published
@ -86,7 +139,13 @@ type
property Visible;
property Enabled;
property TabOrder;
/// <summary>
/// Color used to clear the panel canvas in the Paint method.
/// </summary>
property Color : TAlphaColor read FColor write FColor default claWhite;
/// <summary>
/// Set HighSpeedDrawing to True to draw the buffer to the canvas using a high speed interpolation mode.
/// </summary>
property HighSpeedDrawing : boolean read FHighSpeedDrawing write FHighSpeedDrawing default True;
{$IFDEF DELPHI17_UP}
@ -126,6 +185,9 @@ type
property OnMouseWheel;
property OnKeyUp;
property OnKeyDown;
/// <summary>
/// Event triggered before the DialogKey.
/// </summary>
property OnDialogKey : TDialogKeyEvent read FOnDialogKey write FOnDialogKey;
end;

View File

@ -36,6 +36,9 @@ type
{$ENDIF}
{$ENDIF}
/// <summary>
/// Class used to handle the IME window.
/// </summary>
TCEFOSRIMEHandler = class
protected
FHWND : HWND;
@ -65,25 +68,106 @@ type
destructor Destroy; override;
{$IFDEF MSWINDOWS}
/// <summary>
/// Sets InputLanguageID using the name of the active input locale identifier obtained from a GetKeyboardLayoutNameW call.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeyboardlayoutnamew">See the GetKeyboardLayoutNameW article.</see></para>
/// </remarks>
procedure SetInputLanguage;
{$ENDIF}
/// <summary>
/// Calls CreateCaret for some languages in order to creates a new shape
/// for the system caret and assigns ownership of the caret to the specified
/// window.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createcaret">See the CreateCaret article.</see></para>
/// </remarks>
procedure CreateImeWindow;
/// <summary>
/// Calls DestroyCaret for some languages in order to destroy the caret's
/// current shape, frees the caret from the window, and removes the caret
/// from the screen.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-destroycaret">See the DestroyCaret article.</see></para>
/// </remarks>
procedure DestroyImeWindow;
/// <summary>
/// Cleans up the all resources attached to the given IMM32Manager object, and
/// reset its composition status.
/// </summary>
/// <remarks>
/// <para><see href="https://learn.microsoft.com/en-us/windows/win32/api/imm/nf-imm-immnotifyime">See the ImmNotifyIME article.</see></para>
/// </remarks>
procedure CleanupComposition;
/// <summary>
/// Reset the composition status. Cancel the ongoing composition if it exists.
/// </summary>
procedure ResetComposition;
/// <summary>
/// Retrieve a composition result of the ongoing composition if it exists.
/// </summary>
function GetResult(aParam : LPARAM; var aResult : ustring) : boolean;
/// <summary>
/// Retrieve the current composition status of the ongoing composition.
/// Includes composition text, underline information and selection range in the
/// composition text. IMM32 does not support char selection.
/// </summary>
function GetComposition(aParam : LPARAM; var composition_text : ustring; var underlines : TCefCompositionUnderlineDynArray; var composition_start : integer) : boolean;
/// <summary>
/// Enable the IME attached to the given window, i.e. allows user-input events
/// to be dispatched to the IME. In Chromium, this function is used when a
/// renderer process moves its input focus to another edit control, or a
/// renrerer process moves the position of the focused edit control.
/// </summary>
procedure EnableIME;
/// <summary>
/// Disable the IME attached to the given window, i.e. prohibits any user-input
/// events from being dispatched to the IME. In Chromium, this function is used
/// when a renreder process sets its input focus to a password input.
/// </summary>
procedure DisableIME;
/// <summary>
/// Cancels an ongoing composition of the IME.
/// </summary>
procedure CancelIME;
/// <summary>
/// Updates the IME caret position of the given window.
/// </summary>
procedure UpdateCaretPosition(index : cardinal);
/// <summary>
/// Updates the composition range. |selected_range| is the range of characters
/// that have been selected. |character_bounds| is the bounds of each character
/// in view device coordinates.
/// </summary>
procedure ChangeCompositionRange(const selection_range : TCefRange; const character_bounds : TCefRectDynArray);
/// <summary>
/// Updates the position of the IME windows.
/// </summary>
procedure MoveImeWindow;
/// <summary>
/// Retrieves whether or not there is an ongoing composition.
/// </summary>
property IsComposing : boolean read FIsComposing;
/// <summary>
/// The current input Language ID retrieved from Windows
/// used for processing language-specific operations in IME.
/// </summary>
property InputLanguageID : LANGID read FInputLanguageID;
/// <summary>
/// Returns the primary language ID based on the InputLanguageID value.
/// </summary>
property PrimaryLangID : word read GetPrimaryLangID;
/// <summary>
/// Returns the sublanguage ID based on the InputLanguageID value.
/// </summary>
property SubLangID : word read GetSubLangID;
/// <summary>
/// Resturns True if the library was loaded successfully.
/// </summary>
property Initialized : boolean read GetInitialized;
end;

View File

@ -2,7 +2,7 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
"InternalVersion" : 519,
"InternalVersion" : 520,
"Name" : "cef4delphi_lazarus.lpk",
"Version" : "117.1.4"
}