Re: [gedit-list] First pass hack of gedit and gtksourceview port to gtkprintoperation



On Mon, 2006-05-01 at 12:48 +0200, Paolo Maggi wrote:
> [Resending since it seems my previous mail was sent from the wrong address]
> 
> Hi 
> 
> > I'm not sure what is the best way to avoid problems with pagination
> > blocking the ui for a long time. Alex opened a bug about allowing
> rendering
> > to happen in a thread.
> > 
> 
> What about adding a "paginator" interface that programs must/can
> implement? 
> A "paginator" emits signals while proceeding, this signal can be used by
> gtk+ or by the program itself to show a progress bar or similar UI
> element.
> 
> The GtkPrintPaginator interface should emit three signals:
> 
> - begin_page (GtkPrintPaginator *p): emitted when starting to paginate a
> new page
> - finished (GtkPrintPaginator *p): emitted when pagination ends
> - canceled (GtkPrintPaginator *p): if pagination is canceled

It looks strange to me to have the paginator canceling. Surely its the
dialog showed by GtkPrintOperation that does the actual cancel? I guess
it might be useful if you do your own progress dialog.

> The interface should have at least the following methods:
> 
> - setup: to pass the GtkPrintContext, GtkPageSetup and GtkPrintSettings
> (may other info are needed for the pagination too)
> - paginate: to start pagination
> - cancel: to cancel pagination
> - get_page: returns the number of the page being paginated
> - get_page_count: determines the total number of pages the job will
> print; the returned value is only meaningful after pagination has
> finished.
> 
> We can then add the following operations to GtkPrintOperation:
> 
>     void gtk_print_operation_set_paginator (GtkPrintOperation *op, 
>                                             GtkPrintPaginator *p);
> 
>     void gtk_print_operation_set_show_pagination_progress 
>                                  (GtkPrintOperation *op,
>                                   gboolean           show_progress);

Yes, something like this should be quite workable. Would you be
interested in looking at implementing this?

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's an impetuous pirate werewolf searching for his wife's true killer. She's 
a time-travelling hip-hop soap star with an incredible destiny. They fight 
crime! 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]