2018-12-07 12:33:45 +00:00
# ifndef _SWAYBAR_TRAY_ITEM_H
# define _SWAYBAR_TRAY_ITEM_H
2018-12-07 12:37:33 +00:00
# include <cairo.h>
2018-12-07 12:33:45 +00:00
# include <stdbool.h>
2018-12-07 12:37:33 +00:00
# include <stdint.h>
2018-12-07 12:33:45 +00:00
# include "swaybar/tray/tray.h"
# include "list.h"
2018-12-07 12:37:33 +00:00
struct swaybar_output ;
2018-12-07 12:33:45 +00:00
struct swaybar_pixmap {
int size ;
unsigned char pixels [ ] ;
} ;
2020-10-03 15:57:41 -05:00
struct swaybar_sni_tool_tip {
char * icon_name ;
list_t * icon_pixmap ; // struct swaybar_pixmap *
char * title ;
char * description ; // can contain HTML subset <b><i><u><a href=""><img src=" alt="">, see https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Markup/
} ;
2020-03-09 11:09:25 +00:00
struct swaybar_sni_slot {
struct wl_list link ; // swaybar_sni::slots
struct swaybar_sni * sni ;
const char * prop ;
const char * type ;
void * dest ;
sd_bus_slot * slot ;
} ;
2018-12-07 12:33:45 +00:00
struct swaybar_sni {
// icon properties
struct swaybar_tray * tray ;
cairo_surface_t * icon ;
int min_size ;
int max_size ;
2019-06-08 18:11:32 +03:00
int target_size ;
2018-12-07 12:33:45 +00:00
// dbus properties
char * watcher_id ;
char * service ;
char * path ;
char * interface ;
char * status ;
char * icon_name ;
list_t * icon_pixmap ; // struct swaybar_pixmap *
char * attention_icon_name ;
list_t * attention_icon_pixmap ; // struct swaybar_pixmap *
bool item_is_menu ;
char * menu ;
2020-10-03 15:57:41 -05:00
struct swaybar_sni_tool_tip * tool_tip ;
2020-10-03 15:59:39 -05:00
char * title ;
char * category ;
char * id ;
2018-12-17 23:52:15 +00:00
char * icon_theme_path ; // non-standard KDE property
2019-01-04 11:57:18 +00:00
2020-03-09 11:09:25 +00:00
struct wl_list slots ; // swaybar_sni_slot::link
2018-12-07 12:33:45 +00:00
} ;
struct swaybar_sni * create_sni ( char * id , struct swaybar_tray * tray ) ;
void destroy_sni ( struct swaybar_sni * sni ) ;
2018-12-07 12:37:33 +00:00
uint32_t render_sni ( cairo_t * cairo , struct swaybar_output * output , double * x ,
struct swaybar_sni * sni ) ;
2018-12-07 12:33:45 +00:00
# endif