Commit 437a1c76d2f9319eb37068919a839651e043bfa3
1 parent
64d8d7a8
Exists in
master
and in
1 other branch
Working on FT dialog component.
Showing
3 changed files
with
50 additions
and
3 deletions
Show diff stats
src/dialogs/tools.c
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) |