SDL_Window * SDL_CreatePopupWindow(SDL_Window *parent, int offset_x, int offset_y, int w, int h, SDL_WindowFlags flags);
SDL_Window * | parent | 親ウィンドウ. NULLであってはならない |
int | offset_x | ウィンドウの親ウィンドウからの相対X座標 |
int | offset_y | ウィンドウの親ウィンドウからの相対Y座標 |
int | w | ウィンドウの幅 |
int | h | ウィンドウの高さ |
SDL_WindowFlags | flags | SDL_WINDOW_TOOLTIPまたはSDL_WINDOW_POPUP_MENU. 0または論理和(OR)でSDL_WindowFlagsすることもできる |
(SDL_Window *) 生成されたウィンドウを戻す. 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.
ウィンドウのサイズはデスクトップレイアウトやウィンドウマネージャの方針により要求と異なる場合がある. アプリケーションはあらゆるサイズのウィンドウを扱えるように準備すべきである.
flags
には, 次のプロパティの少なくとも1つが必ず必要である:
これらのフラグはポップアップウィンドウには無関係なもので無視される:
これらのフラグはポップアップウィンドウには合わないもので, 生成は失敗する:
parent
はNULLではない正常なウィンドウの必要がある.
ポップアップウィンドウの親は, 通常, 最前面ウィンドウ, 他のポップアップウィンドウがありうる.
ポップアップウィンドウは最小化, 最大化, フルスクリーン, 前面にする, フラッシュ, モーダルウィンドウ化, トップレベルウィンドウの親になる, マウスまたはキーボードのグラブができない. 行おうとすると失敗する.
ポップアップウィンドウは自動的に枠線/装飾がなくなり, タスクバー/ドックに現れず, ALT+TABメニューのようなウィンドウリストにも表れない.
デフォルトでは, ポップアップウィンドウの位置はディスプレイの内部に収まるように自動的に調整される. この動作はSDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEANプロパティで上書きできる.
デフォルトでは, ポップアップメニューは現れたとき親ウィンドウから自動的にキーボードフォーカスをグラブする. この動作は, SDL_WINDOW_NOT_FOCUSABLEフラグを設定する, SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEANプロパティを偽にする, 生成後にSDL_SetWindowFocusable()関数で変更することで上書きできる.
親ウィンドウを見えなくする, または破棄すると, 子ポップアップウィンドウも再帰的に見えなくなる, または破棄される. 子ポップアップウィンドウは, 明示的に見えないようにしていない限り, 親ウィンドウが再び見えるようになったとき元に戻る.
この関数を呼べるのはメインスレッドのみである.
SDL 3.2.0以降