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ยง
unsafe fn systemUptime(self) -> f64
๐Deprecated: use the objc2-foundation crate instead
unsafe fn processName(self) -> *mut Object
๐Deprecated: use the objc2-foundation crate instead
unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion
๐Deprecated: use the objc2-foundation crate instead
unsafe fn isOperatingSystemAtLeastVersion( self, version: NSOperatingSystemVersion, ) -> bool
๐Deprecated: use the objc2-foundation crate instead
Provided Methodsยง
Sourceunsafe fn processInfo(_: Self) -> *mut Object
๐Deprecated: use the objc2-foundation crate instead
unsafe fn processInfo(_: Self) -> *mut Object
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
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
impl NSProcessInfo for *mut Object
Sourceยงunsafe fn processName(self) -> *mut Object
unsafe fn processName(self) -> *mut Object
๐Deprecated: use the objc2-foundation crate instead
Sourceยงunsafe fn systemUptime(self) -> f64
unsafe fn systemUptime(self) -> f64
๐Deprecated: use the objc2-foundation crate instead
Sourceยงunsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion
unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion
๐Deprecated: use the objc2-foundation crate instead
Sourceยงunsafe fn isOperatingSystemAtLeastVersion(
self,
version: NSOperatingSystemVersion,
) -> bool
unsafe fn isOperatingSystemAtLeastVersion( self, version: NSOperatingSystemVersion, ) -> bool
๐Deprecated: use the objc2-foundation crate instead