2024-01-05 19:03:36 +01:00
|
|
|
// Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
2016-01-19 21:09:01 +01:00
|
|
|
// reserved. Use of this source code is governed by a BSD-style license that
|
|
|
|
// can be found in the LICENSE file.
|
|
|
|
//
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
//
|
|
|
|
// This file was generated by the CEF translator tool. If making changes by
|
|
|
|
// hand only do so within the body of existing method and function
|
|
|
|
// implementations. See the translator.README.txt file in the tools directory
|
|
|
|
// for more information.
|
|
|
|
//
|
2024-03-23 00:51:00 +01:00
|
|
|
// $hash=bd18088799d97c56459bce12fb0cb2177caecead$
|
2017-05-17 11:29:28 +02:00
|
|
|
//
|
2016-01-19 21:09:01 +01:00
|
|
|
|
2017-05-19 11:06:00 +02:00
|
|
|
#include "libcef_dll/cpptoc/views/view_delegate_cpptoc.h"
|
2024-04-30 17:45:07 +02:00
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
#include "libcef_dll/cpptoc/views/browser_view_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/cpptoc/views/button_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/cpptoc/views/panel_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/cpptoc/views/textfield_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/cpptoc/views/window_delegate_cpptoc.h"
|
|
|
|
#include "libcef_dll/ctocpp/views/view_ctocpp.h"
|
2019-01-23 16:42:12 +01:00
|
|
|
#include "libcef_dll/shutdown_checker.h"
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
// MEMBER FUNCTIONS - Body may be edited by hand.
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
cef_size_t CEF_CALLBACK
|
|
|
|
view_delegate_get_preferred_size(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
cef_size_t _retval = CefViewDelegateCppToC::Get(self)->GetPreferredSize(
|
|
|
|
CefViewCToCpp::Wrap(view));
|
|
|
|
|
|
|
|
// Return type: simple
|
|
|
|
return _retval;
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
cef_size_t CEF_CALLBACK
|
|
|
|
view_delegate_get_minimum_size(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
cef_size_t _retval = CefViewDelegateCppToC::Get(self)->GetMinimumSize(
|
|
|
|
CefViewCToCpp::Wrap(view));
|
|
|
|
|
|
|
|
// Return type: simple
|
|
|
|
return _retval;
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
cef_size_t CEF_CALLBACK
|
|
|
|
view_delegate_get_maximum_size(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return CefSize();
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
cef_size_t _retval = CefViewDelegateCppToC::Get(self)->GetMaximumSize(
|
|
|
|
CefViewCToCpp::Wrap(view));
|
|
|
|
|
|
|
|
// Return type: simple
|
|
|
|
return _retval;
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
int CEF_CALLBACK
|
|
|
|
view_delegate_get_height_for_width(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view,
|
|
|
|
int width) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return 0;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return 0;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
int _retval = CefViewDelegateCppToC::Get(self)->GetHeightForWidth(
|
2017-05-17 11:29:28 +02:00
|
|
|
CefViewCToCpp::Wrap(view), width);
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Return type: simple
|
|
|
|
return _retval;
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
void CEF_CALLBACK
|
|
|
|
view_delegate_on_parent_view_changed(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view,
|
|
|
|
int added,
|
|
|
|
cef_view_t* parent) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: parent; type: refptr_diff
|
|
|
|
DCHECK(parent);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!parent) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
CefViewDelegateCppToC::Get(self)->OnParentViewChanged(
|
2017-05-17 11:29:28 +02:00
|
|
|
CefViewCToCpp::Wrap(view), added ? true : false,
|
2016-01-19 21:09:01 +01:00
|
|
|
CefViewCToCpp::Wrap(parent));
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
void CEF_CALLBACK
|
|
|
|
view_delegate_on_child_view_changed(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view,
|
|
|
|
int added,
|
|
|
|
cef_view_t* child) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
// Verify param: child; type: refptr_diff
|
|
|
|
DCHECK(child);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!child) {
|
2016-01-19 21:09:01 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2016-01-19 21:09:01 +01:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
CefViewDelegateCppToC::Get(self)->OnChildViewChanged(
|
2017-05-17 11:29:28 +02:00
|
|
|
CefViewCToCpp::Wrap(view), added ? true : false,
|
2016-01-19 21:09:01 +01:00
|
|
|
CefViewCToCpp::Wrap(child));
|
|
|
|
}
|
|
|
|
|
2021-04-11 22:10:11 +02:00
|
|
|
void CEF_CALLBACK
|
|
|
|
view_delegate_on_window_changed(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view,
|
|
|
|
int added) {
|
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2021-04-11 22:10:11 +02:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2021-04-11 22:10:11 +02:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2021-04-11 22:10:11 +02:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2021-04-11 22:10:11 +02:00
|
|
|
|
|
|
|
// Execute
|
|
|
|
CefViewDelegateCppToC::Get(self)->OnWindowChanged(CefViewCToCpp::Wrap(view),
|
|
|
|
added ? true : false);
|
|
|
|
}
|
|
|
|
|
2021-08-28 03:55:15 +02:00
|
|
|
void CEF_CALLBACK
|
|
|
|
view_delegate_on_layout_changed(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view,
|
|
|
|
const cef_rect_t* new_bounds) {
|
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2021-08-28 03:55:15 +02:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2021-08-28 03:55:15 +02:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2021-08-28 03:55:15 +02:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2021-08-28 03:55:15 +02:00
|
|
|
// Verify param: new_bounds; type: simple_byref_const
|
|
|
|
DCHECK(new_bounds);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!new_bounds) {
|
2021-08-28 03:55:15 +02:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2021-08-28 03:55:15 +02:00
|
|
|
|
|
|
|
// Translate param: new_bounds; type: simple_byref_const
|
|
|
|
CefRect new_boundsVal = new_bounds ? *new_bounds : CefRect();
|
|
|
|
|
|
|
|
// Execute
|
|
|
|
CefViewDelegateCppToC::Get(self)->OnLayoutChanged(CefViewCToCpp::Wrap(view),
|
|
|
|
new_boundsVal);
|
|
|
|
}
|
|
|
|
|
2017-02-18 03:08:51 +01:00
|
|
|
void CEF_CALLBACK view_delegate_on_focus(struct _cef_view_delegate_t* self,
|
2017-05-17 11:29:28 +02:00
|
|
|
cef_view_t* view) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2017-02-18 03:08:51 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2017-02-18 03:08:51 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2017-02-18 03:08:51 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2017-02-18 03:08:51 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2017-02-18 03:08:51 +01:00
|
|
|
|
|
|
|
// Execute
|
2017-05-17 11:29:28 +02:00
|
|
|
CefViewDelegateCppToC::Get(self)->OnFocus(CefViewCToCpp::Wrap(view));
|
2017-02-18 03:08:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void CEF_CALLBACK view_delegate_on_blur(struct _cef_view_delegate_t* self,
|
2017-05-17 11:29:28 +02:00
|
|
|
cef_view_t* view) {
|
2019-01-23 16:42:12 +01:00
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
2017-02-18 03:08:51 +01:00
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!self) {
|
2017-02-18 03:08:51 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2017-02-18 03:08:51 +01:00
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
2023-01-02 23:47:15 +01:00
|
|
|
if (!view) {
|
2017-02-18 03:08:51 +01:00
|
|
|
return;
|
2023-01-02 23:47:15 +01:00
|
|
|
}
|
2017-02-18 03:08:51 +01:00
|
|
|
|
|
|
|
// Execute
|
2017-05-17 11:29:28 +02:00
|
|
|
CefViewDelegateCppToC::Get(self)->OnBlur(CefViewCToCpp::Wrap(view));
|
2017-02-18 03:08:51 +01:00
|
|
|
}
|
|
|
|
|
2024-03-23 00:51:00 +01:00
|
|
|
void CEF_CALLBACK
|
|
|
|
view_delegate_on_theme_changed(struct _cef_view_delegate_t* self,
|
|
|
|
cef_view_t* view) {
|
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
|
|
|
|
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
|
|
|
|
|
|
|
DCHECK(self);
|
|
|
|
if (!self) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
// Verify param: view; type: refptr_diff
|
|
|
|
DCHECK(view);
|
|
|
|
if (!view) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Execute
|
|
|
|
CefViewDelegateCppToC::Get(self)->OnThemeChanged(CefViewCToCpp::Wrap(view));
|
|
|
|
}
|
|
|
|
|
2016-01-19 21:09:01 +01:00
|
|
|
} // namespace
|
|
|
|
|
|
|
|
// CONSTRUCTOR - Do not edit by hand.
|
|
|
|
|
|
|
|
CefViewDelegateCppToC::CefViewDelegateCppToC() {
|
|
|
|
GetStruct()->get_preferred_size = view_delegate_get_preferred_size;
|
|
|
|
GetStruct()->get_minimum_size = view_delegate_get_minimum_size;
|
|
|
|
GetStruct()->get_maximum_size = view_delegate_get_maximum_size;
|
|
|
|
GetStruct()->get_height_for_width = view_delegate_get_height_for_width;
|
|
|
|
GetStruct()->on_parent_view_changed = view_delegate_on_parent_view_changed;
|
|
|
|
GetStruct()->on_child_view_changed = view_delegate_on_child_view_changed;
|
2021-04-11 22:10:11 +02:00
|
|
|
GetStruct()->on_window_changed = view_delegate_on_window_changed;
|
2021-08-28 03:55:15 +02:00
|
|
|
GetStruct()->on_layout_changed = view_delegate_on_layout_changed;
|
2017-02-18 03:08:51 +01:00
|
|
|
GetStruct()->on_focus = view_delegate_on_focus;
|
|
|
|
GetStruct()->on_blur = view_delegate_on_blur;
|
2024-03-23 00:51:00 +01:00
|
|
|
GetStruct()->on_theme_changed = view_delegate_on_theme_changed;
|
2016-01-19 21:09:01 +01:00
|
|
|
}
|
|
|
|
|
2019-01-23 16:42:12 +01:00
|
|
|
// DESTRUCTOR - Do not edit by hand.
|
|
|
|
|
|
|
|
CefViewDelegateCppToC::~CefViewDelegateCppToC() {
|
|
|
|
shutdown_checker::AssertNotShutdown();
|
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
template <>
|
|
|
|
CefRefPtr<CefViewDelegate> CefCppToCRefCounted<
|
|
|
|
CefViewDelegateCppToC,
|
|
|
|
CefViewDelegate,
|
|
|
|
cef_view_delegate_t>::UnwrapDerived(CefWrapperType type,
|
|
|
|
cef_view_delegate_t* s) {
|
2016-01-19 21:09:01 +01:00
|
|
|
if (type == WT_BROWSER_VIEW_DELEGATE) {
|
|
|
|
return CefBrowserViewDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_browser_view_delegate_t*>(s));
|
|
|
|
}
|
|
|
|
if (type == WT_BUTTON_DELEGATE) {
|
|
|
|
return CefButtonDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_button_delegate_t*>(s));
|
|
|
|
}
|
|
|
|
if (type == WT_MENU_BUTTON_DELEGATE) {
|
|
|
|
return CefMenuButtonDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_menu_button_delegate_t*>(s));
|
|
|
|
}
|
|
|
|
if (type == WT_PANEL_DELEGATE) {
|
|
|
|
return CefPanelDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_panel_delegate_t*>(s));
|
|
|
|
}
|
|
|
|
if (type == WT_TEXTFIELD_DELEGATE) {
|
|
|
|
return CefTextfieldDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_textfield_delegate_t*>(s));
|
|
|
|
}
|
|
|
|
if (type == WT_WINDOW_DELEGATE) {
|
|
|
|
return CefWindowDelegateCppToC::Unwrap(
|
|
|
|
reinterpret_cast<cef_window_delegate_t*>(s));
|
|
|
|
}
|
2023-05-08 17:15:02 +02:00
|
|
|
DCHECK(false) << "Unexpected class type: " << type;
|
2020-01-15 14:53:19 +01:00
|
|
|
return nullptr;
|
2016-01-19 21:09:01 +01:00
|
|
|
}
|
|
|
|
|
2017-05-17 11:29:28 +02:00
|
|
|
template <>
|
|
|
|
CefWrapperType CefCppToCRefCounted<CefViewDelegateCppToC,
|
|
|
|
CefViewDelegate,
|
|
|
|
cef_view_delegate_t>::kWrapperType =
|
|
|
|
WT_VIEW_DELEGATE;
|