diff --git a/src/dialogs/settings/dialog.c b/src/dialogs/settings/dialog.c index 0a8265a..44d0422 100644 --- a/src/dialogs/settings/dialog.c +++ b/src/dialogs/settings/dialog.c @@ -276,4 +276,26 @@ void v3270_settings_popup_dialog(GtkWidget *widget, GtkWidget *terminal, gboolea } +GtkWidget * v3270_settings_get_edit_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal) { + + const gchar * title = GTK_V3270_SETTINGS(settings)->title; + + GtkWidget * dialog = v3270_settings_dialog_new(); + + if(title) + gtk_window_set_title(GTK_WINDOW(dialog), title); + + gtk_container_add(GTK_CONTAINER(dialog), settings); + + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(terminal))); + gtk_window_set_modal(GTK_WINDOW(dialog),modal); + + v3270_settings_dialog_set_terminal_widget(dialog, terminal); + + g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); + g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),settings); + + return dialog; + + } diff --git a/src/include/v3270/settings.h b/src/include/v3270/settings.h index 402d7db..b11023c 100644 --- a/src/include/v3270/settings.h +++ b/src/include/v3270/settings.h @@ -73,6 +73,9 @@ /// @brief Popup a settings dialog for the terminal. LIB3270_EXPORT void v3270_settings_popup_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal); + /// @brief Get an edit dialog for the settings widget. + LIB3270_EXPORT GtkWidget * v3270_settings_get_edit_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal); + /*--[ V3270 Settings Dialog ]------------------------------------------------------------------------*/ #define GTK_TYPE_V3270_SETTINGS_DIALOG (V3270SettingsDialog_get_type()) -- libgit2 0.21.2