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