Spec-Zone.ru › GTK 4.0

GtkPrintContext

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

Функции

cairo_t * gtk_print_context_get_cairo_context ()
void gtk_print_context_set_cairo_context ()
GtkPageSetup * gtk_print_context_get_page_setup ()
double gtk_print_context_get_width ()
double gtk_print_context_get_height ()
double gtk_print_context_get_dpi_x ()
double 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_pango_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_print_context_get_cairo_context ()

cairo_t *
gtk_print_context_get_cairo_context (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

контекст cairo объекта context .

[transfer none]

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

gtk_print_context_get_page_setup ()

GtkPageSetup *
gtk_print_context_get_page_setup (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

объект настроек страницы context .

[transfer none]

gtk_print_context_get_width ()

double
gtk_print_context_get_width (GtkPrintContext *context);

Получает ширину GtkPrintContext в пикселях.

Параметры

context

объект GtkPrintContext

Возвращает

ширину context

gtk_print_context_get_height ()

double
gtk_print_context_get_height (GtkPrintContext *context);

Получает высоту GtkPrintContext в пикселях.

Параметры

context

объект GtkPrintContext

Возвращает

высоту context

gtk_print_context_get_dpi_x ()

double
gtk_print_context_get_dpi_x (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

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

gtk_print_context_get_dpi_y ()

double
gtk_print_context_get_dpi_y (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

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

gtk_print_context_get_pango_fontmap ()

PangoFontMap *
gtk_print_context_get_pango_fontmap (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

карту шрифтов context .

[transfer none]

gtk_print_context_create_pango_context ()

PangoContext *
gtk_print_context_create_pango_context
                               (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

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

[transfer full]

gtk_print_context_create_pango_layout ()

PangoLayout *
gtk_print_context_create_pango_layout (GtkPrintContext *context);

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

Параметры

context

объект GtkPrintContext

Возвращает

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

[transfer full]

gtk_print_context_get_hard_margins ()

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

Получает поля отступов принтера, заданные аппаратной частью, для GtkPrintContext, в единицах.

Параметры

context

a GtkPrintContext

top

верхний отступ принтера, заданный аппаратной частью.

[out]

bottom

нижний отступ принтера, заданный аппаратной частью.

[out]

left

левый отступ принтера, заданный аппаратной частью.

[out]

right

правый отступ принтера, заданный аппаратной частью.

[out]

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

TRUE если отступы были получены.

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

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-old.gnome.org/gtk4/4.0/GtkPrintContext.html

Spec-Zone.ru

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