LINUX.ORG.RU

Как сделать всегда видимое окно


0

0

Как сделать диалоговое окно чтобы оно всегда было на верху (не
перекрывалось другими окнами).

Пишу на gtk 1.2 но я так понимаю средствами gtk/gdk этого не сделать
(я по крайней мере не нашел). Подскажите плз как это X-ами сделать.

И еще при создании root окна приложения в заголовок окна добавляются
кнопки "свернуть" и "развернуть" очень бы хотелось иметь возможность
их заблокировать.

anonymous

Привет anonymous,
несколЬко вариантов:
1. http://tronche.com/gui/x/xlib/window/attributes/override-redirect.html
2. on Paint/Expose event call RaiseWindow
3. запускай thread(скажем timer), котрая проверяет прекрыто ли window -
это можно делать с
http://tronche.com/gui/x/xlib/window-information/XTranslateCoordinates.html
(см. на "Window *child_return" и конечно ++ немного кода)
4. ..

По-поводу кнопок "свернуть" и "развернуть", search for "WM hints"

Марк

carrot
()

Дайте пожалуйста хоть какой нибудь пример.
я с Х-ами никогда не работал.

anonymous
()

echo 'Style "XMsg*" StartsRaised, StaysOnTop' >>$HOME/.fvwm/.fvwmrc

А заёбывать пользователя нетонущими окнами - ЗЛО! Из серии "говно не тонет" :)

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

>А заёбывать пользователя нетонущими окнами - ЗЛО! Из серии "говно не тонет" :)

Проблема в том что если модальное окно заваливается за другое, то у пользователей начинается паника, и они меня начинают за@бывать.

Спасибо за пример.

anonymous
()
Ответ на: комментарий от anonymous

... да ты лентяй, однако ...
я никогда не работал с gtk, но "немного" знаю gdк,
тем не менее, для gtk 1.2:

1. gdk_window_set_override_redirect (см. help или попроси
помощи у Cержи Брина). Заметим, что window будет без декораций.
Этот метод используется для popup menus, tooltips etc.

2. from http://www.gtk.org/~otaylor/gtk/tutorial/drawing_tut-1.html
gtk_signal_connect (GTK_OBJECT (drawing_area), "expose_event",
(GtkSignalFunc) expose_event, NULL);

in expose_event() put a call gtk_window_raise

Expose events генерятся , когда window is overlapped by other window
and requires repainting.

3. не знаю, как запускать timers in gtk 1.2, но
XTranslateCoordinates соответствует gtk_widget_translate_coordinates
хотя, похоже, что она не возвращает child_window.

Думаю вариант #2, самый подходящий.

Марк

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