Commit 437a1c76d2f9319eb37068919a839651e043bfa3

Authored by Perry Werneck
1 parent 64d8d7a8
Exists in master and in 1 other branch develop

Working on FT dialog component.

src/dialogs/tools.c
@@ -69,3 +69,5 @@ @@ -69,3 +69,5 @@
69 return child; 69 return child;
70 } 70 }
71 71
  72 +
  73 +
src/include/internals.h
@@ -58,6 +58,12 @@ @@ -58,6 +58,12 @@
58 return child; 58 return child;
59 } 59 }
60 60
  61 + inline GtkWidget * v3270_box_pack_end(GtkWidget *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding)
  62 + {
  63 + gtk_box_pack_end(GTK_BOX(box),child,expand,fill,padding);
  64 + return child;
  65 + }
  66 +
61 G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding); 67 G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
62 G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding); 68 G_GNUC_INTERNAL GtkWidget * v3270_box_pack_frame(GtkWidget *box, GtkWidget *child, const gchar *title, GtkAlign align, gboolean expand, gboolean fill, guint padding);
63 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); 69 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align);
src/v3270ft/dialog.c
@@ -38,7 +38,12 @@ @@ -38,7 +38,12 @@
38 GtkDialog parent; 38 GtkDialog parent;
39 39
40 GtkWidget * settings; 40 GtkWidget * settings;
41 - // GtkWidget * buttons[FT_BUTTON_COUNT]; 41 +
  42 + struct {
  43 + GtkWidget * insert;
  44 + GtkWidget * update;
  45 + GtkWidget * reset;
  46 + } button;
42 47
43 }; 48 };
44 49
@@ -79,6 +84,24 @@ static GtkWidget * create_button(V3270FTDialog *widget, FT_BUTTON id, const gcha @@ -79,6 +84,24 @@ static GtkWidget * create_button(V3270FTDialog *widget, FT_BUTTON id, const gcha
79 } 84 }
80 */ 85 */
81 86
  87 +void activity_selected(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn G_GNUC_UNUSED(*column), V3270FTDialog *widget)
  88 +{
  89 + GtkTreeIter iter;
  90 + GtkTreeModel * model = gtk_tree_view_get_model(view);
  91 +
  92 + if(gtk_tree_model_get_iter(model, &iter, path))
  93 + {
  94 + GObject * activity = NULL;
  95 + gtk_tree_model_get(model, &iter, 0, &activity, -1);
  96 + v3270_ft_settings_set_activity(widget->settings,activity);
  97 +
  98 + gtk_widget_set_sensitive(widget->button.update,TRUE);
  99 + gtk_widget_set_sensitive(widget->button.reset,TRUE);
  100 +
  101 + }
  102 +
  103 +}
  104 +
82 static void V3270FTDialog_init(V3270FTDialog *widget) 105 static void V3270FTDialog_init(V3270FTDialog *widget)
83 { 106 {
84 widget->settings = v3270_ft_settings_new(); 107 widget->settings = v3270_ft_settings_new();
@@ -98,10 +121,28 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -98,10 +121,28 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
98 gtk_widget_set_vexpand(GTK_WIDGET(widget->settings),FALSE); 121 gtk_widget_set_vexpand(GTK_WIDGET(widget->settings),FALSE);
99 gtk_box_pack_start(GTK_BOX(container),widget->settings,FALSE,FALSE,0); 122 gtk_box_pack_start(GTK_BOX(container),widget->settings,FALSE,FALSE,0);
100 123
  124 + // Create action buttons
  125 + {
  126 + GtkWidget * buttons = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6);
  127 +
  128 + g_object_set(G_OBJECT(buttons),"margin-top",6,NULL);
  129 +
  130 + widget->button.reset = v3270_box_pack_end(buttons,gtk_button_new_with_mnemonic("_Reset"),FALSE,FALSE,0);
  131 + widget->button.update = v3270_box_pack_end(buttons,gtk_button_new_with_mnemonic("_Update"),FALSE,FALSE,0);
  132 + widget->button.insert = v3270_box_pack_end(buttons,gtk_button_new_with_mnemonic("_Insert"),FALSE,FALSE,0);
  133 +
  134 + gtk_widget_set_sensitive(widget->button.update,FALSE);
  135 + gtk_widget_set_sensitive(widget->button.reset,FALSE);
  136 +
  137 + gtk_box_pack_start(GTK_BOX(container),buttons,FALSE,FALSE,0);
  138 +
  139 + }
  140 +
101 // Create file list view 141 // Create file list view
102 { 142 {
103 GtkWidget * files = v3270_activity_list_new(); 143 GtkWidget * files = v3270_activity_list_new();
104 gtk_widget_set_tooltip_markup(files,_("Files to transfer")); 144 gtk_widget_set_tooltip_markup(files,_("Files to transfer"));
  145 + g_signal_connect(G_OBJECT(files),"row-activated",G_CALLBACK(activity_selected),widget);
105 146
106 // Put the view inside a scrolled window. 147 // Put the view inside a scrolled window.
107 GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); 148 GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL);
@@ -123,12 +164,10 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -123,12 +164,10 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
123 v3270_ft_activity_set_options(activity,LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP|LIB3270_FT_OPTION_APPEND|LIB3270_FT_RECORD_FORMAT_VARIABLE); 164 v3270_ft_activity_set_options(activity,LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP|LIB3270_FT_OPTION_APPEND|LIB3270_FT_RECORD_FORMAT_VARIABLE);
124 165
125 v3270_activity_list_append(files,activity); 166 v3270_activity_list_append(files,activity);
126 - v3270_ft_settings_set_activity(widget->settings,activity);  
127 #endif // DEBUG 167 #endif // DEBUG
128 168
129 } 169 }
130 170
131 -  
132 } 171 }
133 172
134 LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent) 173 LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent)