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=bdb670bcaa9eb9f5748900ad25bcc061155d6076$ 37 // 38 39 #ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_ 40 #define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_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_menu_model_t; 50 51 /// 52 // Implement this structure to handle menu model 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_menu_model_delegate_t { 57 /// 58 // Base structure. 59 /// 60 cef_base_ref_counted_t base; 61 62 /// 63 // Perform the action associated with the specified |command_id| and optional 64 // |event_flags|. 65 /// 66 void(CEF_CALLBACK* execute_command)(struct _cef_menu_model_delegate_t* self, 67 struct _cef_menu_model_t* menu_model, 68 int command_id, 69 cef_event_flags_t event_flags); 70 71 /// 72 // Called when the user moves the mouse outside the menu and over the owning 73 // window. 74 /// 75 void(CEF_CALLBACK* mouse_outside_menu)( 76 struct _cef_menu_model_delegate_t* self, 77 struct _cef_menu_model_t* menu_model, 78 const cef_point_t* screen_point); 79 80 /// 81 // Called on unhandled open submenu keyboard commands. |is_rtl| will be true 82 // (1) if the menu is displaying a right-to-left language. 83 /// 84 void(CEF_CALLBACK* unhandled_open_submenu)( 85 struct _cef_menu_model_delegate_t* self, 86 struct _cef_menu_model_t* menu_model, 87 int is_rtl); 88 89 /// 90 // Called on unhandled close submenu keyboard commands. |is_rtl| will be true 91 // (1) if the menu is displaying a right-to-left language. 92 /// 93 void(CEF_CALLBACK* unhandled_close_submenu)( 94 struct _cef_menu_model_delegate_t* self, 95 struct _cef_menu_model_t* menu_model, 96 int is_rtl); 97 98 /// 99 // The menu is about to show. 100 /// 101 void(CEF_CALLBACK* menu_will_show)(struct _cef_menu_model_delegate_t* self, 102 struct _cef_menu_model_t* menu_model); 103 104 /// 105 // The menu has closed. 106 /// 107 void(CEF_CALLBACK* menu_closed)(struct _cef_menu_model_delegate_t* self, 108 struct _cef_menu_model_t* menu_model); 109 110 /// 111 // Optionally modify a menu item label. Return true (1) if |label| was 112 // modified. 113 /// 114 int(CEF_CALLBACK* format_label)(struct _cef_menu_model_delegate_t* self, 115 struct _cef_menu_model_t* menu_model, 116 cef_string_t* label); 117 } cef_menu_model_delegate_t; 118 119 #ifdef __cplusplus 120 } 121 #endif 122 123 #endif // CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_ 124