Revision: 467 http://trac.macosforge.org/projects/ruby/changeset/467 Author: lsansonetti@apple.com Date: 2008-08-21 21:32:09 -0700 (Thu, 21 Aug 2008) Log Message: ----------- adding status_bar example with mappings for status bar, item and speech synthesizer Added Paths: ----------- MacRuby/trunk/lib/hotcocoa/mappings/speech_synthesizer.rb MacRuby/trunk/lib/hotcocoa/mappings/status_bar.rb MacRuby/trunk/lib/hotcocoa/mappings/status_item.rb MacRuby/trunk/sample-macruby/HotCocoa/status_bar.rb Added: MacRuby/trunk/lib/hotcocoa/mappings/speech_synthesizer.rb =================================================================== --- MacRuby/trunk/lib/hotcocoa/mappings/speech_synthesizer.rb (rev 0) +++ MacRuby/trunk/lib/hotcocoa/mappings/speech_synthesizer.rb 2008-08-22 04:32:09 UTC (rev 467) @@ -0,0 +1,25 @@ +HotCocoa::Mappings.map :speech_synthesizer => :NSSpeechSynthesizer do + + def init_with_options(obj, options) + if voice = options.delete(:voice) + obj.initWithVoice voice + else + obj.init + end + end + + custom_methods do + + def speak(what, to=nil) + if to + url = to.is_a?(String) ? NSURL.fileURLWithPath(to) : to + startSpeakingString(what, toURL:url) + else + startSpeakingString(what) + end + end + + end + +end + Added: MacRuby/trunk/lib/hotcocoa/mappings/status_bar.rb =================================================================== --- MacRuby/trunk/lib/hotcocoa/mappings/status_bar.rb (rev 0) +++ MacRuby/trunk/lib/hotcocoa/mappings/status_bar.rb 2008-08-22 04:32:09 UTC (rev 467) @@ -0,0 +1,7 @@ +HotCocoa::Mappings.map :status_bar => :NSStatusBar do + + def alloc_with_options(options) + NSStatusBar.systemStatusBar + end + +end Added: MacRuby/trunk/lib/hotcocoa/mappings/status_item.rb =================================================================== --- MacRuby/trunk/lib/hotcocoa/mappings/status_item.rb (rev 0) +++ MacRuby/trunk/lib/hotcocoa/mappings/status_item.rb 2008-08-22 04:32:09 UTC (rev 467) @@ -0,0 +1,9 @@ +HotCocoa::Mappings.map :status_item => :NSStatusItem do + + defaults :length => NSVariableStatusItemLength + + def alloc_with_options(options) + status_bar.statusItemWithLength options.delete(:length) + end + +end Added: MacRuby/trunk/sample-macruby/HotCocoa/status_bar.rb =================================================================== --- MacRuby/trunk/sample-macruby/HotCocoa/status_bar.rb (rev 0) +++ MacRuby/trunk/sample-macruby/HotCocoa/status_bar.rb 2008-08-22 04:32:09 UTC (rev 467) @@ -0,0 +1,12 @@ +require 'hotcocoa' +include HotCocoa + +application :name => 'Speak or Quit' do + m = menu do |main| + main.item :speak, + :on_action => proc { speech_synthesizer.speak('I have a lot to say.') } + main.item :quit, :key => 'q', :modifiers => [:command], + :on_action => proc { speech_synthesizer.speak('I have nothing more to say.') } + end + status_item :title => 'Speak or Quit', :menu => m +end
participants (1)
-
source_changes@macosforge.org