CEF4Delphi/source/uCEFTextfield.pas
salvadordf ca8bc9dff4 Added cef4delphi.chm help file
Added the PDS file to extract the HTML Help files using PasDoc
Added more XML documentation
Fixed some XML errors.
Removed the license copy from the pas units.
Updated the LICENSE.md file
2023-08-09 19:38:57 +02:00

267 lines
7.9 KiB
ObjectPascal

unit uCEFTextfield;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$I cef.inc}
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
{$MINENUMSIZE 4}
interface
uses
{$IFDEF DELPHI16_UP}
System.Classes, System.SysUtils,
{$ELSE}
Classes, SysUtils,
{$ENDIF}
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFView;
type
TCefTextfieldRef = class(TCefViewRef, ICefTextfield)
protected
procedure SetPasswordInput(password_input: boolean);
function IsPasswordInput : boolean;
procedure SetReadOnly(read_only: boolean);
function IsReadOnly : boolean;
function GetText : ustring;
procedure SetText(const text_: ustring);
procedure AppendText(const text_: ustring);
procedure InsertOrReplaceText(const text_: ustring);
function HasSelection : boolean;
function GetSelectedText : ustring;
procedure SelectAll(reversed: boolean);
procedure ClearSelection;
function GetSelectedRange : TCefRange;
procedure SelectRange(const range: TCefRange);
function GetCursorPosition : NativeUInt;
procedure SetTextColor(color: TCefColor);
function GetTextColor : TCefColor;
procedure SetSelectionTextColor(color: TCefColor);
function GetSelectionTextColor : TCefColor;
procedure SetSelectionBackgroundColor(color: TCefColor);
function GetSelectionBackgroundColor : TCefColor;
procedure SetFontList(const font_list: ustring);
procedure ApplyTextColor(color: TCefColor; const range: TCefRange);
procedure ApplyTextStyle(style: TCefTextStyle; add: boolean; const range: TCefRange);
function IsCommandEnabled(command_id: TCefTextFieldCommands): boolean;
procedure ExecuteCommand(command_id: TCefTextFieldCommands);
procedure ClearEditHistory;
procedure SetPlaceholderText(const text_: ustring);
function GetPlaceholderText : ustring;
procedure SetPlaceholderTextColor(color: TCefColor);
procedure SetAccessibleName(const name: ustring);
public
class function UnWrap(data: Pointer): ICefTextfield;
class function CreateTextField(const delegate: ICefTextfieldDelegate): ICefTextfield;
end;
implementation
uses
uCEFLibFunctions, uCEFMiscFunctions;
procedure TCefTextfieldRef.SetPasswordInput(password_input: boolean);
begin
PCefTextfield(FData)^.set_password_input(PCefTextfield(FData),
ord(password_input));
end;
function TCefTextfieldRef.IsPasswordInput : boolean;
begin
Result := (PCefTextfield(FData)^.is_password_input(PCefTextfield(FData)) <> 0);
end;
procedure TCefTextfieldRef.SetReadOnly(read_only: boolean);
begin
PCefTextfield(FData)^.set_read_only(PCefTextfield(FData),
ord(read_only));
end;
function TCefTextfieldRef.IsReadOnly : boolean;
begin
Result := (PCefTextfield(FData)^.is_read_only(PCefTextfield(FData)) <> 0);
end;
function TCefTextfieldRef.GetText : ustring;
begin
Result := CefStringFreeAndGet(PCefTextfield(FData)^.get_text(PCefTextfield(FData)));
end;
procedure TCefTextfieldRef.SetText(const text_: ustring);
var
TempText : TCefString;
begin
TempText := CefString(text_);
PCefTextfield(FData)^.set_text(PCefTextfield(FData), @TempText);
end;
procedure TCefTextfieldRef.AppendText(const text_: ustring);
var
TempText : TCefString;
begin
TempText := CefString(text_);
PCefTextfield(FData)^.append_text(PCefTextfield(FData), @TempText);
end;
procedure TCefTextfieldRef.InsertOrReplaceText(const text_: ustring);
var
TempText : TCefString;
begin
TempText := CefString(text_);
PCefTextfield(FData)^.insert_or_replace_text(PCefTextfield(FData), @TempText);
end;
function TCefTextfieldRef.HasSelection : boolean;
begin
Result := (PCefTextfield(FData)^.has_selection(PCefTextfield(FData)) <> 0);
end;
function TCefTextfieldRef.GetSelectedText : ustring;
begin
Result := CefStringFreeAndGet(PCefTextfield(FData)^.get_selected_text(PCefTextfield(FData)));
end;
procedure TCefTextfieldRef.SelectAll(reversed: boolean);
begin
PCefTextfield(FData)^.select_all(PCefTextfield(FData), ord(reversed));
end;
procedure TCefTextfieldRef.ClearSelection;
begin
PCefTextfield(FData)^.clear_selection(PCefTextfield(FData));
end;
function TCefTextfieldRef.GetSelectedRange : TCefRange;
begin
Result := PCefTextfield(FData)^.get_selected_range(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SelectRange(const range: TCefRange);
begin
PCefTextfield(FData)^.select_range(PCefTextfield(FData), @range);
end;
function TCefTextfieldRef.GetCursorPosition : NativeUInt;
begin
Result := PCefTextfield(FData)^.get_cursor_position(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SetTextColor(color: TCefColor);
begin
PCefTextfield(FData)^.set_text_color(PCefTextfield(FData), color);
end;
function TCefTextfieldRef.GetTextColor : TCefColor;
begin
Result := PCefTextfield(FData)^.get_text_color(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SetSelectionTextColor(color: TCefColor);
begin
PCefTextfield(FData)^.set_selection_text_color(PCefTextfield(FData), color);
end;
function TCefTextfieldRef.GetSelectionTextColor : TCefColor;
begin
Result := PCefTextfield(FData)^.get_selection_text_color(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SetSelectionBackgroundColor(color: TCefColor);
begin
PCefTextfield(FData)^.set_selection_background_color(PCefTextfield(FData), color);
end;
function TCefTextfieldRef.GetSelectionBackgroundColor : TCefColor;
begin
Result := PCefTextfield(FData)^.get_selection_background_color(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SetFontList(const font_list: ustring);
var
TempFontList : TCefString;
begin
TempFontList := CefString(font_list);
PCefTextfield(FData)^.set_font_list(PCefTextfield(FData), @TempFontList);
end;
procedure TCefTextfieldRef.ApplyTextColor(color: TCefColor; const range: TCefRange);
begin
PCefTextfield(FData)^.apply_text_color(PCefTextfield(FData), color, @range);
end;
procedure TCefTextfieldRef.ApplyTextStyle(style: TCefTextStyle; add: boolean; const range: TCefRange);
begin
PCefTextfield(FData)^.apply_text_style(PCefTextfield(FData), style, ord(add), @range);
end;
function TCefTextfieldRef.IsCommandEnabled(command_id: TCefTextFieldCommands): boolean;
begin
Result := (PCefTextfield(FData)^.is_command_enabled(PCefTextfield(FData), command_id) <> 0);
end;
procedure TCefTextfieldRef.ExecuteCommand(command_id: TCefTextFieldCommands);
begin
PCefTextfield(FData)^.execute_command(PCefTextfield(FData), command_id);
end;
procedure TCefTextfieldRef.ClearEditHistory;
begin
PCefTextfield(FData)^.clear_edit_history(PCefTextfield(FData));
end;
procedure TCefTextfieldRef.SetPlaceholderText(const text_: ustring);
var
TempText : TCefString;
begin
TempText := CefString(text_);
PCefTextfield(FData)^.set_placeholder_text(PCefTextfield(FData), @TempText);
end;
function TCefTextfieldRef.GetPlaceholderText : ustring;
begin
Result := CefStringFreeAndGet(PCefTextfield(FData)^.get_placeholder_text(PCefTextfield(FData)));
end;
procedure TCefTextfieldRef.SetPlaceholderTextColor(color: TCefColor);
begin
PCefTextfield(FData)^.set_placeholder_text_color(PCefTextfield(FData), color);
end;
procedure TCefTextfieldRef.SetAccessibleName(const name: ustring);
var
TempName : TCefString;
begin
TempName := CefString(name);
PCefTextfield(FData)^.set_accessible_name(PCefTextfield(FData), @TempName);
end;
class function TCefTextfieldRef.UnWrap(data: Pointer): ICefTextfield;
begin
if (data <> nil) then
Result := Create(data) as ICefTextfield
else
Result := nil;
end;
class function TCefTextfieldRef.CreateTextField(const delegate: ICefTextfieldDelegate): ICefTextfield;
var
TempTextfield : PCefTextfield;
begin
Result := nil;
if (delegate <> nil) then
begin
TempTextfield := cef_textfield_create(CefGetData(delegate));
if (TempTextfield <> nil) then
Result := Create(TempTextfield) as ICefTextfield;
end;
end;
end.