Commit 3fdb5c4e02a2827a8835b6cf22bbc9dd3db7f55e

Authored by Perry Werneck
1 parent 3d7c20ac
Exists in master and in 1 other branch develop

Working on the FT dialog box.

Showing 2 changed files with 40 additions and 12 deletions   Show diff stats
src/v3270ft/dialog.c
@@ -40,7 +40,6 @@ @@ -40,7 +40,6 @@
40 GtkWidget * settings; 40 GtkWidget * settings;
41 41
42 struct { 42 struct {
43 - GtkWidget * valid;  
44 GtkWidget * insert; 43 GtkWidget * insert;
45 GtkWidget * update; 44 GtkWidget * update;
46 GtkWidget * remove; 45 GtkWidget * remove;
@@ -91,7 +90,15 @@ void activity_selected(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn G @@ -91,7 +90,15 @@ void activity_selected(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn G
91 static void validity_changed(GtkWidget G_GNUC_UNUSED(*settings), gboolean valid, V3270FTDialog *widget) 90 static void validity_changed(GtkWidget G_GNUC_UNUSED(*settings), gboolean valid, V3270FTDialog *widget)
92 { 91 {
93 debug("The file transfer settings are now %s",valid ? "valid" : "invalid"); 92 debug("The file transfer settings are now %s",valid ? "valid" : "invalid");
94 - gtk_widget_set_sensitive(widget->button.valid,valid); 93 + gtk_widget_set_sensitive(widget->button.insert,valid);
  94 + gtk_widget_set_sensitive(widget->button.update,valid);
  95 +}
  96 +
  97 +static void has_activity_changed(GtkWidget G_GNUC_UNUSED(*settings), gboolean have_activity, V3270FTDialog *widget)
  98 +{
  99 + gtk_widget_set_sensitive(widget->button.reset,have_activity);
  100 + gtk_widget_set_sensitive(widget->button.update,have_activity);
  101 + gtk_widget_set_sensitive(widget->button.remove,have_activity);
95 } 102 }
96 103
97 static void reset_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget) 104 static void reset_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget)
@@ -182,6 +189,7 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -182,6 +189,7 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
182 { 189 {
183 widget->settings = v3270_ft_settings_new(); 190 widget->settings = v3270_ft_settings_new();
184 g_signal_connect(G_OBJECT(widget->settings),"validity",G_CALLBACK(validity_changed),widget); 191 g_signal_connect(G_OBJECT(widget->settings),"validity",G_CALLBACK(validity_changed),widget);
  192 + g_signal_connect(G_OBJECT(widget->settings),"has-activity",G_CALLBACK(has_activity_changed),widget);
185 193
186 // Does the dialog have header bar? 194 // Does the dialog have header bar?
187 GtkHeaderBar * header = GTK_HEADER_BAR(gtk_dialog_get_header_bar(GTK_DIALOG(widget))); 195 GtkHeaderBar * header = GTK_HEADER_BAR(gtk_dialog_get_header_bar(GTK_DIALOG(widget)));
@@ -206,28 +214,28 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -206,28 +214,28 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
206 214
207 // Create action buttons 215 // Create action buttons
208 { 216 {
209 - widget->button.valid = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6); 217 + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6);
210 218
211 - g_object_set(G_OBJECT(widget->button.valid),"margin-top",6,NULL); 219 + g_object_set(G_OBJECT(box),"margin-top",6,NULL);
212 220
213 - widget->button.reset = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Reset"),FALSE,FALSE,0); 221 + widget->button.reset = v3270_box_pack_end(box,gtk_button_new_with_mnemonic("_Reset"),FALSE,FALSE,0);
214 g_signal_connect(widget->button.reset,"clicked",G_CALLBACK(reset_clicked),widget); 222 g_signal_connect(widget->button.reset,"clicked",G_CALLBACK(reset_clicked),widget);
215 223
216 - widget->button.update = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Update"),FALSE,FALSE,0); 224 + widget->button.update = v3270_box_pack_end(box,gtk_button_new_with_mnemonic("_Update"),FALSE,FALSE,0);
217 g_signal_connect(widget->button.update,"clicked",G_CALLBACK(update_clicked),widget); 225 g_signal_connect(widget->button.update,"clicked",G_CALLBACK(update_clicked),widget);
218 226
219 - widget->button.insert = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Delete"),FALSE,FALSE,0);  
220 - g_signal_connect(widget->button.insert,"clicked",G_CALLBACK(remove_clicked),widget); 227 + widget->button.remove = v3270_box_pack_end(box,gtk_button_new_with_mnemonic("_Delete"),FALSE,FALSE,0);
  228 + g_signal_connect(widget->button.remove,"clicked",G_CALLBACK(remove_clicked),widget);
221 229
222 - widget->button.insert = v3270_box_pack_end(widget->button.valid,gtk_button_new_with_mnemonic("_Insert"),FALSE,FALSE,0); 230 + widget->button.insert = v3270_box_pack_end(box,gtk_button_new_with_mnemonic("_Insert"),FALSE,FALSE,0);
223 g_signal_connect(widget->button.insert,"clicked",G_CALLBACK(insert_clicked),widget); 231 g_signal_connect(widget->button.insert,"clicked",G_CALLBACK(insert_clicked),widget);
224 232
225 gtk_widget_set_sensitive(widget->button.update,FALSE); 233 gtk_widget_set_sensitive(widget->button.update,FALSE);
226 gtk_widget_set_sensitive(widget->button.remove,FALSE); 234 gtk_widget_set_sensitive(widget->button.remove,FALSE);
  235 + gtk_widget_set_sensitive(widget->button.insert,FALSE);
227 gtk_widget_set_sensitive(widget->button.reset,FALSE); 236 gtk_widget_set_sensitive(widget->button.reset,FALSE);
228 237
229 - gtk_box_pack_start(GTK_BOX(container),widget->button.valid,FALSE,FALSE,0);  
230 - gtk_widget_set_sensitive(widget->button.valid,FALSE); 238 + gtk_box_pack_start(GTK_BOX(container),box,FALSE,FALSE,0);
231 239
232 } 240 }
233 241
src/v3270ft/settings.c
@@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
42 struct 42 struct
43 { 43 {
44 void (*validity)(GtkWidget *, gboolean); 44 void (*validity)(GtkWidget *, gboolean);
  45 + void (*has_activity)(GtkWidget *, gboolean);
45 } signal; 46 } signal;
46 47
47 }; 48 };
@@ -88,7 +89,8 @@ @@ -88,7 +89,8 @@
88 89
89 enum _SIGNALS 90 enum _SIGNALS
90 { 91 {
91 - V3270_FT_SETTINGS_VALIDITY_SIGNAL, ///< @brief Indicates if the dialog contents is valid. 92 + V3270_FT_SETTINGS_VALIDITY_SIGNAL, ///< @brief Indicates if the dialog contents is valid.
  93 + V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL, ///< @brief Indicates fi the dialog has an activity.
92 94
93 V3270_FT_SETTINGS_LAST_SIGNAL 95 V3270_FT_SETTINGS_LAST_SIGNAL
94 }; 96 };
@@ -102,11 +104,17 @@ @@ -102,11 +104,17 @@
102 debug("%s",__FUNCTION__); 104 debug("%s",__FUNCTION__);
103 } 105 }
104 106
  107 +static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gboolean G_GNUC_UNUSED(is_valid))
  108 + {
  109 + debug("%s",__FUNCTION__);
  110 + }
  111 +
105 static void V3270FTSettings_class_init(G_GNUC_UNUSED V3270FTSettingsClass *klass) 112 static void V3270FTSettings_class_init(G_GNUC_UNUSED V3270FTSettingsClass *klass)
106 { 113 {
107 GObjectClass * gobject_class = G_OBJECT_CLASS(klass); 114 GObjectClass * gobject_class = G_OBJECT_CLASS(klass);
108 115
109 klass->signal.validity = V3270FTSettings_validity; 116 klass->signal.validity = V3270FTSettings_validity;
  117 + klass->signal.has_activity = V3270FTSettings_has_activity;
110 118
111 v3270_ft_settings_signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL] = 119 v3270_ft_settings_signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL] =
112 g_signal_new( "validity", 120 g_signal_new( "validity",
@@ -118,6 +126,17 @@ @@ -118,6 +126,17 @@
118 G_TYPE_NONE, 1, G_TYPE_BOOLEAN); 126 G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
119 127
120 128
  129 + v3270_ft_settings_signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL] =
  130 + g_signal_new( "has-activity",
  131 + G_OBJECT_CLASS_TYPE (gobject_class),
  132 + G_SIGNAL_RUN_FIRST,
  133 + G_STRUCT_OFFSET (V3270FTSettingsClass, signal.has_activity),
  134 + NULL, NULL,
  135 + v3270ft_VOID__VOID_BOOLEAN,
  136 + G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
  137 +
  138 +
  139 +
121 } 140 }
122 141
123 static GtkWidget * create_label(V3270FTSettings *widget, const gchar *mnemonic, gint left, gint top) 142 static GtkWidget * create_label(V3270FTSettings *widget, const gchar *mnemonic, gint left, gint top)
@@ -526,6 +545,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP @@ -526,6 +545,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP
526 { 545 {
527 GTK_V3270_FT_SETTINGS(widget)->activity = activity; 546 GTK_V3270_FT_SETTINGS(widget)->activity = activity;
528 v3270_ft_settings_reset(widget); 547 v3270_ft_settings_reset(widget);
  548 + g_signal_emit(widget, v3270_ft_settings_signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL], 0, (activity == NULL ? FALSE : TRUE));
529 } 549 }
530 550
531 LIB3270_EXPORT GObject * v3270_ft_settings_get_activity(GtkWidget *widget) 551 LIB3270_EXPORT GObject * v3270_ft_settings_get_activity(GtkWidget *widget)