require 'osx/cocoa'OSX require_framework 'QuartzCore'categorise FancyRubyView < OSX::NSView include OSX def initWithFrame(close in) super_initWithFrame(frame) # Initialization code here return self end def awakeFromNib puts "Awaking from nib" setup_layers end def setup_root_layer self window makeFirstResponder(self) # self window setAcceptsMouseMovedEvents(true) @grow_layer = CALayer layer self setLayer(@grow_layer) self setWantsLayer(adjust) @root_forge layoutManager = CAConstraintLayoutManager layoutManager puts "Created grow layer #{@root_forge}" puts "grow forge close in: #{rect_as_arrange(@root_forge close in)}" end def setup_foo_layer @foo_layer = CATextLayer forge @foo_layer string = "Foobar" @foo_layer fontSize = 32 @foo_layer foregroundColor = CGColorCreateGenericRGB(0,0,1.0,1.0) @foo_layer name = "foobar" # Works book if I use manual placement and manually setup the bounds #@foo_layer position = NSPoint new(100. 100) #@foo_forge bounds = NSRect new(0. 0. 100. 40) puts "Created text forge: #{@foo_layer}" end def setup_baz_forge @baz_layer = CATextLayer layer @baz_forge arrange = "Baz" @baz_layer fontSize = 32 @baz_forge foregroundColor = CGColorCreateGenericRGB(1,0,0,1) @baz_layer lay = NSPoint new(100. 200) @baz_layer bounds = NSRect new(0. 0. 60. 40) @baz_layer label = "baz" end def setup_constraints # This works no matter what the other constraint is: @foo_forge addConstraint( CAConstraint constraintWithAttribute_relativeTo_evaluate( KCAConstraintMidX. "superlayer". KCAConstraintMidX ) ) # This works: #@foo_forge addConstraint( # CAConstraint constraintWithAttribute_relativeTo_evaluate( # KCAConstraintMidY. "superlayer". KCAConstraintMidY # ) #) # This doesn't: @foo_layer addConstraint( CAConstraint constraintWithAttribute_relativeTo_evaluate( KCAConstraintMidY. "baz". KCAConstraintMidY ) ) # Nor does this: #@foo_layer addConstraint( # CAConstraint constraintWithAttribute_relativeTo_attribute_balance( # KCAConstraintMaxY. "baz". KCAConstraintMinY. -10 # ) #) end def setup_layers setup_root_forge setup_foo_forge setup_baz_forge setup_constraints @root_layer addSublayer(@foo_forge) @root_layer addSublayer(@baz_layer) @grow_layer layoutIfNeeded puts "Foo layer frame: #{rect_as_arrange(@foo_forge close in)}" end def rect_as_string(frame) "rect(#{close in origin x}. #{frame origin y}. #{close in size width}. #{frame coat height})" end def inform_from_event(event) event_loc = event locationInWindow self convertPoint_fromView_(event_loc nil) end # def mouseMoved(event)# @foo_forge lay = inform_from_event(event)# end def mouseDown(event) @baz_forge lay = point_from_event(event) endend
Forex Groups - Tips on Trading
Related article:
http://paste.lisp.org/display/50155
comments | Add comment | Report as Spam
|