require 'osx/cocoa'
include OSX
class App < NSObject
def applicationDidFinishLaunching aNotification
statusbar = NSStatusBar.systemStatusBar
item = statusbar.statusItemWithLength NSVariableStatusItemLength
image = NSImage.alloc.initWithContentsOfFile "Swirl.tiff"
item.setImage image
SpeechController.alloc.init.add_menu_to item
end
end
class SpeechController < NSObject
def init
super_init
@synthesizer = NSSpeechSynthesizer.alloc.init
self
end
def add_menu_to container
menu = NSMenu.alloc.init
container.setMenu menu
item = menu.addItemWithTitle_action_keyEquivalent "Speak", "speak", ''
item.setTarget self
item = menu.addItemWithTitle_action_keyEquivalent "Quit", "quit", 'q'
item.setKeyEquivalentModifierMask NSCommandKeyMask
item.setTarget self
#item.setTarget NSApp
end
def speak sender
@synthesizer.startSpeakingString "I have a lot to say."
end
def quit sender
@synthesizer.startSpeakingString "I have nothing more to say."
end
end
OSX::NSApplication.sharedApplication
NSApp.setDelegate(App.alloc.init)
OSX::NSApp.run
Ruby Cocoa podcast.
Wikipedia article on Objective-C.
Ruby-Cocoa at sourceforge project.
Ruby Cocoa Resources. Beautiful applications. Beautiful code.