You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
2.0 KiB

#ifndef QTCSDMENU_MODULE_H
#define QTCSDMENU_MODULE_H
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_objects.h>
#include <stdint.h>
struct xcb_connection_t;
struct wl_display;
struct wl_seat;
struct xdg_toplevel;
typedef enum {
QT_CSD_PLATFORM_UNKNOWN,
QT_CSD_PLATFORM_WAYLAND,
QT_CSD_PLATFORM_X11,
QT_CSD_PLATFORM_WINDOWS
} qt_csd_menu_platform;
typedef enum {
QT_CSD_WINDOW_FULLSCREEN = (1 << 0),
QT_CSD_WINDOW_MAXIMIZED = (1 << 1),
QT_CSD_WINDOW_MINIMIZED = (1 << 2),
QT_CSD_WINDOW_FIXED_SIZE = (1 << 3)
} qt_csd_menu_window_state;
typedef void (*notifyMenuVisibleCallback)(void* userData, bool visible);
//information about the window, plateform dependent
typedef struct {
qt_csd_menu_platform platform;
union {
struct {
struct xcb_connection_t* connection;
uint32_t rootwindow;
} x11;
struct {
struct wl_display* display;
struct xdg_toplevel* toplevel;
} wayland;
struct {
void* hwnd;
} windows;
} data;
//is the UI rtl or ltr
bool isRtl;
//callback called to notify that the menu is visible/hidden
notifyMenuVisibleCallback notifyMenuVisible;
//user data passed to callbacks
void* userData;
} qt_csd_menu_info;
typedef struct {
qt_csd_menu_platform platform;
union {
struct {
struct wl_seat* seat;
uint32_t serial;
} wayland;
struct {
uint32_t window;
} x11;
struct {
void* hwnd;
} win32;
} data;
int x;
int y;
qt_csd_menu_window_state windowState;
} qt_csd_menu_event;
typedef struct qt_csd_menu_t {
struct vlc_object_t obj;
void* p_sys;
bool (*popup)(struct qt_csd_menu_t* menu, qt_csd_menu_event* event);
} qt_csd_menu_t;
typedef int (*qt_csd_menu_open)(qt_csd_menu_t* obj, qt_csd_menu_info* info);
#endif // QTCSDMENU_MODULE_H