📄 layoutmanager.java
字号:
// LayoutManager is Panel holders and manager for pane layouts
package inline.ui.lo;
import inline.ui.*;
import inline.sys.*;
import inline.ui.ce.*;
import java.util.*;
public class LayoutManager extends Vector
{
private final static int LAYOUT_MANAGER_MARGIN = 1;
private boolean layoutdone;
public LayoutManager()
{
}
public Panel addPane(int aalign)
{
Panel pane = new Panel(aalign);
addElement(pane);
return pane;
}
public void layout(int w, int h)
{
// ok, lets do it
// what we have?
// 1) size of new parent canvas - width and height
// 2) number of panes to layout
//
// plan to do:
// 1) go over each pane and ask to size it, get its new width and height
int ww = w;
int wh = h;
int wx = 0;
int wy = 0;
for(int i=0;i<this.size();i++)
{
Panel pane = (Panel)this.elementAt(i);
if (pane!=null)
{
if (ww==0 && wh==0)
{
Log.fire("Can't layout, no more free space");
break;
}
pane.layout(wx,wy,ww,wh);
if (pane.isHorizontal())
{
int dh = pane.getHeight() + LAYOUT_MANAGER_MARGIN;
wh = wh - dh;
if (pane.getAlign() == Panel.ALIGN_TOP)
{
wy = wy + dh;
}
}
if (pane.isVertical())
{
int dw = pane.getWidth() + LAYOUT_MANAGER_MARGIN;
ww = ww - dw;
if (pane.getAlign() == Panel.ALIGN_LEFT)
{
wx = wx + dw;
}
}
}
}
layoutdone = true;
}
public boolean isLayoutPerformed()
{
return layoutdone;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -