# Class TCefWindowDelegateOwn

Description
Hierarchy
Fields
Methods
Properties

## Unit

uCEFWindowDelegate

## Declaration

`type TCefWindowDelegateOwn = class(TCefPanelDelegateOwn, ICefWindowDelegate)`

## Description

Implement this interface to handle window events. The functions of this interface will be called on the browser process UI thread unless otherwise indicated.

<see href="https://bitbucket.org/chromiumembedded/cef/src/master/include/capi/views/cef_window_delegate_capi.h">CEF source file: /include/capi/views/cef_window_delegate_capi.h (cef_window_delegate_t))

## Hierarchy

- TInterfacedObject
- TCefBaseRefCountedOwn
- TCefViewDelegateOwn
- TCefPanelDelegateOwn
- TCefWindowDelegateOwn

## Overview

### Methods

| `procedure OnWindowCreated(const window_: ICefWindow); virtual;`
| `procedure OnWindowClosing(const window_: ICefWindow); virtual;`
| `procedure OnWindowDestroyed(const window_: ICefWindow); virtual;`
| `procedure OnWindowActivationChanged(const window_: ICefWindow; active: boolean); virtual;`
| `procedure OnWindowBoundsChanged(const window_: ICefWindow; const new_bounds: TCefRect); virtual;`
| `procedure OnWindowFullscreenTransition(const window_: ICefWindow; is_completed: boolean); virtual;`
| `procedure OnGetParentWindow(const window_: ICefWindow; var is_menu, can_activate_menu: boolean; var aResult : ICefWindow); virtual;`
| `procedure OnIsWindowModalDialog(const window_: ICefWindow; var aResult: boolean); virtual;`
| `procedure OnGetInitialBounds(const window_: ICefWindow; var aResult : TCefRect); virtual;`
| `procedure OnGetInitialShowState(const window_: ICefWindow; var aResult : TCefShowState); virtual;`
| `procedure OnIsFrameless(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnWithStandardWindowButtons(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnGetTitlebarHeight(const window_: ICefWindow; var titlebar_height: Single; var aResult : boolean); virtual;`
| `procedure OnAcceptsFirstMouse(const window_: ICefWindow; var aResult: TCefState); virtual;`
| `procedure OnCanResize(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnCanMaximize(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnCanMinimize(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnCanClose(const window_: ICefWindow; var aResult : boolean); virtual;`
| `procedure OnAccelerator(const window_: ICefWindow; command_id: Integer; var aResult : boolean); virtual;`
| `procedure OnKeyEvent(const window_: ICefWindow; const event: TCefKeyEvent; var aResult : boolean); virtual;`
| `procedure OnThemeColorsChanged(const window_: ICefWindow; chrome_theme: Integer); virtual;`
| `procedure OnGetWindowRuntimeStyle(var aResult: TCefRuntimeStyle); virtual;`
| `procedure OnGetLinuxWindowProperties(const window_: ICefWindow; var properties: TLinuxWindowProperties; var aResult: boolean); virtual;`
| `procedure InitializeCEFMethods; override;`
| `constructor Create; override;`

## Description

### Methods

| `procedure OnWindowCreated(const window_: ICefWindow); virtual;`
Called when |window| is created.

| `procedure OnWindowClosing(const window_: ICefWindow); virtual;`
Called when |window| is closing.

| `procedure OnWindowDestroyed(const window_: ICefWindow); virtual;`
Called when |window| is destroyed. Release all references to |window| and do not attempt to execute any functions on |window| after this callback returns.

| `procedure OnWindowActivationChanged(const window_: ICefWindow; active: boolean); virtual;`
Called when |window| is activated or deactivated.

| `procedure OnWindowBoundsChanged(const window_: ICefWindow; const new_bounds: TCefRect); virtual;`
Called when |window| bounds have changed. |new_bounds| will be in DIP screen coordinates.

| `procedure OnWindowFullscreenTransition(const window_: ICefWindow; is_completed: boolean); virtual;`

Called when |window| is transitioning to or from fullscreen mode. On MacOS the transition occurs asynchronously with |is_competed| set to false (0) when the transition starts and true (1) after the transition completes. On other platforms the transition occurs synchronously with |is_completed| set to true (1) after the transition completes. With Alloy style you must also implement ICefDisplayHandler.OnFullscreenModeChange to handle fullscreen transitions initiated by browser content.

| `procedure OnGetParentWindow(const window_: ICefWindow; var is_menu, can_activate_menu: boolean; var aResult : ICefWindow); virtual;`

Return the parent for |window| or NULL if the |window| does not have a parent. Windows with parents will not get a taskbar button. Set |is_menu| to true (1) if |window| will be displayed as a menu, in which case it will not be clipped to the parent window bounds. Set |can_activate_menu| to false (0) if |is_menu| is true (1) and |window| should not be activated (given keyboard focus) when displayed.

| `procedure OnIsWindowModalDialog(const window_: ICefWindow; var aResult: boolean); virtual;`

Return true (1) if |window| should be created as a window modal dialog. Only called when a Window is returned via get_parent_window() with |is_menu| set to false (0). All controls in the parent Window will be disabled while |window| is visible. This functionality is not supported by all Linux window managers. Alternately, use ICefWindow.ShowAsBrowserModalDialog() for a browser modal dialog that works on all platforms.

| `procedure OnGetInitialBounds(const window_: ICefWindow; var aResult : TCefRect); virtual;`
Return the initial bounds for |window| in density independent pixel (DIP) coordinates. If this function returns an NULL CefRect then GetPreferredSize() will be called to retrieve the size, and the window will be placed on the screen with origin (0,0). This function can be used in combination with ICefView.GetBoundsInScreen() to restore the previous window bounds.

| `procedure OnGetInitialShowState(const window_: ICefWindow; var aResult : TCefShowState); virtual;`
Return the initial show state for |window|.

| `procedure OnIsFrameless(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| should be created without a frame or title bar. The window will be resizable if can_resize() returns true (1). Use ICefWindow.SetDraggableRegions() to specify draggable regions.

| `procedure OnWithStandardWindowButtons(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| should be created with standard window buttons like close, minimize and zoom. This function is only supported on macOS.

| `procedure OnGetTitlebarHeight(const window_: ICefWindow; var titlebar_height: Single; var aResult : boolean); virtual;`
Return whether the titlebar height should be overridden, and sets the height of the titlebar in |titlebar_height|. On macOS, it can also be used to adjust the vertical position of the traffic light buttons in frameless windows. The buttons will be positioned halfway down the titlebar at a height of |titlebar_height| / 2.

| `procedure OnAcceptsFirstMouse(const window_: ICefWindow; var aResult: TCefState); virtual;`

Return whether the view should accept the initial mouse-down event, allowing it to respond to click-through behavior. If STATE_ENABLED is returned, the view will be sent a mouseDown: message for an initial mouse- down event, activating the view with one click, instead of clicking first to make the window active and then clicking the view.

This function is only supported on macOS. For more details, refer to the documentation of acceptsFirstMouse.

| `procedure OnCanResize(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| can be resized.

| `procedure OnCanMaximize(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| can be maximized.

| `procedure OnCanMinimize(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| can be minimized.

| `procedure OnCanClose(const window_: ICefWindow; var aResult : boolean); virtual;`
Return true (1) if |window| can be closed. This will be called for user- initiated window close actions and when ICefWindow.close() is called.

| `procedure OnAccelerator(const window_: ICefWindow; command_id: Integer; var aResult : boolean); virtual;`
Called when a keyboard accelerator registered with ICefWindow.SetAccelerator is triggered. Return true (1) if the accelerator was handled or false (0) otherwise.

| `procedure OnKeyEvent(const window_: ICefWindow; const event: TCefKeyEvent; var aResult : boolean); virtual;`
Called after all other controls in the window have had a chance to handle the event. |event| contains information about the keyboard event. Return true (1) if the keyboard event was handled or false (0) otherwise.

| `procedure OnThemeColorsChanged(const window_: ICefWindow; chrome_theme: Integer); virtual;`

Called after the native/OS or Chrome theme for |window| has changed. |chrome_theme| will be true (1) if the notification is for a Chrome theme.

Native/OS theme colors are configured globally and do not need to be customized for each Window individually. An example of a native/OS theme change that triggers this callback is when the user switches between dark and light mode during application lifespan. Native/OS theme changes can be disabled by passing the `–force-dark-mode` or `–force-light-mode` command-line flag.

Chrome theme colors will be applied and this callback will be triggered if/when a BrowserView is added to the Window's component hierarchy. Chrome theme colors can be configured on a per-RequestContext basis using ICefRequestContext.SetChromeColorScheme or (Chrome style only) by visiting chrome://settings/manageProfile. Any theme changes using those mechanisms will also trigger this callback. Chrome theme colors will be persisted and restored from disk cache.

This callback is not triggered on Window creation so clients that wish to customize the initial native/OS theme must call ICefWindow.SetThemeColor and ICefWindow.ThemeChanged before showing the first Window.

Theme colors will be reset to standard values before this callback is called for the first affected Window. Call ICefWindow.SetThemeColor from inside this callback to override a standard color or add a custom color. ICefViewDelegate.OnThemeChanged will be called after this callback for the complete |window| component hierarchy.

| `procedure OnGetWindowRuntimeStyle(var aResult: TCefRuntimeStyle); virtual;`
Optionally change the runtime style for this Window. See TCefRuntimeStyle documentation for details.

| `procedure OnGetLinuxWindowProperties(const window_: ICefWindow; var properties: TLinuxWindowProperties; var aResult: boolean); virtual;`
Return Linux-specific window properties for correctly handling by window managers.

| `procedure InitializeCEFMethods; override;`
Links the methods in the internal CEF record data pointer with the methods in this class.

| `constructor Create; override;`
This item has no description.

Generated by PasDoc 0.17.0.snapshot.