LINUX.ORG.RU

GTK, Gnome applet, заставить мигать иконку


0

0

Привет,

что то не соображу как заставить иконку в моем апплете мигать.

Создается иконка и вообше апплет так

wl->icon = gtk_image_new_from_stock( GTK_STOCK_ABOUT, GTK_ICON_SIZE_SMALL_TOOLBAR ); gtk_box_pack_start (GTK_BOX (hbox), wl->icon, FALSE, FALSE, 5); gtk_container_add (GTK_CONTAINER (frame), hbox); gtk_container_add (GTK_CONTAINER (wl->applet), frame); gtk_widget_show_all (GTK_WIDGET (wl->applet));

Дальше создаю таймер, котрый вызывает фукцию. В этой фукции я пробовал делать поочередно.

gtk_widget_hide( wl->icon ) и gtk_widget_show( wl->icon )

Иконка исчезает и снова появляется, но проблема в том, что весь апплет меняет свой размер. Все остальные контролы сдвигаются на место иконки. От этого вся панель дергается.

Как монжно зафиксировать рамер апплета? Или как то по другому нарисовать в место иконки пустоту и потом снова иконку? Как сделать это по человечьи?

Спасибо

Сорри

wl->icon = gtk_image_new_from_stock( GTK_STOCK_ABOUT, GTK_ICON_SIZE_SMALL_TOOLBAR );
gtk_box_pack_start (GTK_BOX (hbox), wl->icon, FALSE, FALSE, 5);
gtk_container_add (GTK_CONTAINER (frame), hbox);
gtk_container_add (GTK_CONTAINER (wl->applet), frame);
gtk_widget_show_all (GTK_WIDGET (wl->applet));

the_moon
() автор топика

Пробовал задавать размеры контейнера?

Другой вариант - вставляй не пустоту, а выравнивание GtkAlignment

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

Вообшем после трех часов экспериментов, я вообше новичок в GTK, 
вроде получилось у меня так. Даже сам не знаю почему оно работает.

	if( wl->nologcounter > 10 && 0 == wl->iconswitcher )
	{
		gtk_widget_hide(  wl->icon );
		GtkWidget* hbwg = (GtkWidget*)(wl->hbox);
		gtk_widget_set_size_request( wl->hbox, hbwg->allocation.width, hbwg->allocation.height );
		wl->iconswitcher = 1;
	}
	else if( wl->iconswitcher )
	{
		gtk_widget_show(  wl->icon );
		wl->iconswitcher = 0;			
	}

the_moon
() автор топика

Тфу, прочел "GTK, Gnome applet, заставить Мигеля иконку"...

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