Commit e6e16ddd18f1e16f83d8c55f80366181714818db
1 parent
10dbb6f7
Exists in
master
and in
1 other branch
Working on the new FT component.
Showing
5 changed files
with
73 additions
and
48 deletions
Show diff stats
src/include/internals.h
| ... | ... | @@ -58,10 +58,13 @@ |
| 58 | 58 | return child; |
| 59 | 59 | } |
| 60 | 60 | |
| 61 | - 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); | |
| 63 | - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); | |
| 64 | - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); | |
| 61 | + 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); | |
| 63 | + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); | |
| 64 | + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); | |
| 65 | + | |
| 66 | + G_GNUC_INTERNAL GtkWidget * v3270_activity_list_new(); | |
| 67 | + G_GNUC_INTERNAL void v3270_activity_list_append(GtkWidget *widget, GObject *activity); | |
| 65 | 68 | |
| 66 | 69 | G_END_DECLS |
| 67 | 70 | ... | ... |
src/include/v3270/filetransfer.h
| ... | ... | @@ -93,6 +93,7 @@ |
| 93 | 93 | typedef struct _V3270FTSettingsClass V3270FTSettingsClass; |
| 94 | 94 | |
| 95 | 95 | LIB3270_EXPORT GtkWidget * v3270_ft_settings_new(); |
| 96 | + LIB3270_EXPORT void v3270_ft_settings_set_activity(GtkWidget *widget, GObject *activity); | |
| 96 | 97 | |
| 97 | 98 | // FT Activity widget |
| 98 | 99 | #define G_TYPE_V3270_FT_ACTIVITY (V3270FTActivity_get_type ()) | ... | ... |
src/v3270ft/activity.c
| ... | ... | @@ -159,3 +159,54 @@ |
| 159 | 159 | g_free(*ptr); |
| 160 | 160 | *ptr = g_strdup(filename); |
| 161 | 161 | } |
| 162 | + | |
| 163 | + static void render_local(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
| 164 | + { | |
| 165 | + V3270FTActivity * activity; | |
| 166 | + gtk_tree_model_get(tree_model, iter, 0, &activity, -1); | |
| 167 | + g_object_set(G_OBJECT(cell),"text",activity->file.local,NULL); | |
| 168 | + } | |
| 169 | + | |
| 170 | + static void render_remote(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
| 171 | + { | |
| 172 | + V3270FTActivity * activity; | |
| 173 | + gtk_tree_model_get(tree_model, iter, 0, &activity, -1); | |
| 174 | + g_object_set(G_OBJECT(cell),"text",activity->file.remote,NULL); | |
| 175 | + } | |
| 176 | + | |
| 177 | + GtkWidget * v3270_activity_list_new() | |
| 178 | + { | |
| 179 | + GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT)); | |
| 180 | + GtkWidget * widget = gtk_tree_view_new_with_model(model); | |
| 181 | + | |
| 182 | + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(widget),TRUE); | |
| 183 | + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(widget),TRUE); | |
| 184 | + | |
| 185 | + gtk_tree_view_insert_column_with_data_func( | |
| 186 | + GTK_TREE_VIEW(widget), | |
| 187 | + -1, | |
| 188 | + _( "Local file" ), | |
| 189 | + gtk_cell_renderer_text_new(), | |
| 190 | + render_local, | |
| 191 | + 0, NULL | |
| 192 | + ); | |
| 193 | + | |
| 194 | + gtk_tree_view_insert_column_with_data_func( | |
| 195 | + GTK_TREE_VIEW(widget), | |
| 196 | + -1, | |
| 197 | + _( "Remote file" ), | |
| 198 | + gtk_cell_renderer_text_new(), | |
| 199 | + render_remote, | |
| 200 | + 0, NULL | |
| 201 | + ); | |
| 202 | + | |
| 203 | + return widget; | |
| 204 | + } | |
| 205 | + | |
| 206 | + void v3270_activity_list_append(GtkWidget *widget, GObject *activity) | |
| 207 | + { | |
| 208 | + GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); | |
| 209 | + GtkTreeIter iter; | |
| 210 | + gtk_list_store_append((GtkListStore *) model,&iter); | |
| 211 | + gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1); | |
| 212 | + } | ... | ... |
src/v3270ft/dialog.c
| ... | ... | @@ -79,20 +79,6 @@ static GtkWidget * create_button(V3270FTDialog *widget, FT_BUTTON id, const gcha |
| 79 | 79 | } |
| 80 | 80 | */ |
| 81 | 81 | |
| 82 | -static void render_local(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
| 83 | -{ | |
| 84 | - GObject * activity; | |
| 85 | - gtk_tree_model_get(tree_model, iter, 0, &activity, -1); | |
| 86 | - g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_local_filename(activity),NULL); | |
| 87 | -} | |
| 88 | - | |
| 89 | -static void render_remote(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
| 90 | -{ | |
| 91 | - GObject * activity; | |
| 92 | - gtk_tree_model_get(tree_model, iter, 0, &activity, -1); | |
| 93 | - g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_remote_filename(activity),NULL); | |
| 94 | -} | |
| 95 | - | |
| 96 | 82 | static void V3270FTDialog_init(V3270FTDialog *widget) |
| 97 | 83 | { |
| 98 | 84 | widget->settings = v3270_ft_settings_new(); |
| ... | ... | @@ -112,35 +98,11 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
| 112 | 98 | gtk_widget_set_vexpand(GTK_WIDGET(widget->settings),FALSE); |
| 113 | 99 | gtk_box_pack_start(GTK_BOX(container),widget->settings,FALSE,FALSE,0); |
| 114 | 100 | |
| 115 | - | |
| 116 | 101 | // Create file list view |
| 117 | 102 | { |
| 118 | - GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT)); | |
| 119 | - GtkWidget * files = gtk_tree_view_new_with_model(model); | |
| 120 | - | |
| 103 | + GtkWidget * files = v3270_activity_list_new(); | |
| 121 | 104 | gtk_widget_set_tooltip_markup(files,_("Files to transfer")); |
| 122 | 105 | |
| 123 | - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(files),TRUE); | |
| 124 | - gtk_tree_view_set_reorderable(GTK_TREE_VIEW(files),TRUE); | |
| 125 | - | |
| 126 | - gtk_tree_view_insert_column_with_data_func( | |
| 127 | - GTK_TREE_VIEW(files), | |
| 128 | - -1, | |
| 129 | - _( "Local file" ), | |
| 130 | - gtk_cell_renderer_text_new(), | |
| 131 | - render_local, | |
| 132 | - 0, NULL | |
| 133 | - ); | |
| 134 | - | |
| 135 | - gtk_tree_view_insert_column_with_data_func( | |
| 136 | - GTK_TREE_VIEW(files), | |
| 137 | - -1, | |
| 138 | - _( "Remote file" ), | |
| 139 | - gtk_cell_renderer_text_new(), | |
| 140 | - render_remote, | |
| 141 | - 0, NULL | |
| 142 | - ); | |
| 143 | - | |
| 144 | 106 | // Put the view inside a scrolled window. |
| 145 | 107 | GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); |
| 146 | 108 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); |
| ... | ... | @@ -153,15 +115,15 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
| 153 | 115 | |
| 154 | 116 | gtk_box_pack_start(GTK_BOX(container),frame,TRUE,TRUE,0); |
| 155 | 117 | |
| 156 | - /* | |
| 118 | +#ifdef DEBUG | |
| 157 | 119 | GObject * activity = v3270_ft_activity_new(); |
| 120 | + | |
| 158 | 121 | v3270_ft_activity_set_local_filename(activity,"local---"); |
| 159 | 122 | v3270_ft_activity_set_remote_filename(activity,"remote---"); |
| 160 | 123 | |
| 161 | - GtkTreeIter iter; | |
| 162 | - gtk_list_store_append((GtkListStore *) model,&iter); | |
| 163 | - gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1); | |
| 164 | - */ | |
| 124 | + v3270_activity_list_append(files,activity); | |
| 125 | + v3270_ft_settings_set_activity(widget->settings,activity); | |
| 126 | +#endif // DEBUG | |
| 165 | 127 | |
| 166 | 128 | } |
| 167 | 129 | ... | ... |
src/v3270ft/settings.c
| ... | ... | @@ -387,3 +387,11 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP |
| 387 | 387 | return GTK_WIDGET(g_object_new(GTK_TYPE_V3270_FT_SETTINGS, NULL)); |
| 388 | 388 | } |
| 389 | 389 | |
| 390 | + LIB3270_EXPORT void v3270_ft_settings_set_activity(GtkWidget *widget, GObject *activity) | |
| 391 | + { | |
| 392 | + V3270FTSettings * settings = GTK_V3270_FT_SETTINGS(widget); | |
| 393 | + | |
| 394 | + gtk_entry_set_text(settings->file.local,v3270_ft_activity_get_local_filename(activity)); | |
| 395 | + gtk_entry_set_text(settings->file.remote,v3270_ft_activity_get_remote_filename(activity)); | |
| 396 | + | |
| 397 | + } | ... | ... |