编辑框的自动高度

时间:2009-11-14 01:43:57

标签: ruby user-interface shoes

我的鞋子应用程序有三个项目堆叠在一起(当然是堆栈),按顺序排列:

  • 横幅
  • 编辑框
  • 流程中的两个按钮

我想要做的是让横幅保持默认大小(48px)和按钮(我认为这可能是平台特定的?)并让编辑框占据屏幕上的剩余区域,并自动用窗口调整大小?这可能吗?

如果没有,是否可以将按钮移到编辑框上方? (因此编辑框将填充到窗口的底部)

1 个答案:

答案 0 :(得分:3)

我不能完全赞同这一点,因为它受到这个email thread和该线程中链接的代码的启发,但是下面有效;虽然是粗糙的(它每秒轮询窗口以调整大小)。

Shoes.app do
    @header = stack :height => 48 do
        background red
    end
    stack do 
        @edit = edit_box
    end
    @footer = flow do
        style(:attach => Window, :top => app.height-100, :height => 25)
        button "Button 1"
        button "Button 2"
    end
    @height = 0
    every(1) do
        @windowheight = slot.height
        # Note app.height works on Linux and Windows, but not on OSX
        # See http://article.gmane.org/gmane.comp.lib.shoes/3493/match=app+height
        # So use slot.height instead. 
        unless @windowheight == @height
            @edit.style(:height => @windowheight-@header.height-@footer.height)
            @footer.style(:top => @windowheight-25)
        end
    end
end

据我所知,如果你移动编辑框上方的按钮,你仍然需要做同样的事情才能动态调整大小。你可以问一下鞋子的新邮件列表:shoes@librelist.com