mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-15 15:55:56 +01:00
ca8bc9dff4
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
267 lines
7.9 KiB
ObjectPascal
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.
|
|
|