mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-16 00:05:55 +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
346 lines
9.8 KiB
ObjectPascal
346 lines
9.8 KiB
ObjectPascal
unit uCEFView;
|
|
|
|
{$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;
|
|
|
|
type
|
|
TCefViewRef = class(TCefBaseRefCountedRef, ICefView)
|
|
protected
|
|
function AsBrowserView : ICefBrowserView;
|
|
function AsButton : ICefButton;
|
|
function AsPanel : ICefPanel;
|
|
function AsScrollView : ICefScrollView;
|
|
function AsTextfield : ICefTextfield;
|
|
function GetTypeString : ustring;
|
|
function ToStringEx(include_children: boolean): ustring;
|
|
function IsValid : boolean;
|
|
function IsAttached : boolean;
|
|
function IsSame(const that: ICefView): boolean;
|
|
function GetDelegate : ICefViewDelegate;
|
|
function GetWindow : ICefWindow;
|
|
function GetID : Integer;
|
|
procedure SetID(id_: Integer);
|
|
function GetGroupID : Integer;
|
|
procedure SetGroupID(group_id: Integer);
|
|
function GetParentView : ICefView;
|
|
function GetViewForID(id_: Integer): ICefView;
|
|
procedure SetBounds(const bounds_: TCefRect);
|
|
function GetBounds : TCefRect;
|
|
function GetBoundsInScreen : TCefRect;
|
|
procedure SetSize(const size_: TCefSize);
|
|
function GetSize : TCefSize;
|
|
procedure SetPosition(const position_: TCefPoint);
|
|
function GetPosition : TCefPoint;
|
|
procedure SetInsets(const insets: TCefInsets);
|
|
function GetInsets: TCefInsets;
|
|
function GetPreferredSize : TCefSize;
|
|
procedure SizeToPreferredSize;
|
|
function GetMinimumSize : TCefSize;
|
|
function GetMaximumSize : TCefSize;
|
|
function GetHeightForWidth(width: Integer): Integer;
|
|
procedure InvalidateLayout;
|
|
procedure SetVisible(visible_: boolean);
|
|
function IsVisible : boolean;
|
|
function IsDrawn : boolean;
|
|
procedure SetEnabled(enabled_: boolean);
|
|
function IsEnabled : boolean;
|
|
procedure SetFocusable(focusable_: boolean);
|
|
function IsFocusable : boolean;
|
|
function IsAccessibilityFocusable : boolean;
|
|
procedure RequestFocus;
|
|
procedure SetBackgroundColor(color: TCefColor);
|
|
function GetBackgroundColor : TCefColor;
|
|
function ConvertPointToScreen(var point: TCefPoint): boolean;
|
|
function ConvertPointFromScreen(var point: TCefPoint): boolean;
|
|
function ConvertPointToWindow(var point: TCefPoint): boolean;
|
|
function ConvertPointFromWindow(var point: TCefPoint): boolean;
|
|
function ConvertPointToView(const view : ICefView; var point: TCefPoint): boolean;
|
|
function ConvertPointFromView(const view : ICefView; var point: TCefPoint): boolean;
|
|
|
|
public
|
|
class function UnWrap(data: Pointer): ICefView;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uCEFLibFunctions, uCEFMiscFunctions, uCEFBrowserView, uCEFButton, uCEFPanel,
|
|
uCEFScrollView, uCEFTextfield, uCEFViewDelegate, uCEFWindow;
|
|
|
|
function TCefViewRef.AsBrowserView : ICefBrowserView;
|
|
begin
|
|
Result := TCefBrowserViewRef.UnWrap(PCefView(FData)^.as_browser_view(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.AsButton : ICefButton;
|
|
begin
|
|
Result := TCefButtonRef.UnWrap(PCefView(FData)^.as_button(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.AsPanel : ICefPanel;
|
|
begin
|
|
Result := TCefPanelRef.UnWrap(PCefView(FData)^.as_panel(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.AsScrollView : ICefScrollView;
|
|
begin
|
|
Result := TCefScrollViewRef.UnWrap(PCefView(FData)^.as_scroll_view(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.AsTextfield : ICefTextfield;
|
|
begin
|
|
Result := TCefTextfieldRef.UnWrap(PCefView(FData)^.as_textfield(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.GetTypeString : ustring;
|
|
begin
|
|
Result := CefStringFreeAndGet(PCefView(FData)^.get_type_string(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.ToStringEx(include_children: boolean): ustring;
|
|
begin
|
|
Result := CefStringFreeAndGet(PCefView(FData)^.to_string(PCefView(FData), ord(include_children)));
|
|
end;
|
|
|
|
function TCefViewRef.IsValid : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_valid(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.IsAttached : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_attached(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.IsSame(const that: ICefView): boolean;
|
|
begin
|
|
Result := PCefView(FData)^.is_same(PCefView(FData), CefGetData(that)) <> 0;
|
|
end;
|
|
|
|
function TCefViewRef.GetDelegate : ICefViewDelegate;
|
|
begin
|
|
Result := TCefViewDelegateRef.UnWrap(PCefView(FData)^.get_delegate(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.GetWindow : ICefWindow;
|
|
begin
|
|
Result := TCefWindowRef.UnWrap(PCefView(FData)^.get_window(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.GetID : Integer;
|
|
begin
|
|
Result := PCefView(FData)^.get_id(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetID(id_: Integer);
|
|
begin
|
|
PCefView(FData)^.set_id(PCefView(FData), id_);
|
|
end;
|
|
|
|
function TCefViewRef.GetGroupID : Integer;
|
|
begin
|
|
Result := PCefView(FData)^.get_group_id(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetGroupID(group_id: Integer);
|
|
begin
|
|
PCefView(FData)^.set_group_id(PCefView(FData), group_id);
|
|
end;
|
|
|
|
function TCefViewRef.GetParentView : ICefView;
|
|
begin
|
|
Result := UnWrap(PCefView(FData)^.get_parent_view(PCefView(FData)));
|
|
end;
|
|
|
|
function TCefViewRef.GetViewForID(id_: Integer): ICefView;
|
|
begin
|
|
Result := UnWrap(PCefView(FData)^.get_view_for_id(PCefView(FData), id_));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetBounds(const bounds_: TCefRect);
|
|
begin
|
|
PCefView(FData)^.set_bounds(PCefView(FData), @bounds_);
|
|
end;
|
|
|
|
function TCefViewRef.GetBounds : TCefRect;
|
|
begin
|
|
Result := PCefView(FData)^.get_bounds(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.GetBoundsInScreen : TCefRect;
|
|
begin
|
|
Result := PCefView(FData)^.get_bounds_in_screen(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetSize(const size_: TCefSize);
|
|
begin
|
|
PCefView(FData)^.set_size(PCefView(FData), @size_);
|
|
end;
|
|
|
|
function TCefViewRef.GetSize : TCefSize;
|
|
begin
|
|
Result := PCefView(FData)^.get_size(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetPosition(const position_: TCefPoint);
|
|
begin
|
|
PCefView(FData)^.set_position(PCefView(FData), @position_);
|
|
end;
|
|
|
|
function TCefViewRef.GetPosition : TCefPoint;
|
|
begin
|
|
Result := PCefView(FData)^.get_position(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetInsets(const insets: TCefInsets);
|
|
begin
|
|
PCefView(FData)^.set_insets(PCefView(FData), @insets);
|
|
end;
|
|
|
|
function TCefViewRef.GetInsets: TCefInsets;
|
|
begin
|
|
Result := PCefView(FData)^.get_insets(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.GetPreferredSize : TCefSize;
|
|
begin
|
|
Result := PCefView(FData)^.get_preferred_size(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SizeToPreferredSize;
|
|
begin
|
|
PCefView(FData)^.size_to_preferred_size(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.GetMinimumSize : TCefSize;
|
|
begin
|
|
Result := PCefView(FData)^.get_minimum_size(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.GetMaximumSize : TCefSize;
|
|
begin
|
|
Result := PCefView(FData)^.get_maximum_size(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.GetHeightForWidth(width: Integer): Integer;
|
|
begin
|
|
Result := PCefView(FData)^.get_height_for_width(PCefView(FData), width);
|
|
end;
|
|
|
|
procedure TCefViewRef.InvalidateLayout;
|
|
begin
|
|
PCefView(FData)^.invalidate_layout(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetVisible(visible_: boolean);
|
|
begin
|
|
PCefView(FData)^.set_visible(PCefView(FData), ord(visible_));
|
|
end;
|
|
|
|
function TCefViewRef.IsVisible : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_visible(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.IsDrawn : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_drawn(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
procedure TCefViewRef.SetEnabled(enabled_: boolean);
|
|
begin
|
|
PCefView(FData)^.set_enabled(PCefView(FData), ord(enabled_));
|
|
end;
|
|
|
|
function TCefViewRef.IsEnabled : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_enabled(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
procedure TCefViewRef.SetFocusable(focusable_: boolean);
|
|
begin
|
|
PCefView(FData)^.set_focusable(PCefView(FData), ord(focusable_));
|
|
end;
|
|
|
|
function TCefViewRef.IsFocusable : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_focusable(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.IsAccessibilityFocusable : boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.is_accessibility_focusable(PCefView(FData)) <> 0);
|
|
end;
|
|
|
|
procedure TCefViewRef.RequestFocus;
|
|
begin
|
|
PCefView(FData)^.request_focus(PCefView(FData));
|
|
end;
|
|
|
|
procedure TCefViewRef.SetBackgroundColor(color: TCefColor);
|
|
begin
|
|
PCefView(FData)^.set_background_color(PCefView(FData), color);
|
|
end;
|
|
|
|
function TCefViewRef.GetBackgroundColor : TCefColor;
|
|
begin
|
|
Result := PCefView(FData)^.get_background_color(PCefView(FData));
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointToScreen(var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_to_screen(PCefView(FData), @point) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointFromScreen(var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_from_screen(PCefView(FData), @point) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointToWindow(var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_to_window(PCefView(FData), @point) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointFromWindow(var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_from_window(PCefView(FData), @point) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointToView(const view : ICefView; var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_to_view(PCefView(FData), CefGetData(view), @point) <> 0);
|
|
end;
|
|
|
|
function TCefViewRef.ConvertPointFromView(const view : ICefView; var point: TCefPoint): boolean;
|
|
begin
|
|
Result := (PCefView(FData)^.convert_point_from_view(PCefView(FData), CefGetData(view), @point) <> 0);
|
|
end;
|
|
|
|
class function TCefViewRef.UnWrap(data: Pointer): ICefView;
|
|
begin
|
|
if (data <> nil) then
|
|
Result := Create(data) as ICefView
|
|
else
|
|
Result := nil;
|
|
end;
|
|
|
|
end.
|
|
|