Гость Опубликовано 9 декабря, 2004 Жалоба Поделиться Опубликовано 9 декабря, 2004 Как сделать диалоговое окно чтобы оно всегда было на верху (не перекрывалось другими окнами). Пишу на gtk 1.2 но я так понимаю средствами gtk/gdk этого не сделать (я по крайней мере не нашел). Подскажите плз как это X-ами сделать. И еще при создании root окна приложения в заголовок окна добавляются кнопки "свернуть" и "развернуть" очень бы хотелось иметь возможность их заблокировать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 Есть же функция gtk_window_set_keep_above() Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 в gtk 1.2.10 такой функции нет Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 дайте исходник этой функции ПЛЗ Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 gtk_window_set_keep_above()? Она есть в Gtk 2. У меня было, сейчас поищу... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 У меня так написано: void gtk_window_set_keep_above (GtkWindow *window, gboolean setting) { GtkWidget *widget; GtkWindowPrivate *priv; GdkWindow *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); widget = GTK_WIDGET (window); priv = GTK_WINDOW_GET_PRIVATE (window); priv->above_initially = setting; if (setting) priv->below_initially = FALSE; if (window->frame) toplevel = window->frame; else toplevel = widget->window; if (toplevel != NULL) gdk_window_set_keep_above (toplevel, setting); } То есть, просто вызывается gdk_window_set_keep_above, которая у меня выглядит так: void gdk_window_set_keep_above (GdkWindow *window, gboolean setting) { g_return_if_fail (GDK_IS_WINDOW (window)); if (GDK_WINDOW_DESTROYED (window)) return; if (GDK_WINDOW_IS_MAPPED (window)) { if (setting) gdk_wmspec_change_state (FALSE, window, gdk_atom_intern ("_NET_WM_STATE_BELOW", FALSE), GDK_NONE); gdk_wmspec_change_state (setting, window, gdk_atom_intern ("_NET_WM_STATE_ABOVE", FALSE), GDK_NONE); } else gdk_synthesize_window_state (window, setting ? GDK_WINDOW_STATE_BELOW : GDK_WINDOW_STATE_ABOVE, setting ? GDK_WINDOW_STATE_ABOVE : 0); } Кстати, насчет кнопочек: void gdk_window_set_decorations(GdkWindow *window, GdkWMDecoration decorations); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 10 декабря, 2004 Жалоба Поделиться Опубликовано 10 декабря, 2004 Большое спасибо. Буду пытаться проделать тоже самое в gtk 1.2. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.