Spec-Zone.ru › GTK 3.22

GtkPrintContext

GtkPrintContext — Оборачивает контекст для рисования страниц

Функции

cairo_t * gtk_print_context_get_cairo_context ()
void gtk_print_context_set_cairo_context ()
GtkPageSetup * gtk_print_context_get_page_setup ()
gdouble gtk_print_context_get_width ()
gdouble gtk_print_context_get_height ()
gdouble gtk_print_context_get_dpi_x ()
gdouble gtk_print_context_get_dpi_y ()
PangoFontMap * gtk_print_context_get_pango_fontmap ()
PangoContext * gtk_print_context_create_pango_context ()
PangoLayout * gtk_print_context_create_pango_layout ()
gboolean gtk_print_context_get_hard_margins ()

Типы и значения

GtkPrintContext

Иерархия объектов

    GObject
    ╰── GtkPrintContext

Включаемые файлы

#include <gtk/gtk.h>

Описание

GtkPrintContext содержит информацию о контексте, необходимую для рисования страниц при печати, например, контекст cairo и важные параметры, такие как размер страницы и разрешение. Он также позволяет легко создавать объекты PangoLayout и PangoContext, которые соответствуют метрикам шрифтов cairo-поверхности.

Объекты GtkPrintContext передаются сигналам “begin-print”, “end-print”, “request-page-setup” и “draw-page” объекта GtkPrintOperation.

Использование GtkPrintContext в обратном вызове “draw-page”

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 (context);

  // Draw a red rectangle, as wide as the paper (inside the margins)
  cairo_set_source_rgb (cr, 1.0, 0, 0);
  cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);

  cairo_fill (cr);

  // Draw some lines
  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);

  // Draw some text
  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);

  // Font Outline
  cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
  cairo_set_line_width (cr, 0.5);
  cairo_stroke_preserve (cr);

  // Font Fill
  cairo_set_source_rgb (cr, 0, 0.0, 1.0);
  cairo_fill (cr);

  g_object_unref (layout);
}

Поддержка печати была добавлена в GTK+ 2.10.

Функции

gtk_print_context_get_cairo_context ()

cairo_t *
gtk_print_context_get_cairo_context (GtkPrintContext *context);

Получает контекст cairo, связанный с GtkPrintContext.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

контекст cairo для context .

[transfer none]

С: 2.10

gtk_print_context_set_cairo_context ()

void
gtk_print_context_set_cairo_context (GtkPrintContext *context,
                                     cairo_t *cr,
                                     double dpi_x,
                                     double dpi_y);

Устанавливает новый контекст cairo для контекста печати.

Эта функция предназначена для реализации внутренней предварительной визуализации печати, она не требуется для самой печати, так как GTK+ сам создаёт подходящий контекст cairo в этом случае.

Параметры

context

объект GtkPrintContext

cr

контекст cairo

dpi_x

горизонтальное разрешение для использования с cr

dpi_y

вертикальное разрешение для использования с cr

С: 2.10

gtk_print_context_get_page_setup ()

GtkPageSetup *
gtk_print_context_get_page_setup (GtkPrintContext *context);

Получает GtkPageSetup, определяющий размеры страницы для GtkPrintContext.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

параметры страницы для context .

[transfer none]

С: 2.10

gtk_print_context_get_width ()

gdouble
gtk_print_context_get_width (GtkPrintContext *context);

Возвращает ширину GtkPrintContext в пикселях.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

ширина context

С: 2.10

gtk_print_context_get_height ()

gdouble
gtk_print_context_get_height (GtkPrintContext *context);

Возвращает высоту GtkPrintContext в пикселях.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

высота context

С: 2.10

gtk_print_context_get_dpi_x ()

gdouble
gtk_print_context_get_dpi_x (GtkPrintContext *context);

Возвращает горизонтальное разрешение GtkPrintContext в точках на дюйм.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

горизонтальное разрешение context

С: 2.10

gtk_print_context_get_dpi_y ()

gdouble
gtk_print_context_get_dpi_y (GtkPrintContext *context);

Возвращает вертикальное разрешение GtkPrintContext в точках на дюйм.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

вертикальное разрешение context

С: 2.10

gtk_print_context_get_pango_fontmap ()

PangoFontMap *
gtk_print_context_get_pango_fontmap (GtkPrintContext *context);

Возвращает PangoFontMap, подходящий для использования с GtkPrintContext.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

набор шрифтов для context .

[transfer none]

С: 2.10

gtk_print_context_create_pango_context ()

PangoContext *
gtk_print_context_create_pango_context
                               (GtkPrintContext *context);

Создаёт новый PangoContext, который может быть использован с GtkPrintContext.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

новый контекст Pango для context .

[transfer full]

С: 2.10

gtk_print_context_create_pango_layout ()

PangoLayout *
gtk_print_context_create_pango_layout (GtkPrintContext *context);

Создаёт новый PangoLayout, подходящий для использования с GtkPrintContext.

Параметры

context

объект GtkPrintContext

Возвращаемое значение

новый макет Pango для context .

[transfer full]

С: 2.10

gtk_print_context_get_hard_margins ()

gboolean
gtk_print_context_get_hard_margins (GtkPrintContext *context,
                                    gdouble *top,
                                    gdouble *bottom,
                                    gdouble *left,
                                    gdouble *right);

Получает поля жёстких полей страницы принтера GtkPrintContext в единицах.

Параметры

context

a GtkPrintContext

top

верхнее поле жёстких полей страницы принтера.

[out]

bottom

нижнее поле жёстких полей страницы принтера.

[out]

left

левое поле жёстких полей страницы принтера.

[out]

right

правое поле жёстких полей страницы принтера.

[out]

Возвращаемое значение

TRUE, если поля были получены

С: 2.20

Типы и значения

GtkPrintContext

typedef struct _GtkPrintContext GtkPrintContext;

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkPrintContext.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API