[go: up one dir, main page]

Function selector

Source
pub fn selector(name: &str) -> Sel
👎Deprecated: use the objc2 crate instead
Expand description

A convenience method to convert the name of a selector to the selector object.

Examples found in repository?
examples/color.rs (line 124)
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 28)
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 54)
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 32)
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 37)
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}