Class: Ruflet::UI::Controls::RufletComponents::InteractiveViewerControl

Inherits:
Control
  • Object
show all
Defined in:
lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb

Constant Summary collapse

TYPE =
"interactiveviewer".freeze
WIRE =
"InteractiveViewer".freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES

Instance Attribute Summary

Attributes inherited from Control

#children, #id, #props, #runtime_page, #type, #wire_id

Instance Method Summary collapse

Methods inherited from Control

#emit, generate_id, #has_handler?, #on, #to_patch

Constructor Details

#initialize(id: nil, align: nil, alignment: nil, animate_align: nil, animate_margin: nil, animate_offset: nil, animate_opacity: nil, animate_position: nil, animate_rotation: nil, animate_scale: nil, animate_size: nil, aspect_ratio: nil, badge: nil, bottom: nil, boundary_margin: nil, clip_behavior: nil, col: nil, constrained: nil, content: nil, data: nil, disabled: nil, expand: nil, expand_loose: nil, height: nil, interaction_end_friction_coefficient: nil, interaction_update_interval: nil, key: nil, left: nil, margin: nil, max_scale: nil, min_scale: nil, offset: nil, opacity: nil, pan_enabled: nil, right: nil, rotate: nil, rtl: nil, scale: nil, scale_enabled: nil, scale_factor: nil, size_change_interval: nil, tooltip: nil, top: nil, trackpad_scroll_causes_scale: nil, visible: nil, width: nil, on_animation_end: nil, on_interaction_end: nil, on_interaction_start: nil, on_interaction_update: nil, on_size_change: nil) ⇒ InteractiveViewerControl

Returns a new instance of InteractiveViewerControl.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 11

def initialize(id: nil, align: nil, alignment: nil, animate_align: nil, animate_margin: nil, animate_offset: nil, animate_opacity: nil, animate_position: nil, animate_rotation: nil, animate_scale: nil, animate_size: nil, aspect_ratio: nil, badge: nil, bottom: nil, boundary_margin: nil, clip_behavior: nil, col: nil, constrained: nil, content: nil, data: nil, disabled: nil, expand: nil, expand_loose: nil, height: nil, interaction_end_friction_coefficient: nil, interaction_update_interval: nil, key: nil, left: nil, margin: nil, max_scale: nil, min_scale: nil, offset: nil, opacity: nil, pan_enabled: nil, right: nil, rotate: nil, rtl: nil, scale: nil, scale_enabled: nil, scale_factor: nil, size_change_interval: nil, tooltip: nil, top: nil, trackpad_scroll_causes_scale: nil, visible: nil, width: nil, on_animation_end: nil, on_interaction_end: nil, on_interaction_start: nil, on_interaction_update: nil, on_size_change: nil)
  props = {}
  props[:align] = align unless align.nil?
  props[:alignment] = alignment unless alignment.nil?
  props[:animate_align] = animate_align unless animate_align.nil?
  props[:animate_margin] = animate_margin unless animate_margin.nil?
  props[:animate_offset] = animate_offset unless animate_offset.nil?
  props[:animate_opacity] = animate_opacity unless animate_opacity.nil?
  props[:animate_position] = animate_position unless animate_position.nil?
  props[:animate_rotation] = animate_rotation unless animate_rotation.nil?
  props[:animate_scale] = animate_scale unless animate_scale.nil?
  props[:animate_size] = animate_size unless animate_size.nil?
  props[:aspect_ratio] = aspect_ratio unless aspect_ratio.nil?
  props[:badge] = badge unless badge.nil?
  props[:bottom] = bottom unless bottom.nil?
  props[:boundary_margin] = boundary_margin unless boundary_margin.nil?
  props[:clip_behavior] = clip_behavior unless clip_behavior.nil?
  props[:col] = col unless col.nil?
  props[:constrained] = constrained unless constrained.nil?
  props[:content] = content unless content.nil?
  props[:data] = data unless data.nil?
  props[:disabled] = disabled unless disabled.nil?
  props[:expand] = expand unless expand.nil?
  props[:expand_loose] = expand_loose unless expand_loose.nil?
  props[:height] = height unless height.nil?
  props[:interaction_end_friction_coefficient] = interaction_end_friction_coefficient unless interaction_end_friction_coefficient.nil?
  props[:interaction_update_interval] = interaction_update_interval unless interaction_update_interval.nil?
  props[:key] = key unless key.nil?
  props[:left] = left unless left.nil?
  props[:margin] = margin unless margin.nil?
  props[:max_scale] = max_scale unless max_scale.nil?
  props[:min_scale] = min_scale unless min_scale.nil?
  props[:offset] = offset unless offset.nil?
  props[:opacity] = opacity unless opacity.nil?
  props[:pan_enabled] = pan_enabled unless pan_enabled.nil?
  props[:right] = right unless right.nil?
  props[:rotate] = rotate unless rotate.nil?
  props[:rtl] = rtl unless rtl.nil?
  props[:scale] = scale unless scale.nil?
  props[:scale_enabled] = scale_enabled unless scale_enabled.nil?
  props[:scale_factor] = scale_factor unless scale_factor.nil?
  props[:size_change_interval] = size_change_interval unless size_change_interval.nil?
  props[:tooltip] = tooltip unless tooltip.nil?
  props[:top] = top unless top.nil?
  props[:trackpad_scroll_causes_scale] = trackpad_scroll_causes_scale unless trackpad_scroll_causes_scale.nil?
  props[:visible] = visible unless visible.nil?
  props[:width] = width unless width.nil?
  props[:on_animation_end] = on_animation_end unless on_animation_end.nil?
  props[:on_interaction_end] = on_interaction_end unless on_interaction_end.nil?
  props[:on_interaction_start] = on_interaction_start unless on_interaction_start.nil?
  props[:on_interaction_update] = on_interaction_update unless on_interaction_update.nil?
  props[:on_size_change] = on_size_change unless on_size_change.nil?
  super(type: TYPE, id: id, **props)
end

Instance Method Details

#pan(dx, dy: 0, dz: 0, timeout: 10, on_result: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 66

def pan(dx, dy: 0, dz: 0, timeout: 10, on_result: nil)
  runtime_page&.invoke(
    self,
    "pan",
    args: { "dx" => dx, "dy" => dy, "dz" => dz },
    timeout: timeout,
    on_result: on_result
  )
end

#reset(animation_duration: nil, timeout: 10, on_result: nil) ⇒ Object



76
77
78
79
80
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 76

def reset(animation_duration: nil, timeout: 10, on_result: nil)
  args = {}
  args["animation_duration"] = stringify_hash_keys(animation_duration) unless animation_duration.nil?
  runtime_page&.invoke(self, "reset", args: args.empty? ? nil : args, timeout: timeout, on_result: on_result)
end

#restore_state(timeout: 10, on_result: nil) ⇒ Object



82
83
84
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 82

def restore_state(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "restore_state", timeout: timeout, on_result: on_result)
end

#save_state(timeout: 10, on_result: nil) ⇒ Object



86
87
88
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 86

def save_state(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "save_state", timeout: timeout, on_result: on_result)
end

#zoom(factor, timeout: 10, on_result: nil) ⇒ Object



90
91
92
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/interactiveviewer_control.rb', line 90

def zoom(factor, timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "zoom", args: { "factor" => factor }, timeout: timeout, on_result: on_result)
end