Class: MotionKit::SizeConstraint
Constant Summary
Constants inherited
from Constraint
Constraint::Attributes, Constraint::Priorities, Constraint::Relationships
Instance Attribute Summary
Attributes inherited from Constraint
#attribute, #attribute2, #constant, #identifier, #multiplier, #priority, #relationship, #relative_to, #target
Instance Method Summary
collapse
#update_constraint
Methods inherited from Constraint
#<=, #==, #>=, attribute_lookup, attribute_reverse, axis_lookup, calculate?, constant?, #equals, #gte, #is, #lte, #of, orientation_lookup, priority_lookup, relationship_lookup, relationship_reverse, #update_constraint, view_lookup
Constructor Details
#initialize(target, attribute = nil, relationship = :equal) ⇒ SizeConstraint
Returns a new instance of SizeConstraint.
391
392
393
394
395
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 391
def initialize(target, attribute=nil, relationship=:equal)
super
@attribute = [:width, :height]
@attribute2 = [:width, :height]
end
|
Instance Method Details
#attribute2=(value) ⇒ Object
401
402
403
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 401
def attribute2=(value)
raise NoMethodError.new("undefined method `#{:attribute2=}' for #{self}:#{self.class}", :attribute2=)
end
|
#attribute=(value) ⇒ Object
397
398
399
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 397
def attribute=(value)
raise NoMethodError.new("undefined method `#{:attribute=}' for #{self}:#{self.class}", :attribute=)
end
|
#constant=(constant) ⇒ Object
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 405
def constant=(constant)
if constant.is_a?(Array)
@constant = constant[0..1]
elsif constant.is_a?(Hash)
@constant = [0, 0]
if constant.key?(:w)
@constant[0] = constant[:w]
elsif constant.key?(:width)
@constant[0] = constant[:width]
end
if constant.key?(:h)
@constant[1] = constant[:h]
elsif constant.key?(:height)
@constant[1] = constant[:height]
end
else
@constant = [constant, constant]
end
self.update_constraint
end
|
#divided_by(multiplier) ⇒ Object
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 528
def divided_by(multiplier)
if multiplier.is_a?(Array)
self.multiplier[0] /= multiplier[0].to_f
self.multiplier[1] /= multiplier[1].to_f
elsif multiplier.is_a?(Hash)
if multiplier.key?(:w)
self.multiplier[0] /= multiplier[:w].to_f
elsif multiplier.key?(:width)
self.multiplier[0] /= multiplier[:width].to_f
end
if multiplier.key?(:h)
self.multiplier[1] /= multiplier[:h].to_f
elsif multiplier.key?(:height)
self.multiplier[1] /= multiplier[:height].to_f
end
else
self.multiplier[0] /= multiplier.to_f
self.multiplier[1] /= multiplier.to_f
end
self.update_constraint
self
end
|
#minus(constant) ⇒ Object
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 478
def minus(constant)
if constant.is_a?(Array)
self.constant[0] -= constant[0]
self.constant[1] -= constant[1]
elsif constant.is_a?(Hash)
if constant.key?(:w)
self.constant[0] -= constant[:w]
elsif constant.key?(:width)
self.constant[0] -= constant[:width]
end
if constant.key?(:h)
self.constant[1] -= constant[:h]
elsif constant.key?(:height)
self.constant[1] -= constant[:height]
end
else
self.constant[0] -= constant
self.constant[1] -= constant
end
self.update_constraint
self
end
|
#multiplier=(multiplier) ⇒ Object
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 429
def multiplier=(multiplier)
if multiplier.is_a?(Array)
@multiplier = multiplier[0..1]
elsif multiplier.is_a?(Hash)
@multiplier = [0, 0]
if multiplier.key?(:w)
@multiplier[0] = multiplier[:w]
elsif multiplier.key?(:width)
@multiplier[0] = multiplier[:width]
end
if multiplier.key?(:h)
@multiplier[1] = multiplier[:h]
elsif multiplier.key?(:height)
@multiplier[1] = multiplier[:height]
end
else
@multiplier = [multiplier, multiplier]
end
self.update_constraint
end
|
#plus(constant) ⇒ Object
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 453
def plus(constant)
if constant.is_a?(Array)
self.constant[0] += constant[0]
self.constant[1] += constant[1]
elsif constant.is_a?(Hash)
if constant.key?(:w)
self.constant[0] += constant[:w]
elsif constant.key?(:width)
self.constant[0] += constant[:width]
end
if constant.key?(:h)
self.constant[1] += constant[:h]
elsif constant.key?(:height)
self.constant[1] += constant[:height]
end
else
self.constant[0] += constant
self.constant[1] += constant
end
self.update_constraint
self
end
|
#resolve_all(layout, view) ⇒ Object
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 553
def resolve_all(layout, view)
@resolved ||= begin
item = Constraint.view_lookup(layout, view, self.target)
rel_item = Constraint.view_lookup(layout, view, self.relative_to)
[[:width, 0], [:height, 1]].map do |attribute, index|
nsconstraint = NSLayoutConstraint.constraintWithItem(item,
attribute: Constraint.attribute_lookup(attribute),
relatedBy: Constraint.relationship_lookup(self.relationship),
toItem: rel_item,
attribute: Constraint.attribute_lookup(attribute),
multiplier: self.multiplier[index],
constant: self.constant[index]
)
if self.priority
nsconstraint.priority = Constraint.priority_lookup(self.priority)
end
if self.identifier
nsconstraint.setIdentifier(self.identifier)
end
nsconstraint
end
end
end
|
#times(multiplier) ⇒ Object
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
|
# File 'lib/motion-kit-cocoa/constraints/constraint.rb', line 503
def times(multiplier)
if multiplier.is_a?(Array)
self.multiplier[0] *= multiplier[0]
self.multiplier[1] *= multiplier[1]
elsif multiplier.is_a?(Hash)
if multiplier.key?(:w)
self.multiplier[0] *= multiplier[:w]
elsif multiplier.key?(:width)
self.multiplier[0] *= multiplier[:width]
end
if multiplier.key?(:h)
self.multiplier[1] *= multiplier[:h]
elsif multiplier.key?(:height)
self.multiplier[1] *= multiplier[:height]
end
else
self.multiplier[0] *= multiplier
self.multiplier[1] *= multiplier
end
self.update_constraint
self
end
|