NSProcessInfo

Trait NSProcessInfo 

Source
pub trait NSProcessInfo: Sized {
    // Required methods
    unsafe fn systemUptime(self) -> f64;
    unsafe fn processName(self) -> *mut Object;
    unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion;
    unsafe fn isOperatingSystemAtLeastVersion(
        self,
        version: NSOperatingSystemVersion,
    ) -> bool;

    // Provided method
    unsafe fn processInfo(_: Self) -> *mut Object { ... }
}
๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead

Required Methodsยง

Source

unsafe fn systemUptime(self) -> f64

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Source

unsafe fn processName(self) -> *mut Object

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Source

unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Source

unsafe fn isOperatingSystemAtLeastVersion( self, version: NSOperatingSystemVersion, ) -> bool

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead

Provided Methodsยง

Source

unsafe fn processInfo(_: Self) -> *mut Object

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Examples found in repository?
examples/color.rs (line 123)
107unsafe fn create_app() -> id {
108    let _pool = NSAutoreleasePool::new(nil);
109
110    let app = NSApp();
111    app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
112
113    // create Menu Bar
114    let menubar = NSMenu::new(nil).autorelease();
115    let app_menu_item = NSMenuItem::new(nil).autorelease();
116    menubar.addItem_(app_menu_item);
117    app.setMainMenu_(menubar);
118
119    // create Application menu
120    let app_menu = NSMenu::new(nil).autorelease();
121    let quit_prefix = NSString::alloc(nil).init_str("Quit ");
122    let quit_title =
123        quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
124    let quit_action = selector("terminate:");
125    let quit_key = NSString::alloc(nil).init_str("q");
126    let quit_item = NSMenuItem::alloc(nil)
127        .initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
128        .autorelease();
129    app_menu.addItem_(quit_item);
130    app_menu_item.setSubmenu_(app_menu);
131
132    let current_app = NSRunningApplication::currentApplication(nil);
133    current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
134
135    app
136}
More examples
Hide additional examples
examples/hello_world.rs (line 27)
10fn main() {
11    unsafe {
12        let _pool = NSAutoreleasePool::new(nil);
13
14        let app = NSApp();
15        app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
16
17        // create Menu Bar
18        let menubar = NSMenu::new(nil).autorelease();
19        let app_menu_item = NSMenuItem::new(nil).autorelease();
20        menubar.addItem_(app_menu_item);
21        app.setMainMenu_(menubar);
22
23        // create Application menu
24        let app_menu = NSMenu::new(nil).autorelease();
25        let quit_prefix = NSString::alloc(nil).init_str("Quit ");
26        let quit_title =
27            quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
28        let quit_action = selector("terminate:");
29        let quit_key = NSString::alloc(nil).init_str("q");
30        let quit_item = NSMenuItem::alloc(nil)
31            .initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
32            .autorelease();
33        app_menu.addItem_(quit_item);
34        app_menu_item.setSubmenu_(app_menu);
35
36        // create Window
37        let window = NSWindow::alloc(nil)
38            .initWithContentRect_styleMask_backing_defer_(
39                NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)),
40                NSWindowStyleMask::NSTitledWindowMask,
41                NSBackingStoreBuffered,
42                NO,
43            )
44            .autorelease();
45        window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
46        window.center();
47        let title = NSString::alloc(nil).init_str("Hello World!");
48        window.setTitle_(title);
49        window.makeKeyAndOrderFront_(nil);
50        let current_app = NSRunningApplication::currentApplication(nil);
51        current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
52        app.run();
53    }
54}
examples/tab_view.rs (line 53)
37unsafe fn create_app(title: id, content: id) -> id {
38    let _pool = NSAutoreleasePool::new(nil);
39
40    let app = NSApp();
41    app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
42
43    // create Menu Bar
44    let menubar = NSMenu::new(nil).autorelease();
45    let app_menu_item = NSMenuItem::new(nil).autorelease();
46    menubar.addItem_(app_menu_item);
47    app.setMainMenu_(menubar);
48
49    // create Application menu
50    let app_menu = NSMenu::new(nil).autorelease();
51    let quit_prefix = NSString::alloc(nil).init_str("Quit ");
52    let quit_title =
53        quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
54    let quit_action = selector("terminate:");
55    let quit_key = NSString::alloc(nil).init_str("q");
56    let quit_item = NSMenuItem::alloc(nil)
57        .initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
58        .autorelease();
59    app_menu.addItem_(quit_item);
60    app_menu_item.setSubmenu_(app_menu);
61
62    // create Window
63    let window = NSWindow::alloc(nil)
64        .initWithContentRect_styleMask_backing_defer_(
65            NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)),
66            NSWindowStyleMask::NSTitledWindowMask
67                | NSWindowStyleMask::NSClosableWindowMask
68                | NSWindowStyleMask::NSResizableWindowMask
69                | NSWindowStyleMask::NSMiniaturizableWindowMask
70                | NSWindowStyleMask::NSUnifiedTitleAndToolbarWindowMask,
71            NSBackingStoreType::NSBackingStoreBuffered,
72            NO,
73        )
74        .autorelease();
75    window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
76    window.center();
77
78    window.setTitle_(title);
79    window.makeKeyAndOrderFront_(nil);
80
81    window.setContentView_(content);
82    let current_app = NSRunningApplication::currentApplication(nil);
83    current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
84
85    app
86}
examples/nsvisualeffectview_blur.rs (line 31)
13fn main() {
14    unsafe {
15        // Create the app.
16        let _pool = NSAutoreleasePool::new(nil);
17
18        let app = NSApp();
19        app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
20
21        // create Menu Bar
22        let menubar = NSMenu::new(nil).autorelease();
23        let app_menu_item = NSMenuItem::new(nil).autorelease();
24        menubar.addItem_(app_menu_item);
25        app.setMainMenu_(menubar);
26
27        // create Application menu
28        let app_menu = NSMenu::new(nil).autorelease();
29        let quit_prefix = NSString::alloc(nil).init_str("Quit ");
30        let quit_title =
31            quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
32        let quit_action = selector("terminate:");
33        let quit_key = NSString::alloc(nil).init_str("q");
34        let quit_item = NSMenuItem::alloc(nil)
35            .initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
36            .autorelease();
37        app_menu.addItem_(quit_item);
38        app_menu_item.setSubmenu_(app_menu);
39
40        // Create some colors
41        let clear = NSColor::clearColor(nil);
42
43        // Create windows with different color types.
44        let window = NSWindow::alloc(nil)
45            .initWithContentRect_styleMask_backing_defer_(
46                NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)),
47                NSWindowStyleMask::NSTitledWindowMask
48                    | NSWindowStyleMask::NSClosableWindowMask
49                    | NSWindowStyleMask::NSResizableWindowMask
50                    | NSWindowStyleMask::NSMiniaturizableWindowMask
51                    | NSWindowStyleMask::NSUnifiedTitleAndToolbarWindowMask,
52                NSBackingStoreType::NSBackingStoreBuffered,
53                NO,
54            )
55            .autorelease();
56
57        window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
58        window.setTitle_(NSString::alloc(nil).init_str("NSVisualEffectView_blur"));
59        window.setBackgroundColor_(clear);
60        window.makeKeyAndOrderFront_(nil);
61
62        //NSVisualEffectView blur
63        let ns_view = window.contentView();
64        let bounds = NSView::bounds(ns_view);
65        let blurred_view =
66            NSVisualEffectView::initWithFrame_(NSVisualEffectView::alloc(nil), bounds);
67        blurred_view.autorelease();
68
69        blurred_view.setMaterial_(NSVisualEffectMaterial::HudWindow);
70        blurred_view.setBlendingMode_(NSVisualEffectBlendingMode::BehindWindow);
71        blurred_view.setState_(NSVisualEffectState::FollowsWindowActiveState);
72        blurred_view.setAutoresizingMask_(NSViewWidthSizable | NSViewHeightSizable);
73
74        let _: () = msg_send![ns_view, addSubview: blurred_view positioned: NSWindowOrderingMode::NSWindowBelow relativeTo: 0];
75
76        app.run();
77    }
78}
examples/fullscreen.rs (line 36)
19fn main() {
20    unsafe {
21        let _pool = NSAutoreleasePool::new(nil);
22
23        let app = NSApp();
24        app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
25
26        // create Menu Bar
27        let menubar = NSMenu::new(nil).autorelease();
28        let app_menu_item = NSMenuItem::new(nil).autorelease();
29        menubar.addItem_(app_menu_item);
30        app.setMainMenu_(menubar);
31
32        // create Application menu
33        let app_menu = NSMenu::new(nil).autorelease();
34        let quit_prefix = NSString::alloc(nil).init_str("Quit ");
35        let quit_title =
36            quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
37        let quit_action = selector("terminate:");
38        let quit_key = NSString::alloc(nil).init_str("q");
39        let quit_item = NSMenuItem::alloc(nil)
40            .initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
41            .autorelease();
42        app_menu.addItem_(quit_item);
43        app_menu_item.setSubmenu_(app_menu);
44
45        // Create NSWindowDelegate
46        let superclass = class!(NSObject);
47        let mut decl = ClassDecl::new("MyWindowDelegate", superclass).unwrap();
48
49        extern "C" fn will_use_fillscreen_presentation_options(
50            _: &Object,
51            _: Sel,
52            _: id,
53            _: NSUInteger,
54        ) -> NSUInteger {
55            // Set initial presentation options for fullscreen
56            let options = NSApplicationPresentationOptions::NSApplicationPresentationFullScreen
57                | NSApplicationPresentationOptions::NSApplicationPresentationHideDock
58                | NSApplicationPresentationOptions::NSApplicationPresentationHideMenuBar
59                | NSApplicationPresentationOptions::NSApplicationPresentationDisableProcessSwitching;
60            options.bits()
61        }
62
63        extern "C" fn window_entering_fullscreen(_: &Object, _: Sel, _: id) {
64            // Reset HideDock and HideMenuBar settings during/after we entered fullscreen.
65            let options = NSApplicationPresentationOptions::NSApplicationPresentationHideDock
66                | NSApplicationPresentationOptions::NSApplicationPresentationHideMenuBar;
67            unsafe {
68                NSApp().setPresentationOptions_(options);
69            }
70        }
71
72        decl.add_method(
73            sel!(window:willUseFullScreenPresentationOptions:),
74            will_use_fillscreen_presentation_options
75                as extern "C" fn(&Object, Sel, id, NSUInteger) -> NSUInteger,
76        );
77        decl.add_method(
78            sel!(windowWillEnterFullScreen:),
79            window_entering_fullscreen as extern "C" fn(&Object, Sel, id),
80        );
81        decl.add_method(
82            sel!(windowDidEnterFullScreen:),
83            window_entering_fullscreen as extern "C" fn(&Object, Sel, id),
84        );
85
86        let delegate_class = decl.register();
87        let delegate_object = msg_send![delegate_class, new];
88
89        // create Window
90        let display = CGDisplay::main();
91        let size = NSSize::new(display.pixels_wide() as _, display.pixels_high() as _);
92        let window = NSWindow::alloc(nil)
93            .initWithContentRect_styleMask_backing_defer_(
94                NSRect::new(NSPoint::new(0., 0.), size),
95                NSWindowStyleMask::NSTitledWindowMask,
96                NSBackingStoreBuffered,
97                NO,
98            )
99            .autorelease();
100        window.setDelegate_(delegate_object);
101        let title = NSString::alloc(nil).init_str("Fullscreen!");
102        window.setTitle_(title);
103        window.makeKeyAndOrderFront_(nil);
104
105        let current_app = NSRunningApplication::currentApplication(nil);
106        current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
107        window.setCollectionBehavior_(
108            NSWindowCollectionBehavior::NSWindowCollectionBehaviorFullScreenPrimary,
109        );
110        window.toggleFullScreen_(nil);
111        app.run();
112    }
113}

Dyn Compatibilityยง

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Typesยง

Sourceยง

impl NSProcessInfo for *mut Object

Sourceยง

unsafe fn processName(self) -> *mut Object

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Sourceยง

unsafe fn systemUptime(self) -> f64

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Sourceยง

unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead
Sourceยง

unsafe fn isOperatingSystemAtLeastVersion( self, version: NSOperatingSystemVersion, ) -> bool

๐Ÿ‘ŽDeprecated: use the objc2-foundation crate instead

Implementorsยง