Module: MotionKit

Defined in:
lib/motion-kit/motion-kit.rb,
lib/motion-kit/util.rb,
lib/motion-kit/version.rb,
lib/motion-kit-ios/ios_util.rb,
lib/motion-kit-osx/osx_util.rb,
lib/motion-kit/layouts/parent.rb,
lib/motion-kit-cocoa/cocoa_util.rb,
lib/motion-kit/layouts/base_layout.rb,
lib/motion-kit/layouts/tree_layout.rb,
lib/motion-kit/calculator/calculate.rb,
lib/motion-kit/calculator/calculator.rb,
lib/motion-kit-ios/layouts/layout_device.rb,
lib/motion-kit-ios/layouts/uiview_layout.rb,
lib/motion-kit-osx/layouts/nsmenu_layout.rb,
lib/motion-kit-osx/layouts/nsview_layout.rb,
lib/motion-kit-osx/layouts/nswindow_frame.rb,
lib/motion-kit/calculator/size_calculator.rb,
lib/motion-kit/calculator/view_calculator.rb,
lib/motion-kit-ios/layouts/uibutton_layout.rb,
lib/motion-kit-osx/layouts/nswindow_layout.rb,
lib/motion-kit/calculator/frame_calculator.rb,
lib/motion-kit-cocoa/constraints/constraint.rb,
lib/motion-kit-cocoa/layouts/calayer_layout.rb,
lib/motion-kit/calculator/origin_calculator.rb,
lib/motion-kit-osx/layouts/nsmenu_extensions.rb,
lib/motion-kit-cocoa/layouts/sugarcube_compat.rb,
lib/motion-kit-ios/layouts/constraints_layout.rb,
lib/motion-kit-ios/layouts/layout_orientation.rb,
lib/motion-kit-osx/layouts/constraints_layout.rb,
lib/motion-kit-osx/layouts/nstableview_layout.rb,
lib/motion-kit-ios/layouts/uiview_layout_frame.rb,
lib/motion-kit-osx/layouts/nsview_layout_frame.rb,
lib/motion-kit-osx/layouts/nstablecolumn_layout.rb,
lib/motion-kit-osx/layouts/nsmenuitem_extensions.rb,
lib/motion-kit/layouts/base_layout_class_methods.rb,
lib/motion-kit-cocoa/layouts/accessibility_compat.rb,
lib/motion-kit-ios/layouts/uiview_layout_gradient.rb,
lib/motion-kit-cocoa/constraints/constraints_layout.rb,
lib/motion-kit-cocoa/constraints/constraints_target.rb,
lib/motion-kit-cocoa/layouts/cagradientlayer_layout.rb,
lib/motion-kit-ios/layouts/uiview_layout_constraints.rb,
lib/motion-kit-osx/layouts/nsview_layout_constraints.rb,
lib/motion-kit-ios/layouts/uiview_layout_autoresizing.rb,
lib/motion-kit-osx/layouts/nsview_layout_autoresizing.rb,
lib/motion-kit-cocoa/constraints/constraint_placeholder.rb

Defined Under Namespace

Modules: BaseLayoutClassMethods, FrameCalculator, OriginCalculator, SizeCalculator Classes: ApplyError, BaseLayout, CAGradientLayerLayout, CALayerLayout, Calculator, CompoundConstraint, Constraint, ConstraintPlaceholder, ConstraintsLayout, ConstraintsTarget, ContextConflictError, InvalidAttributeError, InvalidDeferredError, InvalidPriorityError, InvalidRelationshipError, InvalidRootError, Layout, MenuLayout, NSMenuLayout, NSTableColumnLayout, NSTableViewLayout, NSViewLayout, NSWindowLayout, NoCommonAncestorError, NoContextError, NoSuperviewError, Parent, PointConstraint, SizeConstraint, TreeLayout, UIButtonLayout, UIViewLayout, ViewCalculator, WindowLayout

Constant Summary collapse

VERSION =
'0.10.7'

Class Method Summary collapse

Class Method Details

.appearance_classObject



16
17
18
# File 'lib/motion-kit/util.rb', line 16

def appearance_class
  @appearance_class ||= Class.new
end

.base_view_classObject



8
9
10
# File 'lib/motion-kit-ios/ios_util.rb', line 8

def base_view_class
  UIView
end

.calculate(view, dimension, amount, full_view = nil) ⇒ Object



5
6
7
# File 'lib/motion-kit/calculator/calculate.rb', line 5

def calculate(view, dimension, amount, full_view=nil)
  ViewCalculator.new.calculate(view, dimension, amount, full_view)
end

.camel_case(str) ⇒ Object



8
9
10
# File 'lib/motion-kit/util.rb', line 8

def camel_case(str)
  str.split('_').map(&:capitalize).join
end

.color_classObject



16
17
18
# File 'lib/motion-kit-ios/ios_util.rb', line 16

def color_class
  UIColor
end

.default_view_classObject



12
13
14
# File 'lib/motion-kit-ios/ios_util.rb', line 12

def default_view_class
  UIView
end

.find_all_layers(root, &condition) ⇒ Object

similar to find_all_views, but for CALayer



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/motion-kit-cocoa/cocoa_util.rb', line 46

def find_all_layers(root, &condition)
  found = []
  if condition.call(root)
    found << root
  end

  (root.sublayers || []).each do |sublayer|
    found.concat(find_all_layers(sublayer, &condition))
  end

  return found
end

.find_all_views(root, &condition) ⇒ Object

performs a breadth-first search, but returns all matches



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/motion-kit-cocoa/cocoa_util.rb', line 32

def find_all_views(root, &condition)
  found = []
  if condition.call(root)
    found << root
  end

  (root.subviews || []).each do |subview|
    found.concat(find_all_views(subview, &condition))
  end

  return found
end

.find_first_view(root, &condition) ⇒ Object

performs a breadth-first search



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/motion-kit-cocoa/cocoa_util.rb', line 5

def find_first_view(root, &condition)
  if condition.call(root)
    root
  else
    found = nil
    root.subviews.find do |subview|
      found = find_first_view(subview, &condition)
    end
    return found
  end
end

.find_last_view(root, &condition) ⇒ Object

performs a depth-first and reversed search



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/motion-kit-cocoa/cocoa_util.rb', line 18

def find_last_view(root, &condition)
  found = nil
  root.subviews.reverse.find do |subview|
    found = find_last_view(subview, &condition)
  end

  if ! found && condition.call(root)
    found = root
  end

  return found
end

.no_intrinsic_metricObject



20
21
22
# File 'lib/motion-kit-ios/ios_util.rb', line 20

def no_intrinsic_metric
  UIViewNoIntrinsicMetric
end

.objective_c_method_name(str) ⇒ Object



4
5
6
# File 'lib/motion-kit/util.rb', line 4

def objective_c_method_name(str)
  str.split('_').inject([]) { |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
end

.setter(method_name) ⇒ Object



12
13
14
# File 'lib/motion-kit/util.rb', line 12

def setter(method_name)
  "set#{method_name[0].capitalize}#{method_name[1..-1]}:"
end