diff --git a/core/src/avm2/globals.rs b/core/src/avm2/globals.rs index d1b7d5ecf..49a1ad1ec 100644 --- a/core/src/avm2/globals.rs +++ b/core/src/avm2/globals.rs @@ -592,7 +592,6 @@ pub fn load_player_globals<'gc>( ); // package `flash.ui` - class(activation, flash::ui::mouse::create_class(mc), script)?; class(activation, flash::ui::keyboard::create_class(mc), script)?; // package `flash.net` diff --git a/core/src/avm2/globals/flash/ui/Mouse.as b/core/src/avm2/globals/flash/ui/Mouse.as new file mode 100644 index 000000000..70a079381 --- /dev/null +++ b/core/src/avm2/globals/flash/ui/Mouse.as @@ -0,0 +1,6 @@ +package flash.ui { + public final class Mouse { + public static native function hide(): void; + public static native function show(): void; + } +} diff --git a/core/src/avm2/globals/flash/ui/mouse.rs b/core/src/avm2/globals/flash/ui/mouse.rs index 8ecb3db9a..fa9a48cc0 100644 --- a/core/src/avm2/globals/flash/ui/mouse.rs +++ b/core/src/avm2/globals/flash/ui/mouse.rs @@ -1,33 +1,11 @@ //! `flash.ui.Mouse` builtin use crate::avm2::activation::Activation; -use crate::avm2::class::{Class, ClassAttributes}; -use crate::avm2::method::{Method, NativeMethodImpl}; use crate::avm2::object::Object; use crate::avm2::value::Value; use crate::avm2::Error; -use crate::avm2::Multiname; -use crate::avm2::Namespace; -use crate::avm2::QName; -use gc_arena::{GcCell, MutationContext}; -fn instance_init<'gc>( - _activation: &mut Activation<'_, 'gc, '_>, - _this: Option>, - _args: &[Value<'gc>], -) -> Result, Error<'gc>> { - Err("The Mouse class cannot be constructed.".into()) -} - -fn class_init<'gc>( - _activation: &mut Activation<'_, 'gc, '_>, - _this: Option>, - _args: &[Value<'gc>], -) -> Result, Error<'gc>> { - Ok(Value::Undefined) -} - -fn hide<'gc>( +pub fn hide<'gc>( activation: &mut Activation<'_, 'gc, '_>, _this: Option>, _args: &[Value<'gc>], @@ -36,7 +14,7 @@ fn hide<'gc>( Ok(Value::Undefined) } -fn show<'gc>( +pub fn show<'gc>( activation: &mut Activation<'_, 'gc, '_>, _this: Option>, _args: &[Value<'gc>], @@ -44,22 +22,3 @@ fn show<'gc>( activation.context.ui.set_mouse_visible(true); Ok(Value::Undefined) } - -pub fn create_class<'gc>(mc: MutationContext<'gc, '_>) -> GcCell<'gc, Class<'gc>> { - let class = Class::new( - QName::new(Namespace::package("flash.ui"), "Mouse"), - Some(Multiname::new(Namespace::package(""), "Object")), - Method::from_builtin(instance_init, "", mc), - Method::from_builtin(class_init, "", mc), - mc, - ); - - let mut write = class.write(mc); - - write.set_attributes(ClassAttributes::SEALED | ClassAttributes::FINAL); - - const PUBLIC_CLASS_METHODS: &[(&str, NativeMethodImpl)] = &[("show", show), ("hide", hide)]; - write.define_public_builtin_class_methods(mc, PUBLIC_CLASS_METHODS); - - class -} diff --git a/core/src/avm2/globals/globals.as b/core/src/avm2/globals/globals.as index a08756188..8b5a3a3a4 100644 --- a/core/src/avm2/globals/globals.as +++ b/core/src/avm2/globals/globals.as @@ -193,16 +193,20 @@ include "flash/text/TextFieldType.as" include "flash/text/TextFormatAlign.as" include "flash/text/TextInteractionMode.as" include "flash/text/TextLineMetrics.as" + include "flash/ui/ContextMenu.as" include "flash/ui/ContextMenuBuiltInItems.as" include "flash/ui/ContextMenuItem.as" include "flash/ui/GameInput.as" -include "flash/ui/KeyLocation.as" include "flash/ui/KeyboardType.as" +include "flash/ui/KeyLocation.as" +include "flash/ui/Mouse.as" include "flash/ui/MouseCursor.as" -// MultitouchInputMode needs to come before Multitouch, since Multitouch uses constants from MultitouchInputMode +// `MultitouchInputMode` needs to come before `Multitouch`, since `Multitouch` uses constants from +// `MultitouchInputMode`. include "flash/ui/MultitouchInputMode.as" include "flash/ui/Multitouch.as" + include "flash/utils.as" include "flash/utils/CompressionAlgorithm.as" include "flash/utils/Endian.as"