目次 - SDL 3.0 API(機能別) - ディスプレイとウィンドウ - SDL_CreatePopupWindow

SDL_CreatePopupWindow

指定した親ウィンドウの子ポップアップウィンドウを生成する

ヘッダ

SDL3/SDL_video.h

構文

SDL_Window * SDL_CreatePopupWindow(SDL_Window *parent, int offset_x, int offset_y, int w, int h, SDL_WindowFlags flags);

引数

SDL_Window *parent親ウィンドウ. NULLであってはならない
intoffset_xウィンドウの親ウィンドウからの相対X座標
intoffset_yウィンドウの親ウィンドウからの相対Y座標
intwウィンドウの幅
inthウィンドウの高さ
SDL_WindowFlagsflagsSDL_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以降

関連項目

SDL Wikiへのリンク

SDL_CreatePopupWindow - SDL Wiki