mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
views: Support top menu switching with mouse and arrow keys (issue #2102)
- cefclient: Add example ViewsMenuBar implementation and show top menu by default (specify `--hide-top-menu` to hide it).
This commit is contained in:
@@ -38,6 +38,20 @@ namespace {
|
||||
|
||||
// MEMBER FUNCTIONS - Body may be edited by hand.
|
||||
|
||||
int CEF_CALLBACK menu_model_is_sub_menu(struct _cef_menu_model_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
// Execute
|
||||
bool _retval = CefMenuModelCppToC::Get(self)->IsSubMenu();
|
||||
|
||||
// Return type: bool
|
||||
return _retval;
|
||||
}
|
||||
|
||||
int CEF_CALLBACK menu_model_clear(struct _cef_menu_model_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
@@ -986,6 +1000,7 @@ int CEF_CALLBACK menu_model_get_accelerator_at(struct _cef_menu_model_t* self,
|
||||
// CONSTRUCTOR - Do not edit by hand.
|
||||
|
||||
CefMenuModelCppToC::CefMenuModelCppToC() {
|
||||
GetStruct()->is_sub_menu = menu_model_is_sub_menu;
|
||||
GetStruct()->clear = menu_model_clear;
|
||||
GetStruct()->get_count = menu_model_get_count;
|
||||
GetStruct()->add_separator = menu_model_add_separator;
|
||||
|
@@ -38,6 +38,70 @@ void CEF_CALLBACK menu_model_delegate_execute_command(
|
||||
event_flags);
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_model_delegate_mouse_outside_menu(
|
||||
struct _cef_menu_model_delegate_t* self, cef_menu_model_t* menu_model,
|
||||
const cef_point_t* screen_point) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: menu_model; type: refptr_diff
|
||||
DCHECK(menu_model);
|
||||
if (!menu_model)
|
||||
return;
|
||||
// Verify param: screen_point; type: simple_byref_const
|
||||
DCHECK(screen_point);
|
||||
if (!screen_point)
|
||||
return;
|
||||
|
||||
// Translate param: screen_point; type: simple_byref_const
|
||||
CefPoint screen_pointVal = screen_point?*screen_point:CefPoint();
|
||||
|
||||
// Execute
|
||||
CefMenuModelDelegateCppToC::Get(self)->MouseOutsideMenu(
|
||||
CefMenuModelCToCpp::Wrap(menu_model),
|
||||
screen_pointVal);
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_model_delegate_unhandled_open_submenu(
|
||||
struct _cef_menu_model_delegate_t* self, cef_menu_model_t* menu_model,
|
||||
int is_rtl) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: menu_model; type: refptr_diff
|
||||
DCHECK(menu_model);
|
||||
if (!menu_model)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefMenuModelDelegateCppToC::Get(self)->UnhandledOpenSubmenu(
|
||||
CefMenuModelCToCpp::Wrap(menu_model),
|
||||
is_rtl?true:false);
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_model_delegate_unhandled_close_submenu(
|
||||
struct _cef_menu_model_delegate_t* self, cef_menu_model_t* menu_model,
|
||||
int is_rtl) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: menu_model; type: refptr_diff
|
||||
DCHECK(menu_model);
|
||||
if (!menu_model)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefMenuModelDelegateCppToC::Get(self)->UnhandledCloseSubmenu(
|
||||
CefMenuModelCToCpp::Wrap(menu_model),
|
||||
is_rtl?true:false);
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_model_delegate_menu_will_show(
|
||||
struct _cef_menu_model_delegate_t* self, cef_menu_model_t* menu_model) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@@ -108,6 +172,11 @@ int CEF_CALLBACK menu_model_delegate_format_label(
|
||||
|
||||
CefMenuModelDelegateCppToC::CefMenuModelDelegateCppToC() {
|
||||
GetStruct()->execute_command = menu_model_delegate_execute_command;
|
||||
GetStruct()->mouse_outside_menu = menu_model_delegate_mouse_outside_menu;
|
||||
GetStruct()->unhandled_open_submenu =
|
||||
menu_model_delegate_unhandled_open_submenu;
|
||||
GetStruct()->unhandled_close_submenu =
|
||||
menu_model_delegate_unhandled_close_submenu;
|
||||
GetStruct()->menu_will_show = menu_model_delegate_menu_will_show;
|
||||
GetStruct()->menu_closed = menu_model_delegate_menu_closed;
|
||||
GetStruct()->format_label = menu_model_delegate_format_label;
|
||||
|
@@ -37,6 +37,23 @@ void CEF_CALLBACK button_delegate_on_button_pressed(
|
||||
CefButtonCToCpp::Wrap(button));
|
||||
}
|
||||
|
||||
void CEF_CALLBACK button_delegate_on_button_state_changed(
|
||||
struct _cef_button_delegate_t* self, cef_button_t* button) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: button; type: refptr_diff
|
||||
DCHECK(button);
|
||||
if (!button)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefButtonDelegateCppToC::Get(self)->OnButtonStateChanged(
|
||||
CefButtonCToCpp::Wrap(button));
|
||||
}
|
||||
|
||||
cef_size_t CEF_CALLBACK button_delegate_get_preferred_size(
|
||||
struct _cef_view_delegate_t* self, cef_view_t* view) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@@ -215,6 +232,8 @@ void CEF_CALLBACK button_delegate_on_blur(struct _cef_view_delegate_t* self,
|
||||
|
||||
CefButtonDelegateCppToC::CefButtonDelegateCppToC() {
|
||||
GetStruct()->on_button_pressed = button_delegate_on_button_pressed;
|
||||
GetStruct()->on_button_state_changed =
|
||||
button_delegate_on_button_state_changed;
|
||||
GetStruct()->base.get_preferred_size = button_delegate_get_preferred_size;
|
||||
GetStruct()->base.get_minimum_size = button_delegate_get_minimum_size;
|
||||
GetStruct()->base.get_maximum_size = button_delegate_get_maximum_size;
|
||||
|
@@ -81,6 +81,17 @@ void CEF_CALLBACK menu_button_show_menu(struct _cef_menu_button_t* self,
|
||||
anchor_position);
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_button_trigger_menu(struct _cef_menu_button_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefMenuButtonCppToC::Get(self)->TriggerMenu();
|
||||
}
|
||||
|
||||
cef_menu_button_t* CEF_CALLBACK menu_button_as_menu_button(
|
||||
struct _cef_label_button_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@@ -1186,6 +1197,7 @@ int CEF_CALLBACK menu_button_convert_point_from_view(struct _cef_view_t* self,
|
||||
|
||||
CefMenuButtonCppToC::CefMenuButtonCppToC() {
|
||||
GetStruct()->show_menu = menu_button_show_menu;
|
||||
GetStruct()->trigger_menu = menu_button_trigger_menu;
|
||||
GetStruct()->base.as_menu_button = menu_button_as_menu_button;
|
||||
GetStruct()->base.set_text = menu_button_set_text;
|
||||
GetStruct()->base.get_text = menu_button_get_text;
|
||||
|
@@ -64,6 +64,25 @@ void CEF_CALLBACK menu_button_delegate_on_button_pressed(
|
||||
CefButtonCToCpp::Wrap(button));
|
||||
}
|
||||
|
||||
void CEF_CALLBACK menu_button_delegate_on_button_state_changed(
|
||||
struct _cef_button_delegate_t* self, cef_button_t* button) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: button; type: refptr_diff
|
||||
DCHECK(button);
|
||||
if (!button)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefMenuButtonDelegateCppToC::Get(
|
||||
reinterpret_cast<cef_menu_button_delegate_t*>(
|
||||
self))->OnButtonStateChanged(
|
||||
CefButtonCToCpp::Wrap(button));
|
||||
}
|
||||
|
||||
cef_size_t CEF_CALLBACK menu_button_delegate_get_preferred_size(
|
||||
struct _cef_view_delegate_t* self, cef_view_t* view) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@@ -244,6 +263,8 @@ CefMenuButtonDelegateCppToC::CefMenuButtonDelegateCppToC() {
|
||||
GetStruct()->on_menu_button_pressed =
|
||||
menu_button_delegate_on_menu_button_pressed;
|
||||
GetStruct()->base.on_button_pressed = menu_button_delegate_on_button_pressed;
|
||||
GetStruct()->base.on_button_state_changed =
|
||||
menu_button_delegate_on_button_state_changed;
|
||||
GetStruct()->base.base.get_preferred_size =
|
||||
menu_button_delegate_get_preferred_size;
|
||||
GetStruct()->base.base.get_minimum_size =
|
||||
|
Reference in New Issue
Block a user