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 | ... | ... |