更智能的窗口放置算法

Algorithm for smarter window placement

本文关键字:算法 窗口 智能      更新时间:2023-09-26

我正在开发ExtJS应用程序,页面上有多个可移动的ExtJS窗口。默认情况下,ExtJS将所有新窗口创建到相同的预定义位置,这将把新窗口放在相同的位置。由于该应用程序可以为用户打开10多个窗口,这对可用性来说非常糟糕。此时此刻,我注意到屏幕中央不断有几个窗口重叠在一起(默认行为)。

有人知道我可以用一个简单的算法来确定新窗口的智能位置吗

我更喜欢不太复杂的东西,但仍然可以提高我的应用程序的可用性。默认情况下,大多数窗口都相对较小,因此屏幕上应该有更大的可用空间。我知道我可以向WindowMgr查询有关当前窗口的信息,但我仍然需要一些逻辑。

我想可以在默认的x和y上添加10个像素来级联窗口,但这感觉有点愚蠢。

您可以使用以下内容级联所有当前窗口。将其更改为您喜欢的

Ext.Array.each(Ext.ComponentQuery.query('window'), function(win, index){
   win.setPosition(index * 10, index * 10);        
})

http://jsfiddle.net/q93Zt/1/