Commit f5a45c00684ebbfecfc47e5887e7475a3b085967
1 parent
3fdb5c4e
Exists in
master
and in
1 other branch
Adjusting FT dialog.
Showing
3 changed files
with
63 additions
and
41 deletions
Show diff stats
src/dialogs/commondialog.c
... | ... | @@ -96,3 +96,15 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren |
96 | 96 | |
97 | 97 | return dialog; |
98 | 98 | } |
99 | + | |
100 | +GtkHeaderBar * v3270_dialog_get_header_bar(GtkWidget * widget) | |
101 | +{ | |
102 | + gboolean use_header = FALSE; | |
103 | + | |
104 | + g_object_get(G_OBJECT(widget), "use-header-bar", &use_header, NULL); | |
105 | + | |
106 | + if(use_header) | |
107 | + return GTK_HEADER_BAR(gtk_dialog_get_header_bar(GTK_DIALOG(widget))); | |
108 | + | |
109 | + return NULL; | |
110 | +} | ... | ... |
src/include/internals.h
... | ... | @@ -64,10 +64,11 @@ |
64 | 64 | return child; |
65 | 65 | } |
66 | 66 | |
67 | - 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); | |
69 | - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); | |
70 | - G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); | |
67 | + 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); | |
69 | + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); | |
70 | + G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); | |
71 | + G_GNUC_INTERNAL GtkHeaderBar * v3270_dialog_get_header_bar(GtkWidget * widget); | |
71 | 72 | |
72 | 73 | // Activity list widget. |
73 | 74 | #define GTK_TYPE_V3270_FT_ACTIVITY_LIST (V3270FTActivityList_get_type ()) | ... | ... |
src/v3270ft/dialog.c
... | ... | @@ -192,7 +192,7 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
192 | 192 | g_signal_connect(G_OBJECT(widget->settings),"has-activity",G_CALLBACK(has_activity_changed),widget); |
193 | 193 | |
194 | 194 | // Does the dialog have header bar? |
195 | - GtkHeaderBar * header = GTK_HEADER_BAR(gtk_dialog_get_header_bar(GTK_DIALOG(widget))); | |
195 | + GtkHeaderBar * header = v3270_dialog_get_header_bar(GTK_WIDGET(widget)); | |
196 | 196 | |
197 | 197 | if(header) |
198 | 198 | gtk_header_bar_set_title(header,_( "3270 File transfer")); |
... | ... | @@ -239,35 +239,8 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
239 | 239 | |
240 | 240 | } |
241 | 241 | |
242 | - // Create file list view | |
242 | + // Create Transfer queue buttons | |
243 | 243 | { |
244 | - widget->queue.view = v3270_activity_list_new(); | |
245 | - gtk_widget_set_tooltip_markup(widget->queue.view,_("Files to transfer")); | |
246 | - g_signal_connect(G_OBJECT(widget->queue.view),"row-activated",G_CALLBACK(activity_selected),widget); | |
247 | - | |
248 | - // Put the view inside a scrolled window. | |
249 | - GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); | |
250 | - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); | |
251 | - gtk_container_add(GTK_CONTAINER(scrolled),widget->queue.view); | |
252 | - | |
253 | - gtk_widget_set_vexpand(scrolled,TRUE); | |
254 | - gtk_widget_set_hexpand(scrolled,TRUE); | |
255 | - | |
256 | - GtkWidget * frame = v3270_dialog_create_frame(scrolled,_("Transfer queue")); | |
257 | - | |
258 | - gtk_box_pack_start(GTK_BOX(container),frame,TRUE,TRUE,0); | |
259 | - | |
260 | -#ifdef DEBUG | |
261 | - GObject * activity = v3270_ft_activity_new(); | |
262 | - | |
263 | - v3270_ft_activity_set_local_filename(activity,"local---"); | |
264 | - v3270_ft_activity_set_remote_filename(activity,"remote---"); | |
265 | - 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); | |
266 | - | |
267 | - v3270_activity_list_append(widget->queue.view,activity); | |
268 | -#endif // DEBUG | |
269 | - | |
270 | - // Create Transfer queue buttons | |
271 | 244 | // https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html |
272 | 245 | widget->queue.load = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_SMALL_TOOLBAR); |
273 | 246 | gtk_widget_set_tooltip_markup(widget->queue.load,_("Get transfer queue from file")); |
... | ... | @@ -283,29 +256,65 @@ static void V3270FTDialog_init(V3270FTDialog *widget) |
283 | 256 | gtk_widget_set_tooltip_markup(widget->queue.saveAs,_("Save transfer queue to file")); |
284 | 257 | g_signal_connect(widget->queue.saveAs,"clicked",G_CALLBACK(save_queue_as_clicked),widget); |
285 | 258 | |
259 | + } | |
260 | + | |
261 | + // Create file list view | |
262 | + { | |
263 | + widget->queue.view = v3270_activity_list_new(); | |
264 | + gtk_widget_set_tooltip_markup(widget->queue.view,_("Files to transfer")); | |
265 | + g_signal_connect(G_OBJECT(widget->queue.view),"row-activated",G_CALLBACK(activity_selected),widget); | |
266 | + | |
267 | + // Put the view inside a scrolled window. | |
268 | + GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); | |
269 | + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); | |
270 | + gtk_container_add(GTK_CONTAINER(scrolled),widget->queue.view); | |
271 | + | |
272 | + gtk_widget_set_vexpand(scrolled,TRUE); | |
273 | + gtk_widget_set_hexpand(scrolled,TRUE); | |
274 | + | |
286 | 275 | if(header) |
287 | 276 | { |
288 | - | |
289 | 277 | debug("Dialog %s header bar","have"); |
278 | + | |
279 | + GtkWidget * frame = v3270_dialog_create_frame(scrolled,_("Transfer queue")); | |
280 | + gtk_box_pack_start(GTK_BOX(container),frame,TRUE,TRUE,0); | |
281 | + | |
290 | 282 | gtk_header_bar_pack_start(header,widget->queue.load); |
291 | 283 | gtk_header_bar_pack_start(header,widget->queue.save); |
292 | 284 | gtk_header_bar_pack_start(header,widget->queue.saveAs); |
293 | - | |
294 | - gtk_widget_show_all(widget->queue.load); | |
295 | 285 | } |
296 | 286 | else |
297 | 287 | { |
298 | 288 | debug("Dialog %s header bar","don't have"); |
299 | 289 | |
300 | - GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6)); | |
301 | - gtk_box_pack_start(GTK_BOX(container),GTK_WIDGET(box),FALSE,FALSE,0); | |
290 | + GtkWidget * hBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6); | |
291 | + GtkWidget * frame = v3270_dialog_create_frame(hBox,_("Transfer queue")); | |
292 | + gtk_box_pack_start(GTK_BOX(container),frame,TRUE,TRUE,0); | |
293 | + | |
294 | + g_object_set(G_OBJECT(hBox),"margin-start",6,NULL); | |
295 | + g_object_set(G_OBJECT(hBox),"margin-end",6,NULL); | |
296 | + | |
297 | + GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL,6)); | |
298 | + gtk_box_pack_start(GTK_BOX(hBox),GTK_WIDGET(box),FALSE,FALSE,0); | |
299 | + | |
300 | + gtk_box_pack_start(box,widget->queue.load,FALSE,FALSE,0); | |
301 | + gtk_box_pack_start(box,widget->queue.save,FALSE,FALSE,0); | |
302 | + gtk_box_pack_start(box,widget->queue.saveAs,FALSE,FALSE,0); | |
302 | 303 | |
303 | - gtk_box_pack_end(box,widget->queue.load,FALSE,FALSE,0); | |
304 | - gtk_box_pack_end(box,widget->queue.save,FALSE,FALSE,0); | |
305 | - gtk_box_pack_end(box,widget->queue.saveAs,FALSE,FALSE,0); | |
304 | + gtk_box_pack_start(GTK_BOX(hBox),GTK_WIDGET(scrolled),TRUE,TRUE,0); | |
306 | 305 | |
307 | 306 | } |
308 | 307 | |
308 | +#ifdef DEBUG | |
309 | + GObject * activity = v3270_ft_activity_new(); | |
310 | + | |
311 | + v3270_ft_activity_set_local_filename(activity,"local---"); | |
312 | + v3270_ft_activity_set_remote_filename(activity,"remote---"); | |
313 | + 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); | |
314 | + | |
315 | + v3270_activity_list_append(widget->queue.view,activity); | |
316 | +#endif // DEBUG | |
317 | + | |
309 | 318 | } |
310 | 319 | |
311 | 320 | ... | ... |