Files
infinitefusion-e18/Data/Scripts/904_Anim Editor/Anim Editor elements/004_Menu bar.rb

49 lines
1.6 KiB
Ruby

#===============================================================================
#
#===============================================================================
class AnimationEditor::MenuBar < UIControls::ControlsContainer
MENU_BUTTON_WIDTH = 80
NAME_BUTTON_WIDTH = 400 # The animation's name
def initialize(x, y, width, height, viewport)
super(x, y, width, height)
@viewport.z = viewport.z + 10 # So that it appears over the canvas
end
#-----------------------------------------------------------------------------
def add_button(id, button_text)
ctrl = UIControls::Button.new(MENU_BUTTON_WIDTH, @height, @viewport, button_text)
ctrl.set_fixed_size
add_control(id, ctrl)
end
def add_name_button(id, button_text)
ctrl = UIControls::Button.new(NAME_BUTTON_WIDTH, @height, @viewport, button_text)
ctrl.set_fixed_size
add_control(id, ctrl)
end
def anim_name=(val)
ctrl = get_control(:name)
ctrl.set_text(val) if ctrl
end
#-----------------------------------------------------------------------------
private
def add_control(id, control, add_offset = false)
i = @controls.length
control_x = (add_offset ? @row_count - 1 : @row_count) * MENU_BUTTON_WIDTH
control_x = @width - control.width if control.width == NAME_BUTTON_WIDTH
control_y = 0
control.x = control_x + (add_offset ? OFFSET_FROM_LABEL_X : 0)
control.y = control_y + (add_offset ? OFFSET_FROM_LABEL_Y : 0)
control.set_interactive_rects
@controls[i] = [id, control]
@row_count += 1 if !add_offset
repaint
end
end