Автор Тема: Окна в GTK+ (Glade)  (Прочитано 1653 раз)

Оффлайн gc986

  • Давно тут
  • **
  • Сообщений: 78
  • Жить, хорошо )))
    • Email
Окна в GTK+ (Glade)
« : 04.11.2011 11:53:40 »
Здравствуйте!  :)
Я пишу небольшую программу на C - GTK+ - Glade. Создал две формы в Glade, разместил виджеты, обозначил сигналы, всё собрал, прописал механику, откомпилировал - всё работает. В программе предусмотрено два окна: основное окно и окно настройки. Настройки вызываются стандартным методом gtk_widget_show(settingswindow), но это происходит единожды. Т.е. когда окно закрывается, а потом отображается на экране, оно уже пустое. Как решение, нужно скрыть окно и всё что на нём находится (gtk_widget_hide_all(settingswindow);). Всёбы ничего, но как запретить GTK закрывать окно? Есть какой нибудь способ полного замещения gtk_widget_destroy, на gtk_widget_hide_all???
p.s. этот код ничего не дал - g_signal_connect_swapped((GtkWindow *)settingswindow,"destroy",G_CALLBACK(gtk_widget_hide),(GtkWindow *)settingswindow);
XD XD XD XD

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Окна в GTK+ (Glade)
« Ответ #1 : 04.11.2011 12:37:45 »
Я с GTK не сталкивался, но наверное, стоит посмотреть как это сделано в других GTK приложениях.

Оффлайн gc986

  • Давно тут
  • **
  • Сообщений: 78
  • Жить, хорошо )))
    • Email
Re: Окна в GTK+ (Glade) (решено)
« Ответ #2 : 04.11.2011 13:51:25 »
Спасибо за проявленный интерес!  :)
Поиск на просторах интернета дал ответ, который и был применён!
вот этот код
// С ПОМОЩЬЮ ЭТОГО КОДА ЗАМЕНЯЕТСЯ УНИЧТОЖЕНИЕ ОКНА НА СКРЫТИЕ!!!!!!!
void on_window2_delete_event (GtkObject *object, gpointer user_data)
{
gtk_widget_hide_on_delete (settingswindow); // Подменяем уничтожение на сворачивание
}
С помощью строки gtk_widget_hide_on_delete (settingswindow), при вызове функции удаления виджета, происходит простое скрытие. В дальнейшем, окно можно вызвать простым gtk_widget_show_all(settingswindow) !  ;D
XD XD XD XD