objc2_web_kit/generated/
WKWebpagePreferences.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
7use crate::*;
8
9/// A content mode represents the type of content to load, as well as
10/// additional layout and rendering adaptations that are applied as a result of
11/// loading the content
12///
13///
14///
15///
16/// WKContentModeRecommended behaves like WKContentModeMobile on iPhone and iPad mini
17/// and WKContentModeDesktop on other iPad models as well as Mac.
18///
19/// See also [Apple's documentation](https://developer.apple.com/documentation/webkit/wkcontentmode?language=objc)
20// NS_ENUM
21#[repr(transparent)]
22#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
23pub struct WKContentMode(pub NSInteger);
24impl WKContentMode {
25    #[doc(alias = "WKContentModeRecommended")]
26    pub const Recommended: Self = Self(0);
27    #[doc(alias = "WKContentModeMobile")]
28    pub const Mobile: Self = Self(1);
29    #[doc(alias = "WKContentModeDesktop")]
30    pub const Desktop: Self = Self(2);
31}
32
33unsafe impl Encode for WKContentMode {
34    const ENCODING: Encoding = NSInteger::ENCODING;
35}
36
37unsafe impl RefEncode for WKContentMode {
38    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
39}
40
41/// A secure navigation policy represents whether or not there is a
42/// preference for loading a webpage with https, and how failures should be
43/// handled.
44///
45/// See also [Apple's documentation](https://developer.apple.com/documentation/webkit/wkwebpagepreferencesupgradetohttpspolicy?language=objc)
46// NS_ENUM
47#[repr(transparent)]
48#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
49pub struct WKWebpagePreferencesUpgradeToHTTPSPolicy(pub NSInteger);
50impl WKWebpagePreferencesUpgradeToHTTPSPolicy {
51    #[doc(alias = "WKWebpagePreferencesUpgradeToHTTPSPolicyKeepAsRequested")]
52    pub const KeepAsRequested: Self = Self(0);
53    #[doc(alias = "WKWebpagePreferencesUpgradeToHTTPSPolicyAutomaticFallbackToHTTP")]
54    pub const AutomaticFallbackToHTTP: Self = Self(1);
55    #[doc(alias = "WKWebpagePreferencesUpgradeToHTTPSPolicyUserMediatedFallbackToHTTP")]
56    pub const UserMediatedFallbackToHTTP: Self = Self(2);
57    #[doc(alias = "WKWebpagePreferencesUpgradeToHTTPSPolicyErrorOnFailure")]
58    pub const ErrorOnFailure: Self = Self(3);
59}
60
61unsafe impl Encode for WKWebpagePreferencesUpgradeToHTTPSPolicy {
62    const ENCODING: Encoding = NSInteger::ENCODING;
63}
64
65unsafe impl RefEncode for WKWebpagePreferencesUpgradeToHTTPSPolicy {
66    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
67}
68
69extern_class!(
70    /// A WKWebpagePreferences object is a collection of properties that
71    /// determine the preferences to use when loading and rendering a page.
72    ///
73    /// Contains properties used to determine webpage preferences.
74    ///
75    /// See also [Apple's documentation](https://developer.apple.com/documentation/webkit/wkwebpagepreferences?language=objc)
76    #[unsafe(super(NSObject))]
77    #[thread_kind = MainThreadOnly]
78    #[derive(Debug, PartialEq, Eq, Hash)]
79    pub struct WKWebpagePreferences;
80);
81
82unsafe impl NSObjectProtocol for WKWebpagePreferences {}
83
84impl WKWebpagePreferences {
85    extern_methods!(
86        /// A WKContentMode indicating the content mode to prefer
87        /// when loading and rendering a webpage.
88        ///
89        /// The default value is WKContentModeRecommended. The stated
90        /// preference is ignored on subframe navigation
91        #[unsafe(method(preferredContentMode))]
92        #[unsafe(method_family = none)]
93        pub unsafe fn preferredContentMode(&self) -> WKContentMode;
94
95        /// Setter for [`preferredContentMode`][Self::preferredContentMode].
96        #[unsafe(method(setPreferredContentMode:))]
97        #[unsafe(method_family = none)]
98        pub unsafe fn setPreferredContentMode(&self, preferred_content_mode: WKContentMode);
99
100        #[unsafe(method(allowsContentJavaScript))]
101        #[unsafe(method_family = none)]
102        pub unsafe fn allowsContentJavaScript(&self) -> bool;
103
104        /// Setter for [`allowsContentJavaScript`][Self::allowsContentJavaScript].
105        #[unsafe(method(setAllowsContentJavaScript:))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn setAllowsContentJavaScript(&self, allows_content_java_script: bool);
108
109        /// A boolean indicating whether lockdown mode is enabled.
110        ///
111        /// This mode trades off performance and compatibility in favor of security.
112        /// The default value depends on the system setting.
113        #[unsafe(method(isLockdownModeEnabled))]
114        #[unsafe(method_family = none)]
115        pub unsafe fn isLockdownModeEnabled(&self) -> bool;
116
117        /// Setter for [`isLockdownModeEnabled`][Self::isLockdownModeEnabled].
118        #[unsafe(method(setLockdownModeEnabled:))]
119        #[unsafe(method_family = none)]
120        pub unsafe fn setLockdownModeEnabled(&self, lockdown_mode_enabled: bool);
121
122        /// A WKWebpagePreferencesUpgradeToHTTPSPolicy indicating the desired mode
123        /// used when performing a top-level navigation to a webpage.
124        ///
125        /// The default value is WKWebpagePreferencesUpgradeToHTTPSPolicyKeepAsRequested.
126        /// The stated preference is ignored on subframe navigation, and it may be ignored based on
127        /// system configuration. The upgradeKnownHostsToHTTPS property on WKWebViewConfiguration
128        /// supercedes this policy for known hosts.
129        #[unsafe(method(preferredHTTPSNavigationPolicy))]
130        #[unsafe(method_family = none)]
131        pub unsafe fn preferredHTTPSNavigationPolicy(
132            &self,
133        ) -> WKWebpagePreferencesUpgradeToHTTPSPolicy;
134
135        /// Setter for [`preferredHTTPSNavigationPolicy`][Self::preferredHTTPSNavigationPolicy].
136        #[unsafe(method(setPreferredHTTPSNavigationPolicy:))]
137        #[unsafe(method_family = none)]
138        pub unsafe fn setPreferredHTTPSNavigationPolicy(
139            &self,
140            preferred_https_navigation_policy: WKWebpagePreferencesUpgradeToHTTPSPolicy,
141        );
142    );
143}
144
145/// Methods declared on superclass `NSObject`.
146impl WKWebpagePreferences {
147    extern_methods!(
148        #[unsafe(method(init))]
149        #[unsafe(method_family = init)]
150        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
151
152        #[unsafe(method(new))]
153        #[unsafe(method_family = new)]
154        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
155    );
156}