LINUX.ORG.RU

Кнопки в заголовке и GTK

 ,


0

1

Добрый вечер, вопрос от начинающего: как сделать окно GTK с кнопкой «закрыть» в заголовке или окно без кнопок в заголовке? Ответ не гуглится, ткните носом.



Последнее исправление: cetjs2 (всего исправлений: 2)

А зачем подобное может понадобиться?

anonymous
()

Заголовок окна в общем случае GTK+ не подвластен, а контролируется оконным менеджером. GTK+ может лишь «подсказать», чего там должно быть, а чего не должно, но в итоге от него мало чего зависит.

yoghurt ★★★★★
()

Добрый вечер, вопрос от начинающего: как сделать окно GTK с кнопкой «закрыть» в заголовке или окно без кнопок в заголовке? Ответ не гуглится, ткните носом.

Ion3 - никаких кнопок в заголовке окна у любых приложений на различных тулкитах. Более того, и самого заголовка окна по умолчанию нет (если нужно, то включаю заголовок хоткеем).

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

Спасибо за помощь, но gdk_window_set_functions() не сработало. Возможно, в GTK невозможно проделать такой трюк с обычным окном. Выяснил, что после gtk_window_set_resizable(GTK_WINDOW(win), FALSE) исчезает кнопка «расширить». Еще внимательно осмотрел установленные программы и не нашел у большинства окон с одной кнопкой в заголовке. Окна с одной кнопкой «Закрыть» были только у GtkMessageDialog-ов, а также у настроек Оперы и VLC, но они основаны на Qt, вреде бы.

alexey-gtk
() автор топика
Ответ на: комментарий от yoghurt

Так вызывал: gdk_window_set_functions(GTK_WINDOW(win), GDK_FUNC_CLOSE);

Сама программа не вылетела, но в консоли написала: Gdk-CRITICAL **: IA__gdk_window_set_functions:assertion 'GDK_IS_WINDOW (window)' failed

alexey-gtk
() автор топика
Ответ на: комментарий от yoghurt

Заработало gdk_window_set_functions(gtk_widget_get_window(GTK_WIDGET(win)), GDK_FUNC_CLOSE | GDK_FUNC_MOVE); Это потрясающе, благодарю.

alexey-gtk
() автор топика
Ответ на: комментарий от andreyu

Не удивительно, тайловые WM обычно не соответствуют стандартам и спецификациям.

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