Commit 553d56a4e8eed7e8c22ea5996f4cfbfada9db6bd

Authored by perry.werneck@gmail.com
1 parent ae787d0a

Iniciando implementação do dialogo de impressao

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