Function NSApp

Source
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
Hide additional 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}