GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkPrintContextGtkPrintContext Изолирует содержимое для представления страниц |
#include <gtk/gtk.h>
GtkPrintContext;
cairo_t* gtk_print_context_get_cairo_context
(GtkPrintContext *context);
GtkPageSetup* gtk_print_context_get_page_setup
(GtkPrintContext *context);
gdouble gtk_print_context_get_width (GtkPrintContext *context);
gdouble gtk_print_context_get_height (GtkPrintContext *context);
gdouble gtk_print_context_get_dpi_x (GtkPrintContext *context);
gdouble gtk_print_context_get_dpi_y (GtkPrintContext *context);
PangoFontMap* gtk_print_context_get_pango_fontmap
(GtkPrintContext *context);
PangoContext* gtk_print_context_create_pango_context
(GtkPrintContext *context);
PangoLayout* gtk_print_context_create_pango_layout
(GtkPrintContext *context);
GObject
+----GtkPrintContext
GtkPrintContext изолирует контекстную информацию, запрашивая представление страниц для печати, такую как cairo контекст и важные параметры размера и разрешения страницы. Он также позволяет легко создать PangoLayout и PangoContext объекты которые соответствуют метрики шрифта cairo поверхности.
GtkPrintContext объекты помещаются к ::begin-print, ::end-print, ::request-page-setup и ::draw-page сигналам в GtkPrintOperation.
Пример 2. Использование GtkPrintContext в ::draw-page callback-фнкции
static void
draw_page (GtkPrintOperation *operation,
GtkPrintContext *context,
int page_nr)
{
cairo_t *cr;
PangoLayout *layout;
PangoFontDescription *desc;
cr = gtk_print_context_get_cairo (context);
/* Рисуем красный прямоугольник, такой же большой как бумага (в пределах границ) */
cairo_set_source_rgb (cr, 1.0, 0, 0);
cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);
cairo_fill (cr);
/* Рисуем некоторые линии */
cairo_move_to (cr, 20, 10);
cairo_line_to (cr, 40, 20);
cairo_arc (cr, 60, 60, 20, 0, M_PI);
cairo_line_to (cr, 80, 20);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_set_line_width (cr, 5);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_stroke (cr);
/* Рисуем некоторый текст */
layout = gtk_print_context_create_layout (context);
pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
desc = pango_font_description_from_string ("sans 28");
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);
cairo_move_to (cr, 30, 20);
pango_cairo_layout_path (cr, layout);
/* Схема шрифта */
cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
cairo_set_line_width (cr, 0.5);
cairo_stroke_preserve (cr);
/* Заполнение шрифта */
cairo_set_source_rgb (cr, 0, 0.0, 1.0);
cairo_fill (cr);
g_object_unref (layout);
}
Поддержка печати добавлена начиная с версии GTK+ 2.10.
typedef struct _GtkPrintContext GtkPrintContext;
gtk_print_context_get_cairo_context ()
cairo_t* gtk_print_context_get_cairo_context (GtkPrintContext *context);
Определяет cairo контекст связанный с GtkPrintContext.
|
|
Возвращает : |
cairo контекст |
Начиная с версии 2.10
GtkPageSetup* gtk_print_context_get_page_setup
(GtkPrintContext *context);
Возвращает GtkPageSetup который описывает параметры страницы GtkPrintContext.
|
|
Возвращает : |
Параметры страницы |
Начиная с версии 2.10
gdouble gtk_print_context_get_width (GtkPrintContext *context);Определяет ширину GtkPrintContext, в пикселах.
|
|
Возвращает : |
ширина |
Начиная с версии 2.10
gdouble gtk_print_context_get_height (GtkPrintContext *context);Определяет высоту GtkPrintContext, в пикселах.
|
|
Возвращает : |
высота |
Начиная с версии 2.10
gdouble gtk_print_context_get_dpi_x (GtkPrintContext *context);Определяет горизонтальное разрешение GtkPrintContext, в точках на дюйм.
|
|
Возвращает : |
Горизонтальное разрешение |
Начиная с версии 2.10
gdouble gtk_print_context_get_dpi_y (GtkPrintContext *context);Определяет вертикальное разрешение GtkPrintContext, в точках на дюйм.
|
|
Возвращает : |
Вертикальное разрешение |
Начиная с версии 2.10
PangoFontMap* gtk_print_context_get_pango_fontmap
(GtkPrintContext *context);
Возвращает PangoFontMap который подходит для использования с GtkPrintContext.
|
|
Возвращает : |
Отображаемый шрифт |
Начиная с версии 2.10
PangoContext* gtk_print_context_create_pango_context
(GtkPrintContext *context);
Создаёт новый PangoContext который может использоваться с GtkPrintContext.
|
|
Возвращает : |
новый Pango контекст для |
Начиная с версии 2.10
PangoLayout* gtk_print_context_create_pango_layout
(GtkPrintContext *context);
Создаёт новый PangoLayout который подходит для использования с GtkPrintContext.
|
|
Возвращает : |
новый Pango формат для |
Начиная с версии 2.10