Commit 553d56a4e8eed7e8c22ea5996f4cfbfada9db6bd
1 parent
ae787d0a
Exists in
master
and in
5 other branches
Iniciando implementação do dialogo de impressao
Showing
3 changed files
with
74 additions
and
5 deletions
Show diff stats
src/gtk/actions.c
| @@ -458,9 +458,9 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | @@ -458,9 +458,9 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash | ||
| 458 | } | 458 | } |
| 459 | else if(!g_strcasecmp(name,"print")) | 459 | else if(!g_strcasecmp(name,"print")) |
| 460 | { | 460 | { |
| 461 | - static const GCallback cbk[] = { G_CALLBACK(nop_action), | ||
| 462 | - G_CALLBACK(nop_action), | ||
| 463 | - G_CALLBACK(nop_action) | 461 | + static const GCallback cbk[] = { G_CALLBACK(print_all_action), |
| 462 | + G_CALLBACK(print_selected_action), | ||
| 463 | + G_CALLBACK(print_copy_action) | ||
| 464 | }; | 464 | }; |
| 465 | 465 | ||
| 466 | callback = cbk; | 466 | callback = cbk; |
src/gtk/print.c
| @@ -34,10 +34,79 @@ | @@ -34,10 +34,79 @@ | ||
| 34 | 34 | ||
| 35 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 35 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 36 | 36 | ||
| 37 | + static void begin_print(GtkPrintOperation *prt, GtkPrintContext *context, gpointer user_data) | ||
| 38 | + { | ||
| 39 | + trace("%s",__FUNCTION__); | ||
| 40 | + | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + static void draw_page(GtkPrintOperation *prt, GtkPrintContext *context, gint pg, gpointer user_data) | ||
| 44 | + { | ||
| 45 | + trace("%s",__FUNCTION__); | ||
| 46 | + | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + static void done(GtkPrintOperation *prt, GtkPrintOperationResult result, gpointer user_data) | ||
| 50 | + { | ||
| 51 | + trace("%s",__FUNCTION__); | ||
| 52 | + | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + static GObject * create_custom_widget(GtkPrintOperation *prt, gpointer user_data) | ||
| 56 | + { | ||
| 57 | + GtkWidget * font_dialog = gtk_font_selection_new(); | ||
| 58 | + trace("%s",__FUNCTION__); | ||
| 59 | + return G_OBJECT(font_dialog); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + static void custom_widget_apply(GtkPrintOperation *prt, GtkWidget *font_dialog, gpointer user_data) | ||
| 63 | + { | ||
| 64 | + trace("%s",__FUNCTION__); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + static GtkPrintOperation * begin_print_operation(GtkAction *action, GtkWidget *widget) | ||
| 68 | + { | ||
| 69 | + GtkPrintOperation * print = gtk_print_operation_new(); | ||
| 70 | +// GtkPrintSettings * settings = gtk_print_settings_new(); | ||
| 71 | +// GtkPageSetup * setup = gtk_page_setup_new(); | ||
| 72 | + gchar * ptr; | ||
| 73 | + | ||
| 74 | + // Basic setup | ||
| 75 | + gtk_print_operation_set_allow_async(print,FALSE); | ||
| 76 | + | ||
| 77 | + ptr = g_strconcat(PACKAGE_NAME,".",gtk_action_get_name(action),NULL); | ||
| 78 | + gtk_print_operation_set_job_name(print,ptr); | ||
| 79 | + g_free(ptr); | ||
| 80 | + | ||
| 81 | + gtk_print_operation_set_custom_tab_label(print,_( "Style" )); | ||
| 82 | + | ||
| 83 | + gtk_print_operation_set_show_progress(print,TRUE); | ||
| 84 | + | ||
| 85 | + // Common signals | ||
| 86 | + g_signal_connect(print,"begin_print",G_CALLBACK(begin_print),0); | ||
| 87 | + g_signal_connect(print,"draw_page",G_CALLBACK(draw_page),0); | ||
| 88 | + g_signal_connect(print,"done",G_CALLBACK(done),0); | ||
| 89 | +// g_signal_connect(print,"create-custom-widget",G_CALLBACK(create_custom_widget), 0); | ||
| 90 | +// g_signal_connect(print,"custom-widget-apply",G_CALLBACK(custom_widget_apply),0); | ||
| 91 | + | ||
| 92 | + // Finish settings | ||
| 93 | + // gtk_print_operation_set_print_settings(print,settings); | ||
| 94 | + // gtk_print_operation_set_default_page_setup(print,setup); | ||
| 95 | + | ||
| 96 | + return print; | ||
| 97 | + } | ||
| 98 | + | ||
| 37 | void print_all_action(GtkAction *action, GtkWidget *widget) | 99 | void print_all_action(GtkAction *action, GtkWidget *widget) |
| 38 | { | 100 | { |
| 39 | - trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); | 101 | + GtkPrintOperation *print = begin_print_operation(action,widget); |
| 102 | + | ||
| 103 | + trace("Action %s activated on widget %p print=%p",gtk_action_get_name(action),widget,print); | ||
| 104 | + | ||
| 105 | + // Run Print dialog | ||
| 106 | + gtk_print_operation_run(print,GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,GTK_WINDOW(gtk_widget_get_toplevel(widget)),NULL); | ||
| 107 | + | ||
| 40 | 108 | ||
| 109 | + g_object_unref(print); | ||
| 41 | } | 110 | } |
| 42 | 111 | ||
| 43 | void print_selected_action(GtkAction *action, GtkWidget *widget) | 112 | void print_selected_action(GtkAction *action, GtkWidget *widget) |
ui/00default.xml
| @@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
| 37 | <menuitem action='save' src='selected' group='selection' label='Save selected' /> | 37 | <menuitem action='save' src='selected' group='selection' label='Save selected' /> |
| 38 | <menuitem action='save' src='copy' group='clipboard' label='Save copy' /> | 38 | <menuitem action='save' src='copy' group='clipboard' label='Save copy' /> |
| 39 | <separator/> | 39 | <separator/> |
| 40 | - <menuitem action='print' src='all' key='Print' icon='print' group='online' label='Print' /> | 40 | + <menuitem action='print' src='all' key='Print' icon='print' label='Print' /> |
| 41 | <menuitem action='print' src='selected' group='selection' label='Print selected' /> | 41 | <menuitem action='print' src='selected' group='selection' label='Print selected' /> |
| 42 | <menuitem action='print' src='copy' group='clipboard' label='Print copy' /> | 42 | <menuitem action='print' src='copy' group='clipboard' label='Print copy' /> |
| 43 | <separator/> | 43 | <separator/> |