親シェルから作成したカスタム swt シェルがあります。親コンポジットを基準にしてシェルの位置を設定する必要があります。ただし、シェルで setLocation(x, y) を呼び出しているため、setLocation(x,y) は clientArea に対して相対的に機能するようになりました。shell.setLocation(x,y) を PARENT コンポジット NOT clientArea に対して相対的に機能させる方法はありますか? . つまり、カスタム シェルは、親コンポジットのサイズが変更されたり画面上で移動されたりしても、常に親コンポジット内にとどまる必要があります。
サンプル コード スニペット:
class CustOmShellTest {
customShell = new Shell(parent.getShell(), SWT.TOOL | SWT.CLOSE);
customShell.setLayout(new GridLayout());
customShell.setBackgroundMode(SWT.INHERIT_FORCE);
customShell.setSize(300, 400);
customShell.setLocation(parent.getBounds().x, parent.getBounds().y );
}
new CustOmShellTest(parentOfThisInstanceComposite);
//これは、display に対して相対的に配置されたインスタンスです。//parentOfThisInstanceComposite に対して相対的に配置したい
どんな助けでも大歓迎です!ありがとう。