LINUX.ORG.RU

[быдлокод] notify-send с кнопками да/нет


0

2

Первый раз пишу подобное, сильно не ругайте. Хочу чтоб при нажатии «Да» программа выходила с кодом возвтрата 1, иначе с кодом 0

#include <libnotify/notify.h>

int status = 0;


void action( NotifyNotification *n, gchar *action, gpointer user_data )
{
	if( g_strcmp0(action, "yes") == 0 )
		status = 1;
}


int main( int argc, char **argv )
{
	NotifyNotification *n = NULL;
	
	notify_init("Test");
	n = notify_notification_new ("Бэкап", "Сделать бэкап?", "gtk-save");
	
	notify_notification_set_timeout (n, 15000);
	notify_notification_add_action(n, "yes", "Да", action, NULL, NULL );
	notify_notification_add_action(n, "no", "Нет", action, NULL, NULL );
	
	notify_notification_show (n, NULL);
	sleep( 15 );
	
	return status;
}
gcc notify.c -g `pkg-config --libs --cflags libnotify` -o notify
Проблема №1: не работает, всегда возвращает 0
Проблема №2: sleep выглядит очень костыльно, но ничего умнее я не придумал

★★★★★

Ответ на: комментарий от xorik

но у него есть баг: если закрыть окно или дождаться таймаута, то приложение будет висеть :( Как бы это починить?

xorik ★★★★★ ()
Ответ на: комментарий от Tanger

>А zenity чем не устраивает?
Не знал про него, попробую

xorik ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.