32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
#pragma once
|
|
#include "ui/ui_core.h"
|
|
#include "ui/ui_widgets.h"
|
|
#include "platform/platform.h"
|
|
#include "renderer/renderer.h"
|
|
|
|
#define MAX_POPUP_WINDOWS 4
|
|
|
|
struct PopupWindow {
|
|
B32 alive;
|
|
B32 *open_flag; // e.g. &app->show_settings_window
|
|
PlatformWindow *platform_window;
|
|
Renderer *renderer;
|
|
UI_Context *ui_ctx;
|
|
UI_WidgetState wstate;
|
|
UI_WindowContentFn content_fn;
|
|
void *content_user_data;
|
|
S32 width, height;
|
|
S32 last_w, last_h;
|
|
const char *title;
|
|
};
|
|
|
|
PopupWindow *popup_open(PlatformWindow *parent_window, Renderer *parent_renderer,
|
|
const char *title, B32 *open_flag,
|
|
S32 width, S32 height,
|
|
UI_WindowContentFn content_fn, void *user_data);
|
|
void popup_close(PopupWindow *popup);
|
|
PopupWindow *popup_find_by_flag(B32 *flag);
|
|
void popup_do_frame(PopupWindow *popup, F32 dt);
|
|
void popup_close_all(void);
|
|
void popup_close_check(void);
|