Trait sourceview4::prelude::PrintCompositorExt
source · pub trait PrintCompositorExt: IsA<PrintCompositor> + Sealed + 'static {
Show 46 methods
// Provided methods
fn draw_page(&self, context: &PrintContext, page_nr: i32) { ... }
fn body_font_name(&self) -> Option<GString> { ... }
fn bottom_margin(&self, unit: Unit) -> f64 { ... }
fn buffer(&self) -> Option<Buffer> { ... }
fn footer_font_name(&self) -> Option<GString> { ... }
fn header_font_name(&self) -> Option<GString> { ... }
fn is_highlight_syntax(&self) -> bool { ... }
fn left_margin(&self, unit: Unit) -> f64 { ... }
fn line_numbers_font_name(&self) -> Option<GString> { ... }
fn n_pages(&self) -> i32 { ... }
fn pagination_progress(&self) -> f64 { ... }
fn is_print_footer(&self) -> bool { ... }
fn is_print_header(&self) -> bool { ... }
fn print_line_numbers(&self) -> u32 { ... }
fn right_margin(&self, unit: Unit) -> f64 { ... }
fn tab_width(&self) -> u32 { ... }
fn top_margin(&self, unit: Unit) -> f64 { ... }
fn wrap_mode(&self) -> WrapMode { ... }
fn paginate(&self, context: &PrintContext) -> bool { ... }
fn set_body_font_name(&self, font_name: &str) { ... }
fn set_bottom_margin(&self, margin: f64, unit: Unit) { ... }
fn set_footer_font_name(&self, font_name: Option<&str>) { ... }
fn set_footer_format(
&self,
separator: bool,
left: Option<&str>,
center: Option<&str>,
right: Option<&str>
) { ... }
fn set_header_font_name(&self, font_name: Option<&str>) { ... }
fn set_header_format(
&self,
separator: bool,
left: Option<&str>,
center: Option<&str>,
right: Option<&str>
) { ... }
fn set_highlight_syntax(&self, highlight: bool) { ... }
fn set_left_margin(&self, margin: f64, unit: Unit) { ... }
fn set_line_numbers_font_name(&self, font_name: Option<&str>) { ... }
fn set_print_footer(&self, print: bool) { ... }
fn set_print_header(&self, print: bool) { ... }
fn set_print_line_numbers(&self, interval: u32) { ... }
fn set_right_margin(&self, margin: f64, unit: Unit) { ... }
fn set_tab_width(&self, width: u32) { ... }
fn set_top_margin(&self, margin: f64, unit: Unit) { ... }
fn set_wrap_mode(&self, wrap_mode: WrapMode) { ... }
fn connect_body_font_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_footer_font_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_header_font_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_highlight_syntax_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_line_numbers_font_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_n_pages_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_print_footer_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_print_header_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_print_line_numbers_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_tab_width_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
fn connect_wrap_mode_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId { ... }
}
Expand description
Provided Methods§
sourcefn draw_page(&self, context: &PrintContext, page_nr: i32)
fn draw_page(&self, context: &PrintContext, page_nr: i32)
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:
<informalexample>``<programlisting>
// 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);
}
</programlisting>``</informalexample>
context
the gtk::PrintContext
encapsulating the context information that is required when
drawing the page for printing.
page_nr
the number of the page to print.
sourcefn body_font_name(&self) -> Option<GString>
fn body_font_name(&self) -> Option<GString>
Returns the name of the font used to print the text body. The returned string
must be freed with g_free()
.
Returns
a new string containing the name of the font used to print the text body.
sourcefn bottom_margin(&self, unit: Unit) -> f64
fn bottom_margin(&self, unit: Unit) -> f64
Returns the name of the font used to print the page footer.
The returned string must be freed with g_free()
.
Returns
a new string containing the name of the font used to print the page footer.
sourcefn header_font_name(&self) -> Option<GString>
fn header_font_name(&self) -> Option<GString>
Returns the name of the font used to print the page header.
The returned string must be freed with g_free()
.
Returns
a new string containing the name of the font used to print the page header.
sourcefn is_highlight_syntax(&self) -> bool
fn is_highlight_syntax(&self) -> bool
sourcefn left_margin(&self, unit: Unit) -> f64
fn left_margin(&self, unit: Unit) -> f64
sourcefn line_numbers_font_name(&self) -> Option<GString>
fn line_numbers_font_name(&self) -> Option<GString>
Returns the name of the font used to print line numbers on the left margin.
The returned string must be freed with g_free()
.
Returns
a new string containing the name of the font used to print line numbers on the left margin.
sourcefn n_pages(&self) -> i32
fn n_pages(&self) -> i32
Returns the number of pages in the document or <code>
-1</code>
if the
document has not been completely paginated.
Returns
the number of pages in the document or <code>
-1</code>
if the
document has not been completely paginated.
sourcefn pagination_progress(&self) -> f64
fn pagination_progress(&self) -> f64
Returns the current fraction of the document pagination that has been completed.
Returns
a fraction from 0.0 to 1.0 inclusive.
Determines if a footer is set to be printed for each page. A
footer will be printed if this function returns true
<emphasis>
and</emphasis>
some format strings have been specified
with set_footer_format()
.
Returns
true
if the footer is set to be printed.
sourcefn is_print_header(&self) -> bool
fn is_print_header(&self) -> bool
Determines if a header is set to be printed for each page. A
header will be printed if this function returns true
<emphasis>
and</emphasis>
some format strings have been specified
with set_header_format()
.
Returns
true
if the header is set to be printed.
sourcefn print_line_numbers(&self) -> u32
fn print_line_numbers(&self) -> u32
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).
Returns
the interval of printed line numbers.
sourcefn right_margin(&self, unit: Unit) -> f64
fn right_margin(&self, unit: Unit) -> f64
sourcefn top_margin(&self, unit: Unit) -> f64
fn top_margin(&self, unit: Unit) -> f64
sourcefn paginate(&self, context: &PrintContext) -> bool
fn paginate(&self, context: &PrintContext) -> bool
Paginate the document associated with the self
.
In order to support non-blocking pagination, document is paginated in small chunks.
Each time paginate()
is invoked, a chunk of the document
is paginated. To paginate the entire document, paginate()
must be invoked multiple times.
It returns true
if the document has been completely paginated, otherwise it returns false
.
This method has been designed to be invoked in the handler of the GtkPrintOperation::paginate
signal,
as shown in the following example:
<informalexample>``<programlisting>
// 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;
}
</programlisting>``</informalexample>
If you don’t need to do pagination in chunks, you can simply do it all in the
GtkPrintOperation::begin-print
handler, and set the number of pages from there, like
in the following example:
<informalexample>``<programlisting>
// 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);
}
</programlisting>``</informalexample>
context
the gtk::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.
sourcefn set_body_font_name(&self, font_name: &str)
fn set_body_font_name(&self, font_name: &str)
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
paginate()
function.
font_name
the name of the default font for the body text.
sourcefn set_bottom_margin(&self, margin: f64, unit: Unit)
fn set_bottom_margin(&self, margin: f64, unit: Unit)
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
paginate()
function.
font_name
the name of the font for the footer text, or None
.
See set_header_format()
for more information
about the parameters.
separator
true
if you want a separator line to be printed.
left
a format string to print on the left of the footer.
center
a format string to print on the center of the footer.
right
a format string to print on the right of the footer.
sourcefn set_header_font_name(&self, font_name: Option<&str>)
fn set_header_font_name(&self, font_name: Option<&str>)
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
paginate()
function.
font_name
the name of the font for header text, or None
.
sourcefn set_header_format(
&self,
separator: bool,
left: Option<&str>,
center: Option<&str>,
right: Option<&str>
)
fn set_header_format( &self, separator: bool, left: Option<&str>, center: Option<&str>, right: Option<&str> )
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 g_date_time_format()
for more details on the accepted format specifiers.
Additionally the following format specifiers are accepted:
N
: the page numberQ
: 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 set_print_header()
.
This function cannot be called anymore after the first call to the
paginate()
function.
separator
true
if you want a separator line to be printed.
left
a format string to print on the left of the header.
center
a format string to print on the center of the header.
right
a format string to print on the right of the header.
sourcefn set_highlight_syntax(&self, highlight: bool)
fn set_highlight_syntax(&self, highlight: bool)
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
paginate()
function.
highlight
whether syntax should be highlighted.
sourcefn set_left_margin(&self, margin: f64, unit: Unit)
fn set_left_margin(&self, margin: f64, unit: Unit)
sourcefn set_line_numbers_font_name(&self, font_name: Option<&str>)
fn set_line_numbers_font_name(&self, font_name: Option<&str>)
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
paginate()
function.
font_name
the name of the font for line numbers, or None
.
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
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
paginate()
function.
print
true
if you want the footer to be printed.
sourcefn set_print_header(&self, print: bool)
fn set_print_header(&self, print: bool)
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
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
paginate()
function.
print
true
if you want the header to be printed.
sourcefn set_print_line_numbers(&self, interval: u32)
fn set_print_line_numbers(&self, interval: u32)
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
paginate()
function.
interval
interval for printed line numbers.
sourcefn set_right_margin(&self, margin: f64, unit: Unit)
fn set_right_margin(&self, margin: f64, unit: Unit)
sourcefn set_tab_width(&self, width: u32)
fn set_tab_width(&self, width: u32)
Sets the width of tabulation in characters for printed text.
This function cannot be called anymore after the first call to the
paginate()
function.
width
width of tab in characters.
sourcefn set_top_margin(&self, margin: f64, unit: Unit)
fn set_top_margin(&self, margin: f64, unit: Unit)
sourcefn set_wrap_mode(&self, wrap_mode: WrapMode)
fn set_wrap_mode(&self, wrap_mode: WrapMode)
Sets the line wrapping mode for the printed text.
This function cannot be called anymore after the first call to the
paginate()
function.