Commit 817d865ec0a10aee39cba5f475aeb015122e46a3
1 parent
5e7ea614
Exists in
master
and in
1 other branch
Addint "save" methods.
Showing
13 changed files
with
235 additions
and
28 deletions
Show diff stats
.gitignore
Makefile.in
@@ -38,7 +38,8 @@ SOURCES= \ | @@ -38,7 +38,8 @@ SOURCES= \ | ||
38 | $(wildcard src/trace/*.c) \ | 38 | $(wildcard src/trace/*.c) \ |
39 | $(wildcard src/dialogs/*.c) \ | 39 | $(wildcard src/dialogs/*.c) \ |
40 | $(wildcard src/dialogs/@OSNAME@/*.c) \ | 40 | $(wildcard src/dialogs/@OSNAME@/*.c) \ |
41 | - $(wildcard src/dialogs/print/*.c) | 41 | + $(wildcard src/dialogs/print/*.c) \ |
42 | + $(wildcard src/dialogs/save/*.c) | ||
42 | 43 | ||
43 | TEST_SOURCES= \ | 44 | TEST_SOURCES= \ |
44 | $(wildcard src/testprogram/*.c) | 45 | $(wildcard src/testprogram/*.c) |
src/dialogs/print/print.c
@@ -210,7 +210,7 @@ | @@ -210,7 +210,7 @@ | ||
210 | 210 | ||
211 | 211 | ||
212 | // Setup defaults | 212 | // Setup defaults |
213 | - widget->mode = LIB3270_PRINT_ALL; | 213 | + widget->mode = LIB3270_CONTENT_ALL; |
214 | widget->show_selection = FALSE; | 214 | widget->show_selection = FALSE; |
215 | widget->font.name = NULL; // g_strdup(v3270_default_font); | 215 | widget->font.name = NULL; // g_strdup(v3270_default_font); |
216 | widget->contents.width = 80; | 216 | widget->contents.width = 80; |
@@ -219,7 +219,7 @@ | @@ -219,7 +219,7 @@ | ||
219 | 219 | ||
220 | } | 220 | } |
221 | 221 | ||
222 | -V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT_MODE mode) | 222 | +V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_CONTENT_OPTION mode) |
223 | { | 223 | { |
224 | g_return_val_if_fail(GTK_IS_V3270(widget),NULL); | 224 | g_return_val_if_fail(GTK_IS_V3270(widget),NULL); |
225 | 225 | ||
@@ -237,7 +237,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | @@ -237,7 +237,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | ||
237 | 237 | ||
238 | /*--[ Convenience ]----------------------------------------------------------------------------------*/ | 238 | /*--[ Convenience ]----------------------------------------------------------------------------------*/ |
239 | 239 | ||
240 | - int v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode, GError **error) | 240 | + int v3270_print(GtkWidget *widget, LIB3270_CONTENT_OPTION mode, GError **error) |
241 | { | 241 | { |
242 | if(*error) | 242 | if(*error) |
243 | { | 243 | { |
@@ -262,26 +262,26 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | @@ -262,26 +262,26 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | ||
262 | 262 | ||
263 | int v3270_print_all(GtkWidget *widget, GError **error) | 263 | int v3270_print_all(GtkWidget *widget, GError **error) |
264 | { | 264 | { |
265 | - return v3270_print(widget,LIB3270_PRINT_ALL,error); | 265 | + return v3270_print(widget,LIB3270_CONTENT_ALL,error); |
266 | } | 266 | } |
267 | 267 | ||
268 | int v3270_print_selected(GtkWidget *widget, GError **error) | 268 | int v3270_print_selected(GtkWidget *widget, GError **error) |
269 | { | 269 | { |
270 | - return v3270_print(widget,LIB3270_PRINT_SELECTED,error); | 270 | + return v3270_print(widget,LIB3270_CONTENT_SELECTED,error); |
271 | } | 271 | } |
272 | 272 | ||
273 | int v3270_print_copy(GtkWidget *widget, GError **error) | 273 | int v3270_print_copy(GtkWidget *widget, GError **error) |
274 | { | 274 | { |
275 | - return v3270_print(widget,LIB3270_PRINT_COPY,error); | 275 | + return v3270_print(widget,LIB3270_CONTENT_COPY,error); |
276 | } | 276 | } |
277 | 277 | ||
278 | - void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_PRINT_MODE mode) | 278 | + void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_CONTENT_OPTION mode) |
279 | { | 279 | { |
280 | operation->mode = mode; | 280 | operation->mode = mode; |
281 | 281 | ||
282 | switch(mode) | 282 | switch(mode) |
283 | { | 283 | { |
284 | - case LIB3270_PRINT_ALL: | 284 | + case LIB3270_CONTENT_ALL: |
285 | { | 285 | { |
286 | size_t row, col; | 286 | size_t row, col; |
287 | int baddr = 0; | 287 | int baddr = 0; |
@@ -304,7 +304,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | @@ -304,7 +304,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | ||
304 | } | 304 | } |
305 | break; | 305 | break; |
306 | 306 | ||
307 | - case LIB3270_PRINT_SELECTED: | 307 | + case LIB3270_CONTENT_SELECTED: |
308 | { | 308 | { |
309 | unsigned int row, col; | 309 | unsigned int row, col; |
310 | unsigned int baddr = 0; | 310 | unsigned int baddr = 0; |
@@ -361,7 +361,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | @@ -361,7 +361,7 @@ V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT | ||
361 | } | 361 | } |
362 | break; | 362 | break; |
363 | 363 | ||
364 | - case LIB3270_PRINT_COPY: | 364 | + case LIB3270_CONTENT_COPY: |
365 | { | 365 | { |
366 | lib3270_autoptr(char) copy = v3270_get_copy(GTK_WIDGET(operation->widget)); | 366 | lib3270_autoptr(char) copy = v3270_get_copy(GTK_WIDGET(operation->widget)); |
367 | if(copy) | 367 | if(copy) |
src/dialogs/print/private.h
@@ -48,21 +48,21 @@ | @@ -48,21 +48,21 @@ | ||
48 | 48 | ||
49 | struct _V3270PrintOperation | 49 | struct _V3270PrintOperation |
50 | { | 50 | { |
51 | - GtkPrintOperation parent; | ||
52 | - GdkRGBA colors[V3270_COLOR_COUNT]; | ||
53 | - LIB3270_PRINT_MODE mode; | ||
54 | - v3270 * widget; | ||
55 | - H3270 * session; | 51 | + GtkPrintOperation parent; |
52 | + GdkRGBA colors[V3270_COLOR_COUNT]; | ||
53 | + LIB3270_CONTENT_OPTION mode; | ||
54 | + v3270 * widget; | ||
55 | + H3270 * session; | ||
56 | 56 | ||
57 | - size_t lpp; ///< @brief Lines per page (in rows). | ||
58 | - size_t pages; ///< @brief Number of pages. | ||
59 | - gboolean show_selection; ///< @brief Print selection box? | 57 | + size_t lpp; ///< @brief Lines per page (in rows). |
58 | + size_t pages; ///< @brief Number of pages. | ||
59 | + gboolean show_selection; ///< @brief Print selection box? | ||
60 | 60 | ||
61 | struct | 61 | struct |
62 | { | 62 | { |
63 | - size_t width; ///< @brief Width of the contents (in columns); | ||
64 | - size_t height; ///< @brief Height of the contents (in rows); | ||
65 | - column **text; ///< @brief Report contents. | 63 | + size_t width; ///< @brief Width of the contents (in columns); |
64 | + size_t height; ///< @brief Height of the contents (in rows); | ||
65 | + column **text; ///< @brief Report contents. | ||
66 | } contents; | 66 | } contents; |
67 | 67 | ||
68 | struct | 68 | struct |
src/dialogs/private.h
@@ -0,0 +1,68 @@ | @@ -0,0 +1,68 @@ | ||
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 <config.h> | ||
31 | + #include <errno.h> | ||
32 | + #include <string.h> | ||
33 | + #include "private.h" | ||
34 | + | ||
35 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | ||
36 | + | ||
37 | + LIB3270_EXPORT int v3270_save(GtkWidget *widget, LIB3270_CONTENT_OPTION mode, const gchar *filename, GError **error) | ||
38 | + { | ||
39 | + if(*error) | ||
40 | + { | ||
41 | + return -1; | ||
42 | + } | ||
43 | + | ||
44 | + if(!v3270_is_connected(widget)) | ||
45 | + { | ||
46 | + *error = g_error_new(g_quark_from_static_string(PACKAGE_NAME),ENOTCONN,"%s",strerror(ENOTCONN)); | ||
47 | + return -1; | ||
48 | + } | ||
49 | + | ||
50 | + lib3270_trace_event(v3270_get_session(widget),"save action activated (type=%d)",(int) mode); | ||
51 | + return lib3270_save(v3270_get_session(widget),mode,filename); | ||
52 | + } | ||
53 | + | ||
54 | + int v3270_save_all(GtkWidget *widget, const gchar *filename, GError **error) | ||
55 | + { | ||
56 | + return v3270_save(widget,LIB3270_CONTENT_ALL,filename,error); | ||
57 | + } | ||
58 | + | ||
59 | + int v3270_save_selected(GtkWidget *widget, const gchar *filename, GError **error) | ||
60 | + { | ||
61 | + return v3270_save(widget,LIB3270_CONTENT_SELECTED,filename,error); | ||
62 | + } | ||
63 | + | ||
64 | + int v3270_save_copy(GtkWidget *widget, const gchar *filename, GError **error) | ||
65 | + { | ||
66 | + return v3270_save(widget,LIB3270_CONTENT_COPY,filename,error); | ||
67 | + } | ||
68 | + |
@@ -0,0 +1,81 @@ | @@ -0,0 +1,81 @@ | ||
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 <v3270.h> | ||
31 | + #include <v3270/print.h> | ||
32 | + #include <lib3270/log.h> | ||
33 | + #include <lib3270/trace.h> | ||
34 | + | ||
35 | +/*--[ Widget definition ]----------------------------------------------------------------------------*/ | ||
36 | + | ||
37 | + struct _V3270PrintOperationClass | ||
38 | + { | ||
39 | + GtkPrintOperationClass parent_class; | ||
40 | + | ||
41 | + }; | ||
42 | + | ||
43 | + typedef struct _column | ||
44 | + { | ||
45 | + unsigned char c; | ||
46 | + unsigned short attr; | ||
47 | + } column; | ||
48 | + | ||
49 | + struct _V3270PrintOperation | ||
50 | + { | ||
51 | + GtkPrintOperation parent; | ||
52 | + GdkRGBA colors[V3270_COLOR_COUNT]; | ||
53 | + LIB3270_CONTENT_OPTION mode; | ||
54 | + v3270 * widget; | ||
55 | + H3270 * session; | ||
56 | + | ||
57 | + size_t lpp; ///< @brief Lines per page (in rows). | ||
58 | + size_t pages; ///< @brief Number of pages. | ||
59 | + gboolean show_selection; ///< @brief Print selection box? | ||
60 | + | ||
61 | + struct | ||
62 | + { | ||
63 | + size_t width; ///< @brief Width of the contents (in columns); | ||
64 | + size_t height; ///< @brief Height of the contents (in rows); | ||
65 | + column **text; ///< @brief Report contents. | ||
66 | + } contents; | ||
67 | + | ||
68 | + struct | ||
69 | + { | ||
70 | + gchar * name; | ||
71 | + v3270FontInfo info; | ||
72 | + } font; | ||
73 | + | ||
74 | + }; | ||
75 | + | ||
76 | +/*--[ Prototypes ]-----------------------------------------------------------------------------------*/ | ||
77 | + | ||
78 | + G_GNUC_INTERNAL void V3270PrintOperation_begin_print(GtkPrintOperation *prt, GtkPrintContext *context); | ||
79 | + G_GNUC_INTERNAL void V3270PrintOperation_draw_page(GtkPrintOperation *prt, GtkPrintContext *context, gint page); | ||
80 | + | ||
81 | + |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
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 "private.h" | ||
31 | + | ||
32 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | ||
33 | + | ||
34 | + | ||
35 | + |
src/include/v3270.h
@@ -265,12 +265,18 @@ | @@ -265,12 +265,18 @@ | ||
265 | LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); | 265 | LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); |
266 | 266 | ||
267 | 267 | ||
268 | - LIB3270_EXPORT int v3270_print(GtkWidget *widget, LIB3270_PRINT_MODE mode, GError **error); | ||
269 | - | 268 | + LIB3270_EXPORT int v3270_print(GtkWidget *widget, LIB3270_CONTENT_OPTION mode, GError **error); |
270 | LIB3270_EXPORT int v3270_print_all(GtkWidget *widget, GError **error); | 269 | LIB3270_EXPORT int v3270_print_all(GtkWidget *widget, GError **error); |
271 | LIB3270_EXPORT int v3270_print_selected(GtkWidget *widget, GError **error); | 270 | LIB3270_EXPORT int v3270_print_selected(GtkWidget *widget, GError **error); |
272 | LIB3270_EXPORT int v3270_print_copy(GtkWidget *widget, GError **error); | 271 | LIB3270_EXPORT int v3270_print_copy(GtkWidget *widget, GError **error); |
273 | 272 | ||
273 | + // Save | ||
274 | + LIB3270_EXPORT int v3270_save(GtkWidget *widget, LIB3270_CONTENT_OPTION mode, const gchar *filename, GError **error); | ||
275 | + LIB3270_EXPORT int v3270_save_all(GtkWidget *widget, const gchar *filename, GError **error); | ||
276 | + LIB3270_EXPORT int v3270_save_selected(GtkWidget *widget, const gchar *filename, GError **error); | ||
277 | + LIB3270_EXPORT int v3270_save_copy(GtkWidget *widget, const gchar *filename, GError **error); | ||
278 | + | ||
279 | + // Misc | ||
274 | LIB3270_EXPORT int v3270_exec_command(GtkWidget *widget, const gchar *cmdline); | 280 | LIB3270_EXPORT int v3270_exec_command(GtkWidget *widget, const gchar *cmdline); |
275 | 281 | ||
276 | LIB3270_EXPORT GtkWidget * v3270_dialog_new(GtkWidget *widget, const gchar *title, const gchar *apply); | 282 | LIB3270_EXPORT GtkWidget * v3270_dialog_new(GtkWidget *widget, const gchar *title, const gchar *apply); |
src/include/v3270/print.h
@@ -51,8 +51,8 @@ | @@ -51,8 +51,8 @@ | ||
51 | 51 | ||
52 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ | 52 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ |
53 | 53 | ||
54 | - LIB3270_EXPORT V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_PRINT_MODE mode); | ||
55 | - LIB3270_EXPORT void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_PRINT_MODE mode); | 54 | + LIB3270_EXPORT V3270PrintOperation * v3270_print_operation_new(GtkWidget *widget, LIB3270_CONTENT_OPTION mode); |
55 | + LIB3270_EXPORT void V3270PrintOperation_set_text_by_mode(V3270PrintOperation * operation, LIB3270_CONTENT_OPTION mode); | ||
56 | 56 | ||
57 | LIB3270_EXPORT GtkTreeModel * v3270_font_family_model_new(GtkWidget *widget, const gchar *selected, GtkTreeIter * active); | 57 | LIB3270_EXPORT GtkTreeModel * v3270_font_family_model_new(GtkWidget *widget, const gchar *selected, GtkTreeIter * active); |
58 | LIB3270_EXPORT GtkWidget * v3270_font_selection_new(const gchar *fontname); | 58 | LIB3270_EXPORT GtkWidget * v3270_font_selection_new(const gchar *fontname); |
src/terminal/callbacks.c
@@ -326,7 +326,7 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | @@ -326,7 +326,7 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | ||
326 | } | 326 | } |
327 | 327 | ||
328 | 328 | ||
329 | -static int print(H3270 *session, LIB3270_PRINT_MODE mode) | 329 | +static int print(H3270 *session, LIB3270_CONTENT_OPTION mode) |
330 | { | 330 | { |
331 | GtkWidget * widget = GTK_WIDGET(lib3270_get_user_data(session)); | 331 | GtkWidget * widget = GTK_WIDGET(lib3270_get_user_data(session)); |
332 | GError * error = NULL; | 332 | GError * error = NULL; |
src/testprogram/toolbar.c
@@ -58,6 +58,11 @@ | @@ -58,6 +58,11 @@ | ||
58 | lib3270_disconnect(v3270_get_session(terminal)); | 58 | lib3270_disconnect(v3270_get_session(terminal)); |
59 | } | 59 | } |
60 | 60 | ||
61 | +static void save_all_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) | ||
62 | + { | ||
63 | + lib3270_save_all(v3270_get_session(terminal),NULL); | ||
64 | + } | ||
65 | + | ||
61 | static void ft_clicked(GtkButton *button, GtkWidget *terminal) | 66 | static void ft_clicked(GtkButton *button, GtkWidget *terminal) |
62 | { | 67 | { |
63 | /* | 68 | /* |
@@ -175,7 +180,8 @@ | @@ -175,7 +180,8 @@ | ||
175 | { "gtk-print", G_CALLBACK(print_clicked), "Print screen contents" }, | 180 | { "gtk-print", G_CALLBACK(print_clicked), "Print screen contents" }, |
176 | { "gtk-harddisk", G_CALLBACK(ft_clicked), "Open file transfer dialog" }, | 181 | { "gtk-harddisk", G_CALLBACK(ft_clicked), "Open file transfer dialog" }, |
177 | { "gtk-copy", G_CALLBACK(copy_clicked), "Copy data" }, | 182 | { "gtk-copy", G_CALLBACK(copy_clicked), "Copy data" }, |
178 | - { "gtk-paste", G_CALLBACK(paste_clicked), "Paste data" } | 183 | + { "gtk-paste", G_CALLBACK(paste_clicked), "Paste data" }, |
184 | + { "gtk-save", G_CALLBACK(save_all_clicked), "Save screen" } | ||
179 | }; | 185 | }; |
180 | 186 | ||
181 | GtkWidget * toolbar = gtk_toolbar_new(); | 187 | GtkWidget * toolbar = gtk_toolbar_new(); |
v3270.cbp
@@ -71,6 +71,13 @@ | @@ -71,6 +71,13 @@ | ||
71 | </Unit> | 71 | </Unit> |
72 | <Unit filename="src/dialogs/print/private.h" /> | 72 | <Unit filename="src/dialogs/print/private.h" /> |
73 | <Unit filename="src/dialogs/private.h" /> | 73 | <Unit filename="src/dialogs/private.h" /> |
74 | + <Unit filename="src/dialogs/save/convenience.c"> | ||
75 | + <Option compilerVar="CC" /> | ||
76 | + </Unit> | ||
77 | + <Unit filename="src/dialogs/save/private.h" /> | ||
78 | + <Unit filename="src/dialogs/save/save.c"> | ||
79 | + <Option compilerVar="CC" /> | ||
80 | + </Unit> | ||
74 | <Unit filename="src/dialogs/security.c"> | 81 | <Unit filename="src/dialogs/security.c"> |
75 | <Option compilerVar="CC" /> | 82 | <Option compilerVar="CC" /> |
76 | </Unit> | 83 | </Unit> |