Sha256: aceb473d28bd42b1a60e9911de51909a65253ae603d364322403bf90b7278d29

Contents?: true

Size: 966 Bytes

Versions: 6

Compression:

Stored size: 966 Bytes

Contents

class MenuPanel < Shoes::Widget
  @@boxes = []
  def initialize(color, args)
    @@boxes << self
    background color
    para link("Box #{@@boxes.length}", :stroke => white, :fill => nil).
      click { visit "/" },
        :margin => 18, :align => "center", :size => 20
    hover { expand }
  end
  def expand
    if self.width < 170
      a = animate 30 do
        @@boxes.each do |b|
          b.width -= 5 if b != self and b.width > 140
        end
        self.width += 5
        a.stop if self.width >= 170
      end
    end
  end
end

Shoes.app :width => 400, :height => 130 do
  style(Link, :underline => nil)
  style(LinkHover, :fill => nil, :underline => nil)
  menu_panel green,  :width => 170, :height => 120, :margin => 4
  menu_panel blue,   :width => 140, :height => 120, :margin => 4
  menu_panel red,    :width => 140, :height => 120, :margin => 4
  menu_panel purple, :width => 140, :height => 120, :margin => 4
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
shoesgem-0.1480.0 shoes/samples/simple-menu.rb
shoesgem-0.1469.0 shoes/samples/simple-menu.rb
shoesgem-0.1430.0 shoes/samples/simple-menu.rb
shoesgem-0.1429.0 shoes/samples/simple-menu.rb
shoesgem-0.1428.0 shoes/samples/simple-menu.rb
shoesgem-0.1426.0 shoes/samples/simple-menu.rb