Spec-Zone.ru › GTK 3.20

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”

staticvoid
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

объект 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.20/GtkPrintContext.html

Spec-Zone.ru

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