obs-frontend-api: Access system tray icon from API

All UI elements are accessible through the obs frontend api via
obs_frontend_api_get_main_window, except for the tray icon and its
elements. This commit adds an obs_frontend_api_get_system_tray function
which returns the pointer to the QSystemTrayIcon cast to void (much like
the QMainWindow pointer for the main window).
This commit is contained in:
Nick Stockton 2019-04-04 01:03:21 -04:00
parent 739072fdcb
commit 54da8eca85
4 changed files with 14 additions and 0 deletions

View File

@ -67,6 +67,11 @@ struct OBSStudioAPI : obs_frontend_callbacks {
return (void*)main->winId();
}
void *obs_frontend_get_system_tray(void) override
{
return (void*)main->trayIcon.data();
}
void obs_frontend_get_scenes(
struct obs_frontend_source_list *sources) override
{

View File

@ -71,6 +71,13 @@ void *obs_frontend_get_main_window_handle(void)
: nullptr;
}
void *obs_frontend_get_system_tray(void)
{
return !!callbacks_valid()
? c->obs_frontend_get_system_tray()
: nullptr;
}
char **obs_frontend_get_scene_names(void)
{
if (!callbacks_valid())

View File

@ -82,6 +82,7 @@ static inline void obs_frontend_source_list_free(
EXPORT void *obs_frontend_get_main_window(void);
EXPORT void *obs_frontend_get_main_window_handle(void);
EXPORT void *obs_frontend_get_system_tray(void);
EXPORT char **obs_frontend_get_scene_names(void);
EXPORT void obs_frontend_get_scenes(struct obs_frontend_source_list *sources);

View File

@ -9,6 +9,7 @@ struct obs_frontend_callbacks {
virtual ~obs_frontend_callbacks() {}
virtual void *obs_frontend_get_main_window(void)=0;
virtual void *obs_frontend_get_main_window_handle(void)=0;
virtual void *obs_frontend_get_system_tray(void)=0;
virtual void obs_frontend_get_scenes(
struct obs_frontend_source_list *sources)=0;