The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy

GtkPrintContext

GtkPrintContext Изолирует содержимое для представления страниц

Краткое описание

#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.

Детали

GtkPrintContext

typedef struct _GtkPrintContext GtkPrintContext;

gtk_print_context_get_cairo_context ()

cairo_t*    gtk_print_context_get_cairo_context
                                            (GtkPrintContext *context);

Определяет cairo контекст связанный с GtkPrintContext.

context :

GtkPrintContext

Возвращает :

cairo контекст context

Начиная с версии 2.10


gtk_print_context_get_page_setup ()

GtkPageSetup* gtk_print_context_get_page_setup
                                            (GtkPrintContext *context);

Возвращает GtkPageSetup который описывает параметры страницы GtkPrintContext.

context :

GtkPrintContext

Возвращает :

Параметры страницы context

Начиная с версии 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

Начиная с версии 2.10


gtk_print_context_create_pango_context ()

PangoContext* gtk_print_context_create_pango_context
                                            (GtkPrintContext *context);

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

context :

GtkPrintContext

Возвращает :

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

Начиная с версии 2.10


gtk_print_context_create_pango_layout ()

PangoLayout* gtk_print_context_create_pango_layout
                                            (GtkPrintContext *context);

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

context :

GtkPrintContext

Возвращает :

новый Pango формат для context

Начиная с версии 2.10




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру