краткое описание#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. деталиgtkprintcontexttypedef struct _gtkprintcontext gtkprintcontext; gtk_print_context_get_cairo_context ()cairo_t* gtk_print_context_get_cairo_context (gtkprintcontext *context); определяет cairo контекст связанный с gtkprintcontext.
начиная с версии 2.10 gtk_print_context_get_page_setup ()gtkpagesetup* gtk_print_context_get_page_setup (gtkprintcontext *context); возвращает gtkpagesetup который описывает параметры страницы gtkprintcontext.
начиная с версии 2.10 gtk_print_context_get_width ()gdouble gtk_print_context_get_width (gtkprintcontext *context); определяет ширину gtkprintcontext, в пикселах.
начиная с версии 2.10 gtk_print_context_get_height ()gdouble gtk_print_context_get_height (gtkprintcontext *context); определяет высоту gtkprintcontext, в пикселах.
начиная с версии 2.10 gtk_print_context_get_dpi_x ()gdouble gtk_print_context_get_dpi_x (gtkprintcontext *context); определяет горизонтальное разрешение gtkprintcontext, в точках на дюйм.
начиная с версии 2.10 gtk_print_context_get_dpi_y ()gdouble gtk_print_context_get_dpi_y (gtkprintcontext *context); определяет вертикальное разрешение gtkprintcontext, в точках на дюйм.
начиная с версии 2.10 gtk_print_context_get_pango_fontmap ()pangofontmap* gtk_print_context_get_pango_fontmap (gtkprintcontext *context); возвращает pangofontmap который подходит для использования с gtkprintcontext.
начиная с версии 2.10 gtk_print_context_create_pango_context ()pangocontext* gtk_print_context_create_pango_context (gtkprintcontext *context); создаёт новый pangocontext который может использоваться с gtkprintcontext.
начиная с версии 2.10 gtk_print_context_create_pango_layout ()pangolayout* gtk_print_context_create_pango_layout (gtkprintcontext *context); создаёт новый pangolayout который подходит для использования с gtkprintcontext.
начиная с версии 2.10 |