既に画面上にある他のガジェット ウィンドウ間の最初の利用可能なスペースにガジェット ウィンドウを配置するアルゴリズムが必要です。基本的に、画面にはさまざまなサイズのガジェット ウィンドウがすべてさまざまな位置に表示されます。固定サイズの別のガジェットを画面に追加するとき、ガジェットを配置できる場所、つまりガジェット間の空きスペースにワークアウトする方法が必要です。アルゴリズムが十分なスペースを見つけられなかった場合、ガジェットは既存のガジェットの一番下に配置されます。
すべてのガジェットとそれらが占めるスペースを含む画面を表す 2 次元配列を作成することを考えましたが、おそらくもっと効率的な方法があると思います。
要件は次のとおりです。
- 左から右/上から下に移動して、ガジェット ウィンドウに完全に収まり、周囲のガジェットから一定のマージンを確保できる最初の使用可能な空きスペースを見つけます。
- 空きスペースが見つからない場合は、ガジェットを他のすべてのガジェットの左下に配置します。
ありがとうございました。