Commit 1bd9a779350335c5a1983d860c1e6a3364caeb13

Authored by Perry Werneck
1 parent b4e98e07
Exists in master and in 1 other branch develop

Working on the new FT dialog components.

src/dialogs/commondialog.c
@@ -62,7 +62,6 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren @@ -62,7 +62,6 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren
62 NULL 62 NULL
63 )); 63 ));
64 64
65 - gtk_window_set_title(GTK_WINDOW(dialog), title);  
66 gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE); 65 gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE);
67 66
68 // https://developer.gnome.org/hig/stable/visual-layout.html.en 67 // https://developer.gnome.org/hig/stable/visual-layout.html.en
@@ -79,11 +78,14 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren @@ -79,11 +78,14 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren
79 78
80 if(header) 79 if(header)
81 { 80 {
  81 + gtk_header_bar_set_title(GTK_HEADER_BAR(header),title);
82 gtk_header_bar_pack_start(GTK_HEADER_BAR(header),create_button(dialog,_("_Cancel"),G_CALLBACK(cancel_clicked))); 82 gtk_header_bar_pack_start(GTK_HEADER_BAR(header),create_button(dialog,_("_Cancel"),G_CALLBACK(cancel_clicked)));
83 gtk_header_bar_pack_end(GTK_HEADER_BAR(header),create_button(dialog,apply,G_CALLBACK(apply_clicked))); 83 gtk_header_bar_pack_end(GTK_HEADER_BAR(header),create_button(dialog,apply,G_CALLBACK(apply_clicked)));
84 } 84 }
85 else 85 else
86 { 86 {
  87 + gtk_window_set_title(GTK_WINDOW(dialog), title);
  88 +
87 gtk_dialog_add_buttons( 89 gtk_dialog_add_buttons(
88 GTK_DIALOG (dialog), 90 GTK_DIALOG (dialog),
89 _("_Cancel"), GTK_RESPONSE_CANCEL, 91 _("_Cancel"), GTK_RESPONSE_CANCEL,
src/include/internals.h
@@ -69,8 +69,20 @@ @@ -69,8 +69,20 @@
69 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); 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); 70 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title);
71 71
  72 + // Activity list widget.
  73 + #define GTK_TYPE_V3270_FT_ACTIVITY_LIST (V3270FTActivityList_get_type ())
  74 + #define GTK_V3270_FT_ACTIVITY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270_FT_ACTIVITY_LIST, V3270FTActivityList))
  75 + #define GTK_V3270_FT_ACTIVITY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270_FT_ACTIVITY_LIST, V3270FTActivityListClass))
  76 + #define GTK_IS_V3270_FT_ACTIVITY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270_FT_ACTIVITY_LIST))
  77 + #define GTK_IS_V3270_FT_ACTIVITY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270_FT_ACTIVITY_LIST))
  78 + #define GTK_V3270_FT_ACTIVITY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270_FT_ACTIVITY_LIST, V3270FTActivityListClass))
  79 +
  80 + typedef struct _V3270FTActivityList V3270FTActivityList;
  81 + typedef struct _V3270FTActivityListClass V3270FTActivityListClass;
  82 +
72 G_GNUC_INTERNAL GtkWidget * v3270_activity_list_new(); 83 G_GNUC_INTERNAL GtkWidget * v3270_activity_list_new();
73 G_GNUC_INTERNAL void v3270_activity_list_append(GtkWidget *widget, GObject *activity); 84 G_GNUC_INTERNAL void v3270_activity_list_append(GtkWidget *widget, GObject *activity);
  85 + G_GNUC_INTERNAL void v3270_activity_list_load(GtkWidget *widget);
74 86
75 G_END_DECLS 87 G_END_DECLS
76 88
src/v3270ft/activity.c
@@ -182,64 +182,13 @@ @@ -182,64 +182,13 @@
182 return G_V3270_FT_ACTIVITY(object)->options; 182 return G_V3270_FT_ACTIVITY(object)->options;
183 } 183 }
184 184
185 - static void render_local(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) 185 + guint v3270_ft_activity_get_value(GObject * object, LIB3270_FT_VALUE id)
186 { 186 {
187 - V3270FTActivity * activity;  
188 - gtk_tree_model_get(tree_model, iter, 0, &activity, -1);  
189 - g_object_set(G_OBJECT(cell),"text",activity->file.local,NULL);  
190 - }  
191 -  
192 - static void render_remote(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data)  
193 - {  
194 - V3270FTActivity * activity;  
195 - gtk_tree_model_get(tree_model, iter, 0, &activity, -1);  
196 - g_object_set(G_OBJECT(cell),"text",activity->file.remote,NULL);  
197 - }  
198 -  
199 - GtkWidget * v3270_activity_list_new()  
200 - {  
201 - GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT));  
202 - GtkWidget * widget = gtk_tree_view_new_with_model(model);  
203 -  
204 - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(widget),TRUE);  
205 - gtk_tree_view_set_reorderable(GTK_TREE_VIEW(widget),TRUE);  
206 -  
207 - gtk_tree_view_insert_column_with_data_func(  
208 - GTK_TREE_VIEW(widget),  
209 - -1,  
210 - _( "Local file" ),  
211 - gtk_cell_renderer_text_new(),  
212 - render_local,  
213 - 0, NULL  
214 - );  
215 -  
216 - gtk_tree_view_insert_column_with_data_func(  
217 - GTK_TREE_VIEW(widget),  
218 - -1,  
219 - _( "Remote file" ),  
220 - gtk_cell_renderer_text_new(),  
221 - render_remote,  
222 - 0, NULL  
223 - );  
224 -  
225 - return widget; 187 + return G_V3270_FT_ACTIVITY(object)->values[id];
226 } 188 }
227 189
228 - void v3270_activity_list_append(GtkWidget *widget, GObject *activity) 190 + void v3270_ft_activity_set_value(GObject * object, LIB3270_FT_VALUE id, guint value)
229 { 191 {
230 - GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));  
231 - GtkTreeIter iter;  
232 - gtk_list_store_append((GtkListStore *) model,&iter);  
233 - gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1);  
234 - }  
235 -  
236 -guint v3270_ft_activity_get_value(GObject * object, LIB3270_FT_VALUE id)  
237 -{  
238 - return G_V3270_FT_ACTIVITY(object)->values[id];  
239 -}  
240 -  
241 -void v3270_ft_activity_set_value(GObject * object, LIB3270_FT_VALUE id, guint value)  
242 -{  
243 G_V3270_FT_ACTIVITY(object)->values[id] = value; 192 G_V3270_FT_ACTIVITY(object)->values[id] = value;
244 -} 193 + }
245 194
src/v3270ft/activitylist.c 0 → 100644
@@ -0,0 +1,163 @@ @@ -0,0 +1,163 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include <internals.h>
  31 + #include "private.h"
  32 + #include "marshal.h"
  33 +
  34 +/*--[ Widget definition ]----------------------------------------------------------------------------*/
  35 +
  36 + enum _SIGNALS
  37 + {
  38 + V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL, ///< @brief Indicates if the list has a file name set.
  39 +
  40 + V3270_ACTIVITY_LIST_LAST_SIGNAL
  41 + };
  42 +
  43 + struct _V3270FTActivityListClass
  44 + {
  45 + GtkTreeViewClass parent_class;
  46 +
  47 + struct
  48 + {
  49 + void (*has_file)(GtkWidget *, gboolean);
  50 + } signal;
  51 +
  52 + };
  53 +
  54 + struct _V3270FTActivityList
  55 + {
  56 + GtkTreeView parent;
  57 + gchar * filename;
  58 +
  59 + };
  60 +
  61 + G_DEFINE_TYPE(V3270FTActivityList, V3270FTActivityList, GTK_TYPE_TREE_VIEW);
  62 +
  63 + static guint v3270_activity_list_signals[V3270_ACTIVITY_LIST_LAST_SIGNAL] = { 0 };
  64 +
  65 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  66 +
  67 + static void dispose(GObject *object)
  68 + {
  69 + debug("%s",__FUNCTION__);
  70 +
  71 + V3270FTActivityList * list = GTK_V3270_FT_ACTIVITY_LIST(object);
  72 +
  73 + g_free(list->filename);
  74 +
  75 + }
  76 +
  77 + static void V3270FTActivityList_has_file(GtkWidget G_GNUC_UNUSED(*widget), gboolean G_GNUC_UNUSED(has_file))
  78 + {
  79 + debug("%s",__FUNCTION__);
  80 + }
  81 +
  82 + static void V3270FTActivityList_class_init(V3270FTActivityListClass *klass)
  83 + {
  84 + GObjectClass * gobject_class = G_OBJECT_CLASS(klass);
  85 +
  86 + gobject_class->dispose = dispose;
  87 +
  88 + klass->signal.has_file = V3270FTActivityList_has_file;
  89 +
  90 + v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL] =
  91 + g_signal_new( "has-file",
  92 + G_OBJECT_CLASS_TYPE (gobject_class),
  93 + G_SIGNAL_RUN_FIRST,
  94 + G_STRUCT_OFFSET (V3270FTActivityListClass, signal.has_file),
  95 + NULL, NULL,
  96 + v3270ft_VOID__VOID_BOOLEAN,
  97 + G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
  98 +
  99 +
  100 + }
  101 +
  102 + static void render_local(GtkTreeViewColumn G_GNUC_UNUSED(*tree_column), GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer G_GNUC_UNUSED(data))
  103 + {
  104 + GObject * activity;
  105 + gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
  106 + g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_local_filename(activity),NULL);
  107 + }
  108 +
  109 + static void render_remote(GtkTreeViewColumn G_GNUC_UNUSED(*tree_column), GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer G_GNUC_UNUSED(data))
  110 + {
  111 + GObject * activity;
  112 + gtk_tree_model_get(tree_model, iter, 0, &activity, -1);
  113 + g_object_set(G_OBJECT(cell),"text",v3270_ft_activity_get_remote_filename(activity),NULL);
  114 + }
  115 +
  116 + static void V3270FTActivityList_init(V3270FTActivityList *widget)
  117 + {
  118 + GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(1,G_TYPE_OBJECT));
  119 +
  120 + widget->filename = NULL;
  121 +
  122 + gtk_tree_view_set_model(GTK_TREE_VIEW(widget),model);
  123 + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(widget),TRUE);
  124 + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(widget),TRUE);
  125 +
  126 + gtk_tree_view_insert_column_with_data_func(
  127 + GTK_TREE_VIEW(widget),
  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(widget),
  137 + -1,
  138 + _( "Remote file" ),
  139 + gtk_cell_renderer_text_new(),
  140 + render_remote,
  141 + 0, NULL
  142 + );
  143 +
  144 + }
  145 +
  146 + GtkWidget * v3270_activity_list_new()
  147 + {
  148 + return g_object_new(GTK_TYPE_V3270_FT_ACTIVITY_LIST, NULL);
  149 + }
  150 +
  151 + void v3270_activity_list_load(GtkWidget *widget)
  152 + {
  153 +
  154 + }
  155 +
  156 + void v3270_activity_list_append(GtkWidget *widget, GObject *activity)
  157 + {
  158 + GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
  159 + GtkTreeIter iter;
  160 + gtk_list_store_append((GtkListStore *) model,&iter);
  161 + gtk_list_store_set((GtkListStore *) model, &iter, 0, activity, -1);
  162 + }
  163 +
src/v3270ft/dialog.c
@@ -38,7 +38,6 @@ @@ -38,7 +38,6 @@
38 GtkDialog parent; 38 GtkDialog parent;
39 39
40 GtkWidget * settings; 40 GtkWidget * settings;
41 - GtkWidget * queue;  
42 41
43 struct { 42 struct {
44 GtkWidget * valid; 43 GtkWidget * valid;
@@ -47,6 +46,13 @@ @@ -47,6 +46,13 @@
47 GtkWidget * reset; 46 GtkWidget * reset;
48 } button; 47 } button;
49 48
  49 + struct {
  50 + GtkWidget * view;
  51 + GtkWidget * load;
  52 + GtkWidget * save;
  53 + GtkWidget * saveAs;
  54 + } queue;
  55 +
50 }; 56 };
51 57
52 struct _V3270FTDialogClass 58 struct _V3270FTDialogClass
@@ -118,14 +124,13 @@ static void reset_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widge @@ -118,14 +124,13 @@ static void reset_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widge
118 static void update_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget) 124 static void update_clicked(GtkButton G_GNUC_UNUSED(*button), V3270FTDialog *widget)
119 { 125 {
120 v3270_ft_settings_update(widget->settings); 126 v3270_ft_settings_update(widget->settings);
121 - gtk_tree_view_columns_autosize(GTK_TREE_VIEW(widget->queue));  
122 - //gtk_widget_queue_draw(widget->queue); 127 + gtk_tree_view_columns_autosize(GTK_TREE_VIEW(widget->queue.view));
123 } 128 }
124 129
125 static void insert_clicked(GtkWidget *button, V3270FTDialog *widget) 130 static void insert_clicked(GtkWidget *button, V3270FTDialog *widget)
126 { 131 {
127 GtkTreeIter iter; 132 GtkTreeIter iter;
128 - GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget->queue)); 133 + GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget->queue.view));
129 134
130 if(gtk_tree_model_get_iter_first(model,&iter)) 135 if(gtk_tree_model_get_iter_first(model,&iter))
131 { 136 {
@@ -164,7 +169,7 @@ static void insert_clicked(GtkWidget *button, V3270FTDialog *widget) @@ -164,7 +169,7 @@ static void insert_clicked(GtkWidget *button, V3270FTDialog *widget)
164 } 169 }
165 170
166 // Not found, insert it. 171 // Not found, insert it.
167 - v3270_activity_list_append(widget->queue,v3270_ft_settings_create_activity(widget->settings)); 172 + v3270_activity_list_append(widget->queue.view,v3270_ft_settings_create_activity(widget->settings));
168 173
169 } 174 }
170 175
@@ -173,7 +178,13 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -173,7 +178,13 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
173 widget->settings = v3270_ft_settings_new(); 178 widget->settings = v3270_ft_settings_new();
174 g_signal_connect(G_OBJECT(widget->settings),"validity",G_CALLBACK(validity_changed),widget); 179 g_signal_connect(G_OBJECT(widget->settings),"validity",G_CALLBACK(validity_changed),widget);
175 180
176 - gtk_window_set_title(GTK_WINDOW(widget),_( "3270 File transfer")); 181 + // Does the dialog have header bar?
  182 + GtkHeaderBar * header = GTK_HEADER_BAR(gtk_dialog_get_header_bar(GTK_DIALOG(widget)));
  183 +
  184 + if(header)
  185 + gtk_header_bar_set_title(header,_( "3270 File transfer"));
  186 + else
  187 + gtk_window_set_title(GTK_WINDOW(widget),_( "3270 File transfer"));
177 188
178 // https://developer.gnome.org/hig/stable/visual-layout.html.en 189 // https://developer.gnome.org/hig/stable/visual-layout.html.en
179 gtk_container_set_border_width(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(widget))),18); 190 gtk_container_set_border_width(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(widget))),18);
@@ -213,14 +224,14 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -213,14 +224,14 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
213 224
214 // Create file list view 225 // Create file list view
215 { 226 {
216 - widget->queue = v3270_activity_list_new();  
217 - gtk_widget_set_tooltip_markup(widget->queue,_("Files to transfer"));  
218 - g_signal_connect(G_OBJECT(widget->queue),"row-activated",G_CALLBACK(activity_selected),widget); 227 + widget->queue.view = v3270_activity_list_new();
  228 + gtk_widget_set_tooltip_markup(widget->queue.view,_("Files to transfer"));
  229 + g_signal_connect(G_OBJECT(widget->queue.view),"row-activated",G_CALLBACK(activity_selected),widget);
219 230
220 // Put the view inside a scrolled window. 231 // Put the view inside a scrolled window.
221 GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL); 232 GtkWidget * scrolled = gtk_scrolled_window_new(NULL,NULL);
222 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); 233 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
223 - gtk_container_add(GTK_CONTAINER(scrolled),widget->queue); 234 + gtk_container_add(GTK_CONTAINER(scrolled),widget->queue.view);
224 235
225 gtk_widget_set_vexpand(scrolled,TRUE); 236 gtk_widget_set_vexpand(scrolled,TRUE);
226 gtk_widget_set_hexpand(scrolled,TRUE); 237 gtk_widget_set_hexpand(scrolled,TRUE);
@@ -236,11 +247,47 @@ static void V3270FTDialog_init(V3270FTDialog *widget) @@ -236,11 +247,47 @@ static void V3270FTDialog_init(V3270FTDialog *widget)
236 v3270_ft_activity_set_remote_filename(activity,"remote---"); 247 v3270_ft_activity_set_remote_filename(activity,"remote---");
237 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); 248 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);
238 249
239 - v3270_activity_list_append(widget->queue,activity); 250 + v3270_activity_list_append(widget->queue.view,activity);
240 #endif // DEBUG 251 #endif // DEBUG
241 252
  253 + // Create Transfer queue buttons
  254 + // https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
  255 + widget->queue.load = gtk_button_new_from_icon_name("document-open",GTK_ICON_SIZE_SMALL_TOOLBAR);
  256 + gtk_widget_set_tooltip_markup(widget->queue.load,_("Get transfer queue from file"));
  257 +
  258 + widget->queue.save = gtk_button_new_from_icon_name("document-save",GTK_ICON_SIZE_SMALL_TOOLBAR);
  259 + gtk_widget_set_tooltip_markup(widget->queue.save,_("Save transfer queue"));
  260 + gtk_widget_set_sensitive(widget->queue.save,FALSE);
  261 +
  262 + widget->queue.saveAs = gtk_button_new_from_icon_name("document-save-as",GTK_ICON_SIZE_SMALL_TOOLBAR);
  263 + gtk_widget_set_tooltip_markup(widget->queue.saveAs,_("Save transfer queue to file"));
  264 +
  265 + if(header)
  266 + {
  267 +
  268 + debug("Dialog %s header bar","have");
  269 + gtk_header_bar_pack_start(header,widget->queue.load);
  270 + gtk_header_bar_pack_start(header,widget->queue.save);
  271 + gtk_header_bar_pack_start(header,widget->queue.saveAs);
  272 +
  273 + gtk_widget_show_all(widget->queue.load);
  274 + }
  275 + else
  276 + {
  277 + debug("Dialog %s header bar","don't have");
  278 +
  279 + GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,6));
  280 + gtk_box_pack_start(GTK_BOX(container),GTK_WIDGET(box),FALSE,FALSE,0);
  281 +
  282 + gtk_box_pack_end(box,widget->queue.load,FALSE,FALSE,0);
  283 + gtk_box_pack_end(box,widget->queue.save,FALSE,FALSE,0);
  284 + gtk_box_pack_end(box,widget->queue.saveAs,FALSE,FALSE,0);
  285 +
  286 + }
  287 +
242 } 288 }
243 289
  290 +
244 } 291 }
245 292
246 LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent) 293 LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent)
@@ -251,7 +298,7 @@ LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent) @@ -251,7 +298,7 @@ LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent)
251 GtkWidget * dialog = 298 GtkWidget * dialog =
252 GTK_WIDGET(g_object_new( 299 GTK_WIDGET(g_object_new(
253 GTK_TYPE_V3270_FT_DIALOG, 300 GTK_TYPE_V3270_FT_DIALOG,
254 - "use-header-bar", 0, // (use_header ? 1 : 0), 301 + "use-header-bar", (use_header ? 1 : 0),
255 NULL 302 NULL
256 )); 303 ));
257 304
src/v3270ft/settings.c
@@ -102,7 +102,6 @@ @@ -102,7 +102,6 @@
102 debug("%s",__FUNCTION__); 102 debug("%s",__FUNCTION__);
103 } 103 }
104 104
105 -  
106 static void V3270FTSettings_class_init(G_GNUC_UNUSED V3270FTSettingsClass *klass) 105 static void V3270FTSettings_class_init(G_GNUC_UNUSED V3270FTSettingsClass *klass)
107 { 106 {
108 GObjectClass * gobject_class = G_OBJECT_CLASS(klass); 107 GObjectClass * gobject_class = G_OBJECT_CLASS(klass);
@@ -148,6 +148,9 @@ @@ -148,6 +148,9 @@
148 <Unit filename="src/v3270ft/activity.c"> 148 <Unit filename="src/v3270ft/activity.c">
149 <Option compilerVar="CC" /> 149 <Option compilerVar="CC" />
150 </Unit> 150 </Unit>
  151 + <Unit filename="src/v3270ft/activitylist.c">
  152 + <Option compilerVar="CC" />
  153 + </Unit>
151 <Unit filename="src/v3270ft/dialog.c"> 154 <Unit filename="src/v3270ft/dialog.c">
152 <Option compilerVar="CC" /> 155 <Option compilerVar="CC" />
153 </Unit> 156 </Unit>