Skip to content

Instantly share code, notes, and snippets.

@bil-bas
Created October 29, 2010 16:14
Show Gist options
  • Save bil-bas/653826 to your computer and use it in GitHub Desktop.
Save bil-bas/653826 to your computer and use it in GitHub Desktop.
# Setup window components within
# Current FXRubyified system managing nesting manually.
def setup
main_packer = VerticalPacker.new(container, padding: 0) do |packer|
label = Label.new(packer, text: "Hello!")
10.times do |i|
Button.new(packer, text: i.to_s) do |button|
button.subscribe :clicked_left_mouse_button do |sender, x, y|
label.text = "Pressed #{sender.text.to_i}"
end
end
end
end
# Later
@my_slider = Slider.new(main_packer, range: 1..100) do |slider|
slider.subscribe :changed do |sender, value|
# Handle changed event
end
end
# Later
@my_slider.subscribe :changed do |sender, value|
# Handle changed event
end
end
# API trimmed to death / Shoesified?
def setup
main_packer = pack :vertical, padding: 0 do # Push the container.
my_label = label(text: "Hello!") # Add a label to the current container.
10.times do |i|
button(text: i.to_s) do |sender, x, y| # Assume this is adding a click handler.
my_label.text = "Pressed #{sender.text.to_i}"
end
end
end # Push the packer onto the container stack.
# Later
inside main_packer do
@my_slider = slider range: 1..100 do |sender, value|
# Handle changed event
end
end
# Later
@my_slider.subscribe do |sender, value| # Assume :changed as the default event.
# Handle changed event
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment