hello_world/
hello_world.rs1#![allow(deprecated)] use cocoa::appkit::{
3 NSApp, NSApplication, NSApplicationActivateIgnoringOtherApps,
4 NSApplicationActivationPolicyRegular, NSBackingStoreBuffered, NSMenu, NSMenuItem,
5 NSRunningApplication, NSWindow, NSWindowStyleMask,
6};
7use cocoa::base::{nil, selector, NO};
8use cocoa::foundation::{NSAutoreleasePool, NSPoint, NSProcessInfo, NSRect, NSSize, NSString};
9
10fn main() {
11 unsafe {
12 let _pool = NSAutoreleasePool::new(nil);
13
14 let app = NSApp();
15 app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
16
17 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 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 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}