core: Pass UpdateContext to ContextMenuState::build_builtin_items
This simplifies code, as we do not have to access the same elements over and over.
This commit is contained in:
parent
2955add845
commit
1f3c230691
|
@ -186,11 +186,7 @@ pub fn make_context_menu_state<'gc>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result.build_builtin_items(
|
result.build_builtin_items(builtin_items, &mut activation.context);
|
||||||
builtin_items,
|
|
||||||
activation.context.stage,
|
|
||||||
&activation.context.ui.language(),
|
|
||||||
);
|
|
||||||
|
|
||||||
if let Some(menu) = menu {
|
if let Some(menu) = menu {
|
||||||
if let Ok(Value::Object(custom_items)) = menu.get("customItems", activation) {
|
if let Ok(Value::Object(custom_items)) = menu.get("customItems", activation) {
|
||||||
|
|
|
@ -66,11 +66,7 @@ pub fn make_context_menu_state<'gc>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result.build_builtin_items(
|
result.build_builtin_items(builtin_items, &mut activation.context);
|
||||||
builtin_items,
|
|
||||||
activation.context.stage,
|
|
||||||
&activation.context.ui.language(),
|
|
||||||
);
|
|
||||||
|
|
||||||
if let Some(menu) = menu {
|
if let Some(menu) = menu {
|
||||||
if let Ok(Value::Object(custom_items)) = menu.get_public_property("customItems", activation)
|
if let Ok(Value::Object(custom_items)) = menu.get_public_property("customItems", activation)
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
use crate::avm1;
|
use crate::avm1;
|
||||||
use crate::avm2;
|
use crate::avm2;
|
||||||
|
use crate::context::UpdateContext;
|
||||||
use crate::display_object::Stage;
|
use crate::display_object::Stage;
|
||||||
use crate::display_object::TDisplayObject;
|
use crate::display_object::TDisplayObject;
|
||||||
use crate::i18n::core_text;
|
use crate::i18n::core_text;
|
||||||
use fluent_templates::LanguageIdentifier;
|
|
||||||
use gc_arena::Collect;
|
use gc_arena::Collect;
|
||||||
use ruffle_render::quality::StageQuality;
|
use ruffle_render::quality::StageQuality;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
@ -26,22 +26,28 @@ impl<'gc> ContextMenuState<'gc> {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self::default()
|
Self::default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn push(&mut self, item: ContextMenuItem, callback: ContextMenuCallback<'gc>) {
|
pub fn push(&mut self, item: ContextMenuItem, callback: ContextMenuCallback<'gc>) {
|
||||||
self.info.push(item);
|
self.info.push(item);
|
||||||
self.callbacks.push(callback);
|
self.callbacks.push(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn info(&self) -> &Vec<ContextMenuItem> {
|
pub fn info(&self) -> &Vec<ContextMenuItem> {
|
||||||
&self.info
|
&self.info
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn callback(&self, index: usize) -> &ContextMenuCallback<'gc> {
|
pub fn callback(&self, index: usize) -> &ContextMenuCallback<'gc> {
|
||||||
&self.callbacks[index]
|
&self.callbacks[index]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build_builtin_items(
|
pub fn build_builtin_items(
|
||||||
&mut self,
|
&mut self,
|
||||||
item_flags: BuiltInItemFlags,
|
item_flags: BuiltInItemFlags,
|
||||||
stage: Stage<'gc>,
|
context: &mut UpdateContext<'_, 'gc>,
|
||||||
language: &LanguageIdentifier,
|
|
||||||
) {
|
) {
|
||||||
|
let stage = context.stage;
|
||||||
|
let language = &context.ui.language();
|
||||||
|
|
||||||
let Some(root_mc) = stage.root_clip().and_then(|c| c.as_movie_clip()) else {
|
let Some(root_mc) = stage.root_clip().and_then(|c| c.as_movie_clip()) else {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
|
@ -602,7 +602,7 @@ impl Player {
|
||||||
// no AVM1 or AVM2 object - so just prepare the builtin items
|
// no AVM1 or AVM2 object - so just prepare the builtin items
|
||||||
let mut menu = ContextMenuState::new();
|
let mut menu = ContextMenuState::new();
|
||||||
let builtin_items = BuiltInItemFlags::for_stage(context.stage);
|
let builtin_items = BuiltInItemFlags::for_stage(context.stage);
|
||||||
menu.build_builtin_items(builtin_items, context.stage, &context.ui.language());
|
menu.build_builtin_items(builtin_items, context);
|
||||||
menu
|
menu
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue