Выравнивание стека при использовании обуви

Я использую обувь в качестве инструментария GUI для Ruby.

Мой вопрос: как выровнять весь стек? Мне удалось выровнять para по центру, но:align не работает в стеке... Любые идеи, пожалуйста

1 ответ

Я не думаю, что есть прямой путь, но вы можете сделать что-то подобное (на самом деле это делает горизонтальное и вертикальное центрирование):

Shoes.app do
 @s=stack :width=>300, :height=>100,  do 
  background red
 end
 @top=(@s.parent.height-@s.style[:height])/2
 @left=(@s.parent.width-@s.style[:width])/2
 @s.move(@left,@top)
end

Вы можете, вероятно, обернуть его в функцию для более удобного использования.

def center(elem)
  top=(elem.parent.height-elem.style[:height])/2
  left=(elem.parent.width-elem.style[:width])/2
  elem.move(left,top)
end

и затем используйте это так:

 ...
 @s=stack :width=>300, :height=>100,  do 
  background red
 end
 center(@s)
 ...

.. или вы можете расширить класс Stack следующим образом:

class Shoes::Types::Stack
 def center
  top=(self.parent.height-self.style[:height])/2
  left=(self.parent.width-self.style[:width])/2
  self.move(left,top)
 end
end

и чем использовать это так:

@s=stack :width=>300, :height=>100,  do 
  background red
end
@s.center

К

Другие вопросы по тегам