Сейчас: в теле функции создается GtkDialog, в него упаковываются GtkEntry и пара кнопок. Хочу: когда содержимое GtkEntry становится пустым, одной из кнопок устанавливалось sensitivity = FALSE.
И возник у меня вопрос, как это правильно делается? Первый подход: сделать отдельный файл, в котором будет создаваться этот самый диалог, добавляться все контрольки, а также навешиваться обработчики на сигналы и сами слоты; т.е. использование в других частях программы будет выглядеть как:
#include "my-custom-dialog.h"
GtkWidget* dialog = make_my_custom_dialog("Edit", "Cancel", "initial text")
gtk_widget_show_all(dialog);
gtk_dialog_run(GTK_DIALOG(dialog));
А есть другой подход: сделать класс-наследник от GtkDialog, в конструкторе которого будут добавляться необходимые виджеты и устанавливаться сигналы.
Какой подход более правильный? Оба выглядят неплохо, однако во втором случае смущает, что я делаю слишком узкую специализацию, которая не будет использоваться для дальнейшего наследования.
Спасибо.