objc2_web_kit/generated/WKWebExtensionCommand.rs
1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-app-kit")]
7#[cfg(target_os = "macos")]
8use objc2_app_kit::*;
9use objc2_foundation::*;
10
11use crate::*;
12
13extern_class!(
14 /// A ``WKWebExtensionCommand`` object encapsulates the properties for an individual web extension command.
15 ///
16 /// Provides access to command properties such as a unique identifier, a descriptive title, and shortcut keys. Commands
17 /// can be used by a web extension to perform specific actions within a web extension context, such toggling features, or interacting with
18 /// web content. These commands enhance the functionality of the extension by allowing users to invoke actions quickly.
19 ///
20 /// See also [Apple's documentation](https://developer.apple.com/documentation/webkit/wkwebextensioncommand?language=objc)
21 #[unsafe(super(NSObject))]
22 #[thread_kind = MainThreadOnly]
23 #[derive(Debug, PartialEq, Eq, Hash)]
24 pub struct WKWebExtensionCommand;
25);
26
27extern_conformance!(
28 unsafe impl NSObjectProtocol for WKWebExtensionCommand {}
29);
30
31impl WKWebExtensionCommand {
32 extern_methods!(
33 #[unsafe(method(new))]
34 #[unsafe(method_family = new)]
35 pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
36
37 #[unsafe(method(init))]
38 #[unsafe(method_family = init)]
39 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
40
41 #[cfg(feature = "WKWebExtensionContext")]
42 /// The web extension context associated with the command.
43 #[unsafe(method(webExtensionContext))]
44 #[unsafe(method_family = none)]
45 pub unsafe fn webExtensionContext(&self) -> Option<Retained<WKWebExtensionContext>>;
46
47 /// A unique identifier for the command.
48 #[unsafe(method(identifier))]
49 #[unsafe(method_family = none)]
50 pub unsafe fn identifier(&self) -> Retained<NSString>;
51
52 /// Descriptive title for the command aiding discoverability.
53 ///
54 /// This title can be displayed in user interface elements such as keyboard shortcuts lists or menu items to help users understand its purpose.
55 #[unsafe(method(title))]
56 #[unsafe(method_family = none)]
57 pub unsafe fn title(&self) -> Retained<NSString>;
58
59 /// The primary key used to trigger the command, distinct from any modifier flags.
60 ///
61 /// This property can be customized within the app to avoid conflicts with existing shortcuts or to enable user personalization.
62 /// It should accurately represent the activation key as used by the app, which the extension can use to display the complete shortcut in its interface.
63 /// If no shortcut is desired for the command, the property should be set to `nil`. This value should be saved and restored as needed by the app.
64 #[unsafe(method(activationKey))]
65 #[unsafe(method_family = none)]
66 pub unsafe fn activationKey(&self) -> Option<Retained<NSString>>;
67
68 /// Setter for [`activationKey`][Self::activationKey].
69 ///
70 /// This is [copied][objc2_foundation::NSCopying::copy] when set.
71 #[unsafe(method(setActivationKey:))]
72 #[unsafe(method_family = none)]
73 pub unsafe fn setActivationKey(&self, activation_key: Option<&NSString>);
74
75 #[cfg(feature = "objc2-app-kit")]
76 #[cfg(target_os = "macos")]
77 #[unsafe(method(modifierFlags))]
78 #[unsafe(method_family = none)]
79 pub unsafe fn modifierFlags(&self) -> NSEventModifierFlags;
80
81 #[cfg(feature = "objc2-app-kit")]
82 #[cfg(target_os = "macos")]
83 /// Setter for [`modifierFlags`][Self::modifierFlags].
84 #[unsafe(method(setModifierFlags:))]
85 #[unsafe(method_family = none)]
86 pub unsafe fn setModifierFlags(&self, modifier_flags: NSEventModifierFlags);
87
88 #[cfg(feature = "objc2-app-kit")]
89 #[cfg(target_os = "macos")]
90 #[unsafe(method(menuItem))]
91 #[unsafe(method_family = none)]
92 pub unsafe fn menuItem(&self) -> Retained<NSMenuItem>;
93 );
94}