[macruby-changes] [500] MacRuby/trunk/sample-macruby/HotCocoa/demo/lib/views/collection_view. rb
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 27 18:46:39 PDT 2008
Revision: 500
http://trac.macosforge.org/projects/ruby/changeset/500
Author: rich at infoether.com
Date: 2008-08-27 18:46:39 -0700 (Wed, 27 Aug 2008)
Log Message:
-----------
added collection view
Added Paths:
-----------
MacRuby/trunk/sample-macruby/HotCocoa/demo/lib/views/collection_view.rb
Added: MacRuby/trunk/sample-macruby/HotCocoa/demo/lib/views/collection_view.rb
===================================================================
--- MacRuby/trunk/sample-macruby/HotCocoa/demo/lib/views/collection_view.rb (rev 0)
+++ MacRuby/trunk/sample-macruby/HotCocoa/demo/lib/views/collection_view.rb 2008-08-28 01:46:39 UTC (rev 500)
@@ -0,0 +1,68 @@
+class CollectionView
+
+ class Icon
+ attr_accessor :name, :image
+ def initialize(name, image)
+ @name = name
+ @image = image
+ end
+ end
+
+ class MyIconView < NSView
+
+ include HotCocoa::Behaviors
+
+ def self.create
+ view = alloc.initWithFrame([0,0,60,60])
+ view.create_subviews
+ view
+ end
+
+ attr_reader :image
+
+ def collection_item=(item)
+ image.bind "value", toObject:item, withKeyPath:"representedObject.image", options:nil
+ image.bind "toolTip", toObject:item, withKeyPath:"representedObject.name", options:nil
+ end
+
+ def create_subviews
+ @image = image_view :frame => [0,0,60,60]
+ addSubview(image)
+ end
+
+ def hitTest(point)
+ nil
+ end
+
+ end
+
+ def self.description
+ "Collection Views"
+ end
+
+ def self.icon_image
+ image(:named => 'rich.jpg') || image(:file => File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "resources", "rich.jpg")))
+ end
+
+ def self.create
+ @icons = array_controller :for => (1..100).collect { |i| Icon.new("Rich #{i}", icon_image) },
+ :avoids_empty_selection => true,
+ :preserves_selection => false,
+ :selects_inserted => false,
+ :rearrange_automatically => true,
+ :sort_by => {:name => :ascending}
+
+ layout_view :frame => [0, 0, 0, 0], :layout => {:expand => [:width, :height]}, :margin => 0, :spacing => 0 do |view|
+ view << scroll_view(:layout => {:expand => [:width, :height]}) do |scroll|
+ cv = collection_view :content => {@icons => "arrangedObjects"},
+ :selection_indexes => {@icons => "selectionIndexes"},
+ :item_view => MyIconView.create,
+ :map_bindings => true
+ scroll << cv
+ end
+ end
+ end
+
+ DemoApplication.register(self)
+
+end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080827/cd300385/attachment.html
More information about the macruby-changes
mailing list