1 // Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved. 2 // 3 // Redistribution and use in source and binary forms, with or without 4 // modification, are permitted provided that the following conditions are 5 // met: 6 // 7 // * Redistributions of source code must retain the above copyright 8 // notice, this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above 10 // copyright notice, this list of conditions and the following disclaimer 11 // in the documentation and/or other materials provided with the 12 // distribution. 13 // * Neither the name of Google Inc. nor the name Chromium Embedded 14 // Framework nor the names of its contributors may be used to endorse 15 // or promote products derived from this software without specific prior 16 // written permission. 17 // 18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // 30 // --------------------------------------------------------------------------- 31 // 32 // This file was generated by the CEF translator tool and should not edited 33 // by hand. See the translator.README.txt file in the tools directory for 34 // more information. 35 // 36 // $hash=6a8166eca76513b59a4f6355f4f765dc1d77e4ee$ 37 // 38 39 #ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_VIEW_DELEGATE_CAPI_H_ 40 #define CEF_INCLUDE_CAPI_VIEWS_CEF_VIEW_DELEGATE_CAPI_H_ 41 #pragma once 42 43 #include "include/capi/cef_base_capi.h" 44 45 #ifdef __cplusplus 46 extern "C" { 47 #endif 48 49 struct _cef_view_t; 50 51 /// 52 // Implement this structure to handle view events. The functions of this 53 // structure will be called on the browser process UI thread unless otherwise 54 // indicated. 55 /// 56 typedef struct _cef_view_delegate_t { 57 /// 58 // Base structure. 59 /// 60 cef_base_ref_counted_t base; 61 62 /// 63 // Return the preferred size for |view|. The Layout will use this information 64 // to determine the display size. 65 /// 66 cef_size_t(CEF_CALLBACK* get_preferred_size)( 67 struct _cef_view_delegate_t* self, 68 struct _cef_view_t* view); 69 70 /// 71 // Return the minimum size for |view|. 72 /// 73 cef_size_t(CEF_CALLBACK* get_minimum_size)(struct _cef_view_delegate_t* self, 74 struct _cef_view_t* view); 75 76 /// 77 // Return the maximum size for |view|. 78 /// 79 cef_size_t(CEF_CALLBACK* get_maximum_size)(struct _cef_view_delegate_t* self, 80 struct _cef_view_t* view); 81 82 /// 83 // Return the height necessary to display |view| with the provided |width|. If 84 // not specified the result of get_preferred_size().height will be used by 85 // default. Override if |view|'s preferred height depends upon the width (for 86 // example, with Labels). 87 /// 88 int(CEF_CALLBACK* get_height_for_width)(struct _cef_view_delegate_t* self, 89 struct _cef_view_t* view, 90 int width); 91 92 /// 93 // Called when the parent of |view| has changed. If |view| is being added to 94 // |parent| then |added| will be true (1). If |view| is being removed from 95 // |parent| then |added| will be false (0). If |view| is being reparented the 96 // remove notification will be sent before the add notification. Do not modify 97 // the view hierarchy in this callback. 98 /// 99 void(CEF_CALLBACK* on_parent_view_changed)(struct _cef_view_delegate_t* self, 100 struct _cef_view_t* view, 101 int added, 102 struct _cef_view_t* parent); 103 104 /// 105 // Called when a child of |view| has changed. If |child| is being added to 106 // |view| then |added| will be true (1). If |child| is being removed from 107 // |view| then |added| will be false (0). If |child| is being reparented the 108 // remove notification will be sent to the old parent before the add 109 // notification is sent to the new parent. Do not modify the view hierarchy in 110 // this callback. 111 /// 112 void(CEF_CALLBACK* on_child_view_changed)(struct _cef_view_delegate_t* self, 113 struct _cef_view_t* view, 114 int added, 115 struct _cef_view_t* child); 116 117 /// 118 // Called when |view| is added or removed from the cef_window_t. 119 /// 120 void(CEF_CALLBACK* on_window_changed)(struct _cef_view_delegate_t* self, 121 struct _cef_view_t* view, 122 int added); 123 124 /// 125 // Called when the layout of |view| has changed. 126 /// 127 void(CEF_CALLBACK* on_layout_changed)(struct _cef_view_delegate_t* self, 128 struct _cef_view_t* view, 129 const cef_rect_t* new_bounds); 130 131 /// 132 // Called when |view| gains focus. 133 /// 134 void(CEF_CALLBACK* on_focus)(struct _cef_view_delegate_t* self, 135 struct _cef_view_t* view); 136 137 /// 138 // Called when |view| loses focus. 139 /// 140 void(CEF_CALLBACK* on_blur)(struct _cef_view_delegate_t* self, 141 struct _cef_view_t* view); 142 } cef_view_delegate_t; 143 144 #ifdef __cplusplus 145 } 146 #endif 147 148 #endif // CEF_INCLUDE_CAPI_VIEWS_CEF_VIEW_DELEGATE_CAPI_H_ 149