Revision
631
Author
lsansonetti@apple.com
Date
2008-09-26 21:43:26 -0700 (Fri, 26 Sep 2008)

Log Message

adding delegation

Modified Paths

Diff

Modified: MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_growl.rb (630 => 631)


--- MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_growl.rb	2008-09-27 01:06:35 UTC (rev 630)
+++ MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_growl.rb	2008-09-27 04:43:26 UTC (rev 631)
@@ -2,6 +2,8 @@
 
 class Growl
   include HotCocoa
+
+  attr_accessor :delegate
   
   GROWL_IS_READY = 'Lend Me Some Sugar; I Am Your Neighbor!'
   GROWL_NOTIFICATION_CLICKED = 'GrowlClicked!'
@@ -55,13 +57,17 @@
     end
 
     on_notification(:distributed => true, :named => "#{@app_name}-#{pid}-#{GROWL_NOTIFICATION_CLICKED}") do |n|
-      puts '@@@ on clicked'
-      puts n.userInfo[GROWL_CLICKED_CONTEXT_KEY][:user_click_context]
+      if @delegate and @delegate.respond_to?('growlNotifierClicked:context:')
+        ctx = n.userInfo[GROWL_CLICKED_CONTEXT_KEY][:user_click_context]
+        @delegate.growlNotifierClicked(self, context:ctx)
+      end
     end
 
     on_notification(:distributed => true, :named => "#{@app_name}-#{pid}-#{GROWL_NOTIFICATION_TIMED_OUT}") do |n|
-      puts '@@@ on timed out'
-      puts n.userInfo[GROWL_CLICKED_CONTEXT_KEY][:user_click_context]
+      if @delegate and @delegate.respond_to?('growlNotifierTimedOut:context:')
+        ctx = n.userInfo[GROWL_CLICKED_CONTEXT_KEY][:user_click_context]
+        @delegate.growlNotifierTimedOut(self, context:ctx)
+      end
     end
   
     dic = {

Modified: MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_sample.rb (630 => 631)


--- MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_sample.rb	2008-09-27 01:06:35 UTC (rev 630)
+++ MacRuby/trunk/sample-macruby/Scripts/growl/hotcocoa_sample.rb	2008-09-27 04:43:26 UTC (rev 631)
@@ -6,6 +6,7 @@
   def init
     if super
       @g = Growl.alloc.init
+      @g.delegate = self
       @g.register('GrowlSample', [HELLO_TYPE])
       @g.notify(HELLO_TYPE, 'Sticky', 'Hello world', :sticky => true, :click_context => Time.now.to_s)
       @g.notify(HELLO_TYPE, 'Timed out', 'Hello world', :click_context => Time.now.to_s)
@@ -14,12 +15,12 @@
     end
   end
 
-  def growlNotifierClicked_context(sender, context)
+  def growlNotifierClicked(sender, context:context)
     puts "Clicked: #{context}"
     checkCount
   end
 
-  def growlNotifierTimedOut_context(sender, context)
+  def growlNotifierTimedOut(sender, context:context)
     puts "Timed out: #{context}"
     checkCount
   end
@@ -30,5 +31,5 @@
   end
 end
 
-g = GrowlController.alloc.init
+g = GrowlController.new
 NSApp.run