VIDEO: Add ability for a video window Quit event to optionally propagate back to SCP.
This commit is contained in:
parent
9da10c1219
commit
51419a2e4b
2 changed files with 14 additions and 0 deletions
12
sim_video.c
12
sim_video.c
|
@ -38,6 +38,13 @@ int32 vid_cursor_y;
|
||||||
t_bool vid_mouse_b1 = FALSE;
|
t_bool vid_mouse_b1 = FALSE;
|
||||||
t_bool vid_mouse_b2 = FALSE;
|
t_bool vid_mouse_b2 = FALSE;
|
||||||
t_bool vid_mouse_b3 = FALSE;
|
t_bool vid_mouse_b3 = FALSE;
|
||||||
|
static VID_QUIT_CALLBACK vid_quit_callback = NULL;
|
||||||
|
|
||||||
|
t_stat vid_register_quit_callback (VID_QUIT_CALLBACK callback)
|
||||||
|
{
|
||||||
|
vid_quit_callback = callback;
|
||||||
|
return SCPE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc)
|
t_stat vid_show (FILE* st, DEVICE *dptr, UNIT* uptr, int32 val, char* desc)
|
||||||
{
|
{
|
||||||
|
@ -1735,6 +1742,11 @@ if (0) while (SDL_PeepEvents (&event, 1, SDL_GETEVENT, SD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SDL_QUIT:
|
||||||
|
sim_debug (SIM_VID_DBG_VIDEO|SIM_VID_DBG_KEY|SIM_VID_DBG_MOUSE|SIM_VID_DBG_CURSOR, vid_dev, "vid_thread() - QUIT Event - %s\n", vid_quit_callback ? "Signaled" : "Ignored");
|
||||||
|
if (vid_quit_callback)
|
||||||
|
vid_quit_callback ();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
sim_debug (SIM_VID_DBG_VIDEO|SIM_VID_DBG_KEY|SIM_VID_DBG_MOUSE|SIM_VID_DBG_CURSOR, vid_dev, "vid_thread() - Ignored Event: Type: %s(%d)\n", eventtypes[event.type], event.type);
|
sim_debug (SIM_VID_DBG_VIDEO|SIM_VID_DBG_KEY|SIM_VID_DBG_MOUSE|SIM_VID_DBG_CURSOR, vid_dev, "vid_thread() - Ignored Event: Type: %s(%d)\n", eventtypes[event.type], event.type);
|
||||||
|
|
|
@ -174,6 +174,8 @@ typedef struct key_event SIM_KEY_EVENT;
|
||||||
t_stat vid_open (DEVICE *dptr, const char *title, uint32 width, uint32 height, int flags);
|
t_stat vid_open (DEVICE *dptr, const char *title, uint32 width, uint32 height, int flags);
|
||||||
#define SIM_VID_INPUTCAPTURED 1 /* Mouse and Keyboard input captured (calling */
|
#define SIM_VID_INPUTCAPTURED 1 /* Mouse and Keyboard input captured (calling */
|
||||||
/* code responsible for cursor display in video) */
|
/* code responsible for cursor display in video) */
|
||||||
|
typedef void (*VID_QUIT_CALLBACK)(void);
|
||||||
|
t_stat vid_register_quit_callback (VID_QUIT_CALLBACK callback);
|
||||||
t_stat vid_close (void);
|
t_stat vid_close (void);
|
||||||
t_stat vid_poll_kb (SIM_KEY_EVENT *ev);
|
t_stat vid_poll_kb (SIM_KEY_EVENT *ev);
|
||||||
t_stat vid_poll_mouse (SIM_MOUSE_EVENT *ev);
|
t_stat vid_poll_mouse (SIM_MOUSE_EVENT *ev);
|
||||||
|
|
Loading…
Add table
Reference in a new issue