tray latest
Cross-platform, super tiny C99 implementation of a system tray icon with a popup menu and notifications.
tray_linux.c File Reference

System tray implementation for Linux. More...

#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "tray.h"
#include <libnotify/notify.h>
Include dependency graph for tray_linux.c:

Macros

#define IS_APP_INDICATOR   APP_IS_INDICATOR
 Define IS_APP_INDICATOR for app-indicator compatibility.
 

Functions

void tray_exit (void)
 Terminate UI loop.
 
int tray_init (struct tray *tray)
 Create tray icon.
 
int tray_loop (int blocking)
 Run one iteration of the UI loop.
 
void tray_show_menu (void)
 Force show the tray menu (for testing purposes).
 
void tray_update (struct tray *tray)
 Update the tray icon and menu.
 

Detailed Description

System tray implementation for Linux.

Function Documentation

◆ tray_init()

int tray_init ( struct tray * tray)

Create tray icon.

Parameters
trayThe tray to initialize.
Returns
0 on success, -1 on error.

◆ tray_loop()

int tray_loop ( int blocking)

Run one iteration of the UI loop.

Parameters
blockingWhether to block the call or not.
Returns
0 on success, -1 if tray_exit() was called.

◆ tray_update()

void tray_update ( struct tray * tray)

Update the tray icon and menu.

Parameters
trayThe tray to update.