Гость Опубликовано 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. Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.