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 | 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 | 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 | 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 | 69 | G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); | ... | ... |
src/v3270ft/dialog.c
... | ... | @@ -38,7 +38,12 @@ |
38 | 38 | GtkDialog parent; |
39 | 39 | |
40 | 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 | 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 | 105 | static void V3270FTDialog_init(V3270FTDialog *widget) |
83 | 106 | { |
84 | 107 | widget->settings = v3270_ft_settings_new(); |
... | ... | @@ -98,10 +121,28 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
98 | 121 | gtk_widget_set_vexpand(GTK_WIDGET(widget->settings),FALSE); |
99 | 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 | 141 | // Create file list view |
102 | 142 | { |
103 | 143 | GtkWidget * files = v3270_activity_list_new(); |
104 | 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 | 147 | // Put the view inside a scrolled window. |
107 | 148 | GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); |
... | ... | @@ -123,12 +164,10 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
123 | 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 | 166 | v3270_activity_list_append(files,activity); |
126 | - v3270_ft_settings_set_activity(widget->settings,activity); | |
127 | 167 | #endif // DEBUG |
128 | 168 | |
129 | 169 | } |
130 | 170 | |
131 | - | |
132 | 171 | } |
133 | 172 | |
134 | 173 | LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent) | ... | ... |