GtkSource.PrintCompositor¶
- Subclasses:
None
Methods¶
- Inherited:
- Structs:
class |
|
class |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Virtual Methods¶
- Inherited:
Properties¶
Name |
Type |
Flags |
Short Description |
---|---|---|---|
r/w |
|||
r/w/co |
The |
||
r/w |
|||
r/w |
|||
r/w |
|||
r/w |
|||
r |
|||
r/w |
|||
r/w |
|||
r/w |
|||
r/w |
Width of a tab character expressed in spaces |
||
r/w |
Signals¶
- Inherited:
Fields¶
- Inherited:
Name |
Type |
Access |
Description |
---|---|---|---|
parent_instance |
r |
Class Details¶
- class GtkSource.PrintCompositor(**kwargs)¶
- Bases:
- Abstract:
No
- Structure:
- classmethod new(buffer)¶
- Parameters:
buffer (
GtkSource.Buffer
) – theGtkSource.Buffer
to print.- Returns:
a new print compositor object.
- Return type:
Creates a new print compositor that can be used to print buffer.
New in version 2.2.
- classmethod new_from_view(view)¶
- Parameters:
view (
GtkSource.View
) – aGtkSource.View
to get configuration from.- Returns:
a new print compositor object.
- Return type:
Creates a new print compositor that can be used to print the buffer associated with view. This constructor sets some configuration properties to make the printed output match view as much as possible. The properties set are
GtkSource.PrintCompositor
:tab-width
,GtkSource.PrintCompositor
:highlight-syntax
,GtkSource.PrintCompositor
:wrap-mode
,GtkSource.PrintCompositor
:body-font-name
andGtkSource.PrintCompositor
:print-line-numbers
.New in version 2.2.
- draw_page(context, page_nr)¶
- Parameters:
context (
Gtk.PrintContext
) – theGtk.PrintContext
encapsulating the context information that is required when drawing the page for printing.page_nr (
int
) – the number of the page to print.
Draw page page_nr for printing on the the Cairo context encapsuled in context.
This method has been designed to be called in the handler of the #GtkPrintOperation::draw_page signal as shown in the following example:
// Signal handler for the GtkPrintOperation::draw_page signal static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { GtkSourcePrintCompositor *compositor; compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data); gtk_source_print_compositor_draw_page (compositor, context, page_nr); }
- get_body_font_name()¶
- Returns:
a new string containing the name of the font used to print the text body.
- Return type:
Returns the name of the font used to print the text body. The returned string must be freed with
GLib.free
().New in version 2.2.
- get_bottom_margin(unit)¶
- Parameters:
unit (
Gtk.Unit
) – the unit for the return value.- Returns:
the bottom margin.
- Return type:
Gets the bottom margin in units of unit.
New in version 2.2.
- get_buffer()¶
- Returns:
the
GtkSource.Buffer
associated with the compositor.- Return type:
Gets the
GtkSource.Buffer
associated with the compositor. The returned object reference is owned by the compositor object and should not be unreferenced.New in version 2.2.
- Returns:
a new string containing the name of the font used to print the page footer.
- Return type:
Returns the name of the font used to print the page footer. The returned string must be freed with
GLib.free
().New in version 2.2.
- get_header_font_name()¶
- Returns:
a new string containing the name of the font used to print the page header.
- Return type:
Returns the name of the font used to print the page header. The returned string must be freed with
GLib.free
().New in version 2.2.
- get_highlight_syntax()¶
-
Determines whether the printed text will be highlighted according to the buffer rules. Note that highlighting will happen only if the buffer to print has highlighting activated.
New in version 2.2.
- get_left_margin(unit)¶
- Parameters:
unit (
Gtk.Unit
) – the unit for the return value.- Returns:
the left margin
- Return type:
Gets the left margin in units of unit.
New in version 2.2.
- get_line_numbers_font_name()¶
- Returns:
a new string containing the name of the font used to print line numbers on the left margin.
- Return type:
Returns the name of the font used to print line numbers on the left margin. The returned string must be freed with
GLib.free
().New in version 2.2.
- get_n_pages()¶
- Returns:
the number of pages in the document or -1 if the document has not been completely paginated.
- Return type:
Returns the number of pages in the document or -1 if the document has not been completely paginated.
New in version 2.2.
- get_pagination_progress()¶
- Returns:
a fraction from 0.0 to 1.0 inclusive.
- Return type:
Returns the current fraction of the document pagination that has been completed.
New in version 2.2.
-
Determines if a footer is set to be printed for each page. A footer will be printed if this function returns
True
and some format strings have been specified withGtkSource.PrintCompositor.set_footer_format
().New in version 2.2.
- get_print_header()¶
-
Determines if a header is set to be printed for each page. A header will be printed if this function returns
True
and some format strings have been specified withGtkSource.PrintCompositor.set_header_format
().New in version 2.2.
- get_print_line_numbers()¶
- Returns:
the interval of printed line numbers.
- Return type:
Returns the interval used for line number printing. If the value is 0, no line numbers will be printed. The default value is 1 (i.e. numbers printed in all lines).
New in version 2.2.
- get_right_margin(unit)¶
- Parameters:
unit (
Gtk.Unit
) – the unit for the return value.- Returns:
the right margin.
- Return type:
Gets the right margin in units of unit.
New in version 2.2.
- get_tab_width()¶
- Returns:
width of tab.
- Return type:
Returns the width of tabulation in characters for printed text.
New in version 2.2.
- get_top_margin(unit)¶
- Parameters:
unit (
Gtk.Unit
) – the unit for the return value.- Returns:
the top margin.
- Return type:
Gets the top margin in units of unit.
New in version 2.2.
- get_wrap_mode()¶
- Returns:
the line wrap mode.
- Return type:
Gets the line wrapping mode for the printed text.
New in version 2.2.
- paginate(context)¶
- Parameters:
context (
Gtk.PrintContext
) – theGtk.PrintContext
whose parameters (e.g. paper size, print margins, etc.) are used by the the self to paginate the document.- Returns:
True
if the document has been completely paginated,False
otherwise.- Return type:
Paginate the document associated with the self.
In order to support non-blocking pagination, document is paginated in small chunks. Each time
GtkSource.PrintCompositor.paginate
() is invoked, a chunk of the document is paginated. To paginate the entire document,GtkSource.PrintCompositor.paginate
() must be invoked multiple times. It returnsTrue
if the document has been completely paginated, otherwise it returnsFalse
.This method has been designed to be invoked in the handler of the
Gtk.PrintOperation
::paginate
signal, as shown in the following example:// Signal handler for the GtkPrintOperation::paginate signal static gboolean paginate (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { GtkSourcePrintCompositor *compositor; compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data); if (gtk_source_print_compositor_paginate (compositor, context)) { gint n_pages; n_pages = gtk_source_print_compositor_get_n_pages (compositor); gtk_print_operation_set_n_pages (operation, n_pages); return TRUE; } return FALSE; }
If you don’t need to do pagination in chunks, you can simply do it all in the
Gtk.PrintOperation
::begin-print
handler, and set the number of pages from there, like in the following example:// Signal handler for the GtkPrintOperation::begin-print signal static void begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { GtkSourcePrintCompositor *compositor; gint n_pages; compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data); while (!gtk_source_print_compositor_paginate (compositor, context)); n_pages = gtk_source_print_compositor_get_n_pages (compositor); gtk_print_operation_set_n_pages (operation, n_pages); }
New in version 2.2.
- set_body_font_name(font_name)¶
- Parameters:
font_name (
str
) – the name of the default font for the body text.
Sets the default font for the printed text.
font_name should be a string representation of a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_bottom_margin(margin, unit)¶
- Parameters:
Sets the bottom margin used by self.
New in version 2.2.
-
Sets the font for printing the page footer. If
None
is supplied, the default font (i.e. the one being used for the text) will be used instead.font_name should be a string representation of a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- Parameters:
See
GtkSource.PrintCompositor.set_header_format
() for more information about the parameters.New in version 2.2.
- set_header_font_name(font_name)¶
-
Sets the font for printing the page header. If
None
is supplied, the default font (i.e. the one being used for the text) will be used instead.font_name should be a string representation of a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_header_format(separator, left, center, right)¶
- Parameters:
Sets strftime like header format strings, to be printed on the left, center and right of the top of each page. The strings may include strftime(3) codes which will be expanded at print time. A subset of strftime() codes are accepted, see
GLib.DateTime.format
() for more details on the accepted format specifiers. Additionally the following format specifiers are accepted:#N: the page number
#Q: the page count.
separator specifies if a solid line should be drawn to separate the header from the document text.
If
None
is given for any of the three arguments, that particular string will not be printed.For the header to be printed, in addition to specifying format strings, you need to enable header printing with
GtkSource.PrintCompositor.set_print_header
().This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_highlight_syntax(highlight)¶
- Parameters:
highlight (
bool
) – whether syntax should be highlighted.
Sets whether the printed text will be highlighted according to the buffer rules. Both color and font style are applied.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_left_margin(margin, unit)¶
- Parameters:
Sets the left margin used by self.
New in version 2.2.
- set_line_numbers_font_name(font_name)¶
-
Sets the font for printing line numbers on the left margin. If
None
is supplied, the default font (i.e. the one being used for the text) will be used instead.font_name should be a string representation of a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
-
Sets whether you want to print a footer in each page. The footer consists of three pieces of text and an optional line separator, configurable with
GtkSource.PrintCompositor.set_footer_format
().Note that by default the footer format is unspecified, and if it’s empty it will not be printed, regardless of this setting.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_print_header(print_)¶
-
Sets whether you want to print a header in each page. The header consists of three pieces of text and an optional line separator, configurable with
GtkSource.PrintCompositor.set_header_format
().Note that by default the header format is unspecified, and if it’s empty it will not be printed, regardless of this setting.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_print_line_numbers(interval)¶
- Parameters:
interval (
int
) – interval for printed line numbers.
Sets the interval for printed line numbers. If interval is 0 no numbers will be printed. If greater than 0, a number will be printed every interval lines (i.e. 1 will print all line numbers).
Maximum accepted value for interval is 100.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_right_margin(margin, unit)¶
- Parameters:
Sets the right margin used by self.
New in version 2.2.
- set_tab_width(width)¶
- Parameters:
width (
int
) – width of tab in characters.
Sets the width of tabulation in characters for printed text.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- set_top_margin(margin, unit)¶
- Parameters:
Sets the top margin used by self.
New in version 2.2.
- set_wrap_mode(wrap_mode)¶
- Parameters:
wrap_mode (
Gtk.WrapMode
) – aGtk.WrapMode
.
Sets the line wrapping mode for the printed text.
This function cannot be called anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
Property Details¶
- GtkSource.PrintCompositor.props.body_font_name¶
-
Name of the font used for the text body.
Accepted values are strings representing a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.buffer¶
- Name:
buffer
- Type:
- Default Value:
- Flags:
The
GtkSource.Buffer
object to print.New in version 2.2.
-
Name of the font used to print page footer. If this property is unspecified, the text body font is used.
Accepted values are strings representing a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.header_font_name¶
-
Name of the font used to print page header. If this property is unspecified, the text body font is used.
Accepted values are strings representing a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.highlight_syntax¶
-
Whether to print the document with highlighted syntax.
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.line_numbers_font_name¶
-
Name of the font used to print line numbers on the left margin. If this property is unspecified, the text body font is used.
Accepted values are strings representing a font description Pango can understand. (e.g. “Monospace 10”). See
Pango.FontDescription.from_string
() for a description of the format of the string representation.The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.n_pages¶
-
The number of pages in the document or -1 if the document has not been completely paginated.
New in version 2.2.
-
Whether to print a footer in each page.
Note that by default the footer format is unspecified, and if it is unspecified the footer will not be printed, regardless of the value of this property.
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.print_header¶
-
Whether to print a header in each page.
Note that by default the header format is unspecified, and if it is unspecified the header will not be printed, regardless of the value of this property.
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.print_line_numbers¶
-
Interval of printed line numbers. If this property is set to 0 no numbers will be printed. If greater than 0, a number will be printed every “print-line-numbers” lines (i.e. 1 will print all line numbers).
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.tab_width¶
-
Width of a tab character expressed in spaces.
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.
- GtkSource.PrintCompositor.props.wrap_mode¶
- Name:
wrap-mode
- Type:
- Default Value:
- Flags:
Whether to wrap lines never, at word boundaries, or at character boundaries.
The value of this property cannot be changed anymore after the first call to the
GtkSource.PrintCompositor.paginate
() function.New in version 2.2.