1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 /* 25 * Conversion parameters: 26 * inFile = GtkSourcePrintCompositor.html 27 * outPack = gsv 28 * outFile = SourcePrintCompositor 29 * strct = GtkSourcePrintCompositor 30 * realStrct= 31 * ctorStrct= 32 * clss = SourcePrintCompositor 33 * interf = 34 * class Code: No 35 * interface Code: No 36 * template for: 37 * extend = 38 * implements: 39 * prefixes: 40 * - gtk_source_print_compositor_ 41 * omit structs: 42 * omit prefixes: 43 * omit code: 44 * omit signals: 45 * imports: 46 * - glib.Str 47 * - gtk.PrintContext 48 * - gsv.SourceBuffer 49 * - gsv.SourceView 50 * structWrap: 51 * - GtkPrintContext* -> PrintContext 52 * - GtkSourceBuffer* -> SourceBuffer 53 * - GtkSourceView* -> SourceView 54 * module aliases: 55 * local aliases: 56 * overrides: 57 */ 58 59 module gsv.SourcePrintCompositor; 60 61 public import gsvc.gsvtypes; 62 63 private import gsvc.gsv; 64 private import glib.ConstructionException; 65 private import gobject.ObjectG; 66 67 68 private import glib.Str; 69 private import gtk.PrintContext; 70 private import gsv.SourceBuffer; 71 private import gsv.SourceView; 72 73 74 75 private import gobject.ObjectG; 76 77 /** 78 * The GtkSourcePrintCompositor object is used to compose a GtkSourceBuffer 79 * for printing. You can set various configuration options to customize the 80 * printed output. GtkSourcePrintCompositor is designed to be used with the 81 * high-level printing API of gtk+, i.e. GtkPrintOperation. 82 * 83 * The margins specified in this object are the layout margins: they define the 84 * blank space bordering the printed area of the pages. They must not be 85 * confused with the "print margins", i.e. the parts of the page that the 86 * printer cannot print on, defined in the GtkPageSetup objects. If the 87 * specified layout margins are smaller than the "print margins", the latter 88 * ones are used as a fallback by the GtkSourcePrintCompositor object, so that 89 * the printed area is not clipped. 90 */ 91 public class SourcePrintCompositor : ObjectG 92 { 93 94 /** the main Gtk struct */ 95 protected GtkSourcePrintCompositor* gtkSourcePrintCompositor; 96 97 98 public GtkSourcePrintCompositor* getSourcePrintCompositorStruct() 99 { 100 return gtkSourcePrintCompositor; 101 } 102 103 104 /** the main Gtk struct as a void* */ 105 protected override void* getStruct() 106 { 107 return cast(void*)gtkSourcePrintCompositor; 108 } 109 110 /** 111 * Sets our main struct and passes it to the parent class 112 */ 113 public this (GtkSourcePrintCompositor* gtkSourcePrintCompositor) 114 { 115 super(cast(GObject*)gtkSourcePrintCompositor); 116 this.gtkSourcePrintCompositor = gtkSourcePrintCompositor; 117 } 118 119 protected override void setStruct(GObject* obj) 120 { 121 super.setStruct(obj); 122 gtkSourcePrintCompositor = cast(GtkSourcePrintCompositor*)obj; 123 } 124 125 /** 126 */ 127 128 /** 129 * Creates a new print compositor that can be used to print buffer. 130 * Since 2.2 131 * Params: 132 * buffer = the GtkSourceBuffer to print. 133 * Throws: ConstructionException GTK+ fails to create the object. 134 */ 135 public this (SourceBuffer buffer) 136 { 137 // GtkSourcePrintCompositor * gtk_source_print_compositor_new (GtkSourceBuffer *buffer); 138 auto p = gtk_source_print_compositor_new((buffer is null) ? null : buffer.getSourceBufferStruct()); 139 if(p is null) 140 { 141 throw new ConstructionException("null returned by gtk_source_print_compositor_new((buffer is null) ? null : buffer.getSourceBufferStruct())"); 142 } 143 this(cast(GtkSourcePrintCompositor*) p); 144 } 145 146 /** 147 * Creates a new print compositor that can be used to print the buffer 148 * associated with view. 149 * This constructor sets some configuration properties to make the 150 * printed output match view as much as possible. The properties set are 151 * "tab-width", "highlight-syntax", 152 * "wrap-mode", "body-font-name" and 153 * "print-line-numbers". 154 * Since 2.2 155 * Params: 156 * view = a GtkSourceView to get configuration from. 157 * Throws: ConstructionException GTK+ fails to create the object. 158 */ 159 public this (SourceView view) 160 { 161 // GtkSourcePrintCompositor * gtk_source_print_compositor_new_from_view (GtkSourceView *view); 162 auto p = gtk_source_print_compositor_new_from_view((view is null) ? null : view.getSourceViewStruct()); 163 if(p is null) 164 { 165 throw new ConstructionException("null returned by gtk_source_print_compositor_new_from_view((view is null) ? null : view.getSourceViewStruct())"); 166 } 167 this(cast(GtkSourcePrintCompositor*) p); 168 } 169 170 /** 171 * Gets the GtkSourceBuffer associated with the compositor. The returned 172 * object reference is owned by the compositor object and 173 * should not be unreferenced. 174 * Since 2.2 175 * Returns: the GtkSourceBuffer associated with the compositor. [transfer none] 176 */ 177 public SourceBuffer getBuffer() 178 { 179 // GtkSourceBuffer * gtk_source_print_compositor_get_buffer (GtkSourcePrintCompositor *compositor); 180 auto p = gtk_source_print_compositor_get_buffer(gtkSourcePrintCompositor); 181 182 if(p is null) 183 { 184 return null; 185 } 186 187 return ObjectG.getDObject!(SourceBuffer)(cast(GtkSourceBuffer*) p); 188 } 189 190 /** 191 * Sets the width of tabulation in characters for printed text. 192 * This function cannot be called anymore after the first call to the 193 * gtk_source_print_compositor_paginate() function. 194 * Since 2.2 195 * Params: 196 * width = width of tab in characters. 197 */ 198 public void setTabWidth(uint width) 199 { 200 // void gtk_source_print_compositor_set_tab_width (GtkSourcePrintCompositor *compositor, guint width); 201 gtk_source_print_compositor_set_tab_width(gtkSourcePrintCompositor, width); 202 } 203 204 /** 205 * Returns the width of tabulation in characters for printed text. 206 * Since 2.2 207 * Returns: width of tab. 208 */ 209 public uint getTabWidth() 210 { 211 // guint gtk_source_print_compositor_get_tab_width (GtkSourcePrintCompositor *compositor); 212 return gtk_source_print_compositor_get_tab_width(gtkSourcePrintCompositor); 213 } 214 215 /** 216 * Sets the line wrapping mode for the printed text. 217 * This function cannot be called anymore after the first call to the 218 * gtk_source_print_compositor_paginate() function. 219 * Since 2.2 220 * Params: 221 * wrapMode = a GtkWrapMode. 222 */ 223 public void setWrapMode(GtkWrapMode wrapMode) 224 { 225 // void gtk_source_print_compositor_set_wrap_mode (GtkSourcePrintCompositor *compositor, GtkWrapMode wrap_mode); 226 gtk_source_print_compositor_set_wrap_mode(gtkSourcePrintCompositor, wrapMode); 227 } 228 229 /** 230 * Gets the line wrapping mode for the printed text. 231 * Since 2.2 232 * Returns: the line wrap mode. 233 */ 234 public GtkWrapMode getWrapMode() 235 { 236 // GtkWrapMode gtk_source_print_compositor_get_wrap_mode (GtkSourcePrintCompositor *compositor); 237 return gtk_source_print_compositor_get_wrap_mode(gtkSourcePrintCompositor); 238 } 239 240 /** 241 * Sets whether the printed text will be highlighted according to the 242 * buffer rules. Both color and font style are applied. 243 * This function cannot be called anymore after the first call to the 244 * gtk_source_print_compositor_paginate() function. 245 * Since 2.2 246 * Params: 247 * highlight = whether syntax should be highlighted. 248 */ 249 public void setHighlightSyntax(int highlight) 250 { 251 // void gtk_source_print_compositor_set_highlight_syntax (GtkSourcePrintCompositor *compositor, gboolean highlight); 252 gtk_source_print_compositor_set_highlight_syntax(gtkSourcePrintCompositor, highlight); 253 } 254 255 /** 256 * Determines whether the printed text will be highlighted according to the 257 * buffer rules. Note that highlighting will happen 258 * only if the buffer to print has highlighting activated. 259 * Since 2.2 260 * Returns: TRUE if the printed output will be highlighted. 261 */ 262 public int getHighlightSyntax() 263 { 264 // gboolean gtk_source_print_compositor_get_highlight_syntax (GtkSourcePrintCompositor *compositor); 265 return gtk_source_print_compositor_get_highlight_syntax(gtkSourcePrintCompositor); 266 } 267 268 /** 269 * Sets the interval for printed line numbers. If interval is 0 no 270 * numbers will be printed. If greater than 0, a number will be 271 * printed every interval lines (i.e. 1 will print all line numbers). 272 * Maximum accepted value for interval is 100. 273 * This function cannot be called anymore after the first call to the 274 * gtk_source_print_compositor_paginate() function. 275 * Since 2.2 276 * Params: 277 * interval = interval for printed line numbers. 278 */ 279 public void setPrintLineNumbers(uint interval) 280 { 281 // void gtk_source_print_compositor_set_print_line_numbers (GtkSourcePrintCompositor *compositor, guint interval); 282 gtk_source_print_compositor_set_print_line_numbers(gtkSourcePrintCompositor, interval); 283 } 284 285 /** 286 * Returns the interval used for line number printing. If the 287 * value is 0, no line numbers will be printed. The default value is 288 * 1 (i.e. numbers printed in all lines). 289 * Since 2.2 290 * Returns: the interval of printed line numbers. 291 */ 292 public uint getPrintLineNumbers() 293 { 294 // guint gtk_source_print_compositor_get_print_line_numbers (GtkSourcePrintCompositor *compositor); 295 return gtk_source_print_compositor_get_print_line_numbers(gtkSourcePrintCompositor); 296 } 297 298 /** 299 * Sets the default font for the printed text. 300 * font_name should be a 301 * string representation of a font description Pango can understand. 302 * (e.g. "Monospace 10"). See pango_font_description_from_string() 303 * for a description of the format of the string representation. 304 * This function cannot be called anymore after the first call to the 305 * gtk_source_print_compositor_paginate() function. 306 * Since 2.2 307 * Params: 308 * fontName = the name of the default font for the body text. 309 */ 310 public void setBodyFontName(string fontName) 311 { 312 // void gtk_source_print_compositor_set_body_font_name (GtkSourcePrintCompositor *compositor, const gchar *font_name); 313 gtk_source_print_compositor_set_body_font_name(gtkSourcePrintCompositor, Str.toStringz(fontName)); 314 } 315 316 /** 317 * Returns the name of the font used to print the text body. The returned string 318 * must be freed with g_free(). 319 * Since 2.2 320 * Returns: a new string containing the name of the font used to print the text body. 321 */ 322 public string getBodyFontName() 323 { 324 // gchar * gtk_source_print_compositor_get_body_font_name (GtkSourcePrintCompositor *compositor); 325 return Str.toString(gtk_source_print_compositor_get_body_font_name(gtkSourcePrintCompositor)); 326 } 327 328 /** 329 * Sets the font for printing line numbers on the left margin. If 330 * NULL is supplied, the default font (i.e. the one being used for the 331 * text) will be used instead. 332 * font_name should be a 333 * string representation of a font description Pango can understand. 334 * (e.g. "Monospace 10"). See pango_font_description_from_string() 335 * for a description of the format of the string representation. 336 * This function cannot be called anymore after the first call to the 337 * gtk_source_print_compositor_paginate() function. 338 * Since 2.2 339 * Params: 340 * fontName = the name of the font for line numbers, or NULL. [allow-none] 341 */ 342 public void setLineNumbersFontName(string fontName) 343 { 344 // void gtk_source_print_compositor_set_line_numbers_font_name (GtkSourcePrintCompositor *compositor, const gchar *font_name); 345 gtk_source_print_compositor_set_line_numbers_font_name(gtkSourcePrintCompositor, Str.toStringz(fontName)); 346 } 347 348 /** 349 * Returns the name of the font used to print line numbers on the left margin. 350 * The returned string must be freed with g_free(). 351 * Since 2.2 352 * Returns: a new string containing the name of the font used to print line numbers on the left margin. 353 */ 354 public string getLineNumbersFontName() 355 { 356 // gchar * gtk_source_print_compositor_get_line_numbers_font_name (GtkSourcePrintCompositor *compositor); 357 return Str.toString(gtk_source_print_compositor_get_line_numbers_font_name(gtkSourcePrintCompositor)); 358 } 359 360 /** 361 * Sets the font for printing the page header. If 362 * NULL is supplied, the default font (i.e. the one being used for the 363 * text) will be used instead. 364 * font_name should be a 365 * string representation of a font description Pango can understand. 366 * (e.g. "Monospace 10"). See pango_font_description_from_string() 367 * for a description of the format of the string representation. 368 * This function cannot be called anymore after the first call to the 369 * gtk_source_print_compositor_paginate() function. 370 * Since 2.2 371 * Params: 372 * fontName = the name of the font for header text, or NULL. [allow-none] 373 */ 374 public void setHeaderFontName(string fontName) 375 { 376 // void gtk_source_print_compositor_set_header_font_name (GtkSourcePrintCompositor *compositor, const gchar *font_name); 377 gtk_source_print_compositor_set_header_font_name(gtkSourcePrintCompositor, Str.toStringz(fontName)); 378 } 379 380 /** 381 * Returns the name of the font used to print the page header. 382 * The returned string must be freed with g_free(). 383 * Since 2.2 384 * Returns: a new string containing the name of the font used to print the page header. 385 */ 386 public string getHeaderFontName() 387 { 388 // gchar * gtk_source_print_compositor_get_header_font_name (GtkSourcePrintCompositor *compositor); 389 return Str.toString(gtk_source_print_compositor_get_header_font_name(gtkSourcePrintCompositor)); 390 } 391 392 /** 393 * Sets the font for printing the page footer. If 394 * NULL is supplied, the default font (i.e. the one being used for the 395 * text) will be used instead. 396 * font_name should be a 397 * string representation of a font description Pango can understand. 398 * (e.g. "Monospace 10"). See pango_font_description_from_string() 399 * for a description of the format of the string representation. 400 * This function cannot be called anymore after the first call to the 401 * gtk_source_print_compositor_paginate() function. 402 * Since 2.2 403 * Params: 404 * fontName = the name of the font for the footer text, or NULL. [allow-none] 405 */ 406 public void setFooterFontName(string fontName) 407 { 408 // void gtk_source_print_compositor_set_footer_font_name (GtkSourcePrintCompositor *compositor, const gchar *font_name); 409 gtk_source_print_compositor_set_footer_font_name(gtkSourcePrintCompositor, Str.toStringz(fontName)); 410 } 411 412 /** 413 * Returns the name of the font used to print the page footer. 414 * The returned string must be freed with g_free(). 415 * Since 2.2 416 * Returns: a new string containing the name of the font used to print the page footer. 417 */ 418 public string getFooterFontName() 419 { 420 // gchar * gtk_source_print_compositor_get_footer_font_name (GtkSourcePrintCompositor *compositor); 421 return Str.toString(gtk_source_print_compositor_get_footer_font_name(gtkSourcePrintCompositor)); 422 } 423 424 /** 425 * Gets the top margin in units of unit. 426 * Since 2.2 427 * Params: 428 * unit = the unit for the return value. 429 * Returns: the top margin. 430 */ 431 public double getTopMargin(GtkUnit unit) 432 { 433 // gdouble gtk_source_print_compositor_get_top_margin (GtkSourcePrintCompositor *compositor, GtkUnit unit); 434 return gtk_source_print_compositor_get_top_margin(gtkSourcePrintCompositor, unit); 435 } 436 437 /** 438 * Sets the top margin used by compositor. 439 * Since 2.2 440 * Params: 441 * margin = the new top margin in units of unit 442 * unit = the units for margin 443 */ 444 public void setTopMargin(double margin, GtkUnit unit) 445 { 446 // void gtk_source_print_compositor_set_top_margin (GtkSourcePrintCompositor *compositor, gdouble margin, GtkUnit unit); 447 gtk_source_print_compositor_set_top_margin(gtkSourcePrintCompositor, margin, unit); 448 } 449 450 /** 451 * Gets the bottom margin in units of unit. 452 * Since 2.2 453 * Params: 454 * unit = the unit for the return value. 455 * Returns: the bottom margin. 456 */ 457 public double getBottomMargin(GtkUnit unit) 458 { 459 // gdouble gtk_source_print_compositor_get_bottom_margin (GtkSourcePrintCompositor *compositor, GtkUnit unit); 460 return gtk_source_print_compositor_get_bottom_margin(gtkSourcePrintCompositor, unit); 461 } 462 463 /** 464 * Sets the bottom margin used by compositor. 465 * Since 2.2 466 * Params: 467 * margin = the new bottom margin in units of unit. 468 * unit = the units for margin. 469 */ 470 public void setBottomMargin(double margin, GtkUnit unit) 471 { 472 // void gtk_source_print_compositor_set_bottom_margin (GtkSourcePrintCompositor *compositor, gdouble margin, GtkUnit unit); 473 gtk_source_print_compositor_set_bottom_margin(gtkSourcePrintCompositor, margin, unit); 474 } 475 476 /** 477 * Gets the left margin in units of unit. 478 * Since 2.2 479 * Params: 480 * unit = the unit for the return value. 481 * Returns: the left margin 482 */ 483 public double getLeftMargin(GtkUnit unit) 484 { 485 // gdouble gtk_source_print_compositor_get_left_margin (GtkSourcePrintCompositor *compositor, GtkUnit unit); 486 return gtk_source_print_compositor_get_left_margin(gtkSourcePrintCompositor, unit); 487 } 488 489 /** 490 * Sets the left margin used by compositor. 491 * Since 2.2 492 * Params: 493 * margin = the new left margin in units of unit. 494 * unit = the units for margin. 495 */ 496 public void setLeftMargin(double margin, GtkUnit unit) 497 { 498 // void gtk_source_print_compositor_set_left_margin (GtkSourcePrintCompositor *compositor, gdouble margin, GtkUnit unit); 499 gtk_source_print_compositor_set_left_margin(gtkSourcePrintCompositor, margin, unit); 500 } 501 502 /** 503 * Gets the right margin in units of unit. 504 * Since 2.2 505 * Params: 506 * unit = the unit for the return value. 507 * Returns: the right margin. 508 */ 509 public double getRightMargin(GtkUnit unit) 510 { 511 // gdouble gtk_source_print_compositor_get_right_margin (GtkSourcePrintCompositor *compositor, GtkUnit unit); 512 return gtk_source_print_compositor_get_right_margin(gtkSourcePrintCompositor, unit); 513 } 514 515 /** 516 * Sets the right margin used by compositor. 517 * Since 2.2 518 * Params: 519 * margin = the new right margin in units of unit. 520 * unit = the units for margin. 521 */ 522 public void setRightMargin(double margin, GtkUnit unit) 523 { 524 // void gtk_source_print_compositor_set_right_margin (GtkSourcePrintCompositor *compositor, gdouble margin, GtkUnit unit); 525 gtk_source_print_compositor_set_right_margin(gtkSourcePrintCompositor, margin, unit); 526 } 527 528 /** 529 * Sets whether you want to print a header in each page. The 530 * header consists of three pieces of text and an optional line 531 * separator, configurable with 532 * gtk_source_print_compositor_set_header_format(). 533 * Note that by default the header format is unspecified, and if it's 534 * empty it will not be printed, regardless of this setting. 535 * This function cannot be called anymore after the first call to the 536 * gtk_source_print_compositor_paginate() function. 537 * Since 2.2 538 * Params: 539 * print = TRUE if you want the header to be printed. 540 */ 541 public void setPrintHeader(int print) 542 { 543 // void gtk_source_print_compositor_set_print_header (GtkSourcePrintCompositor *compositor, gboolean print); 544 gtk_source_print_compositor_set_print_header(gtkSourcePrintCompositor, print); 545 } 546 547 /** 548 * Determines if a header is set to be printed for each page. A 549 * header will be printed if this function returns TRUE 550 * and some format strings have been specified 551 * with gtk_source_print_compositor_set_header_format(). 552 * Since 2.2 553 * Returns: TRUE if the header is set to be printed. 554 */ 555 public int getPrintHeader() 556 { 557 // gboolean gtk_source_print_compositor_get_print_header (GtkSourcePrintCompositor *compositor); 558 return gtk_source_print_compositor_get_print_header(gtkSourcePrintCompositor); 559 } 560 561 /** 562 * Sets whether you want to print a footer in each page. The 563 * footer consists of three pieces of text and an optional line 564 * separator, configurable with 565 * gtk_source_print_compositor_set_footer_format(). 566 * Note that by default the footer format is unspecified, and if it's 567 * empty it will not be printed, regardless of this setting. 568 * This function cannot be called anymore after the first call to the 569 * gtk_source_print_compositor_paginate() function. 570 * Since 2.2 571 * Params: 572 * print = TRUE if you want the footer to be printed. 573 */ 574 public void setPrintFooter(int print) 575 { 576 // void gtk_source_print_compositor_set_print_footer (GtkSourcePrintCompositor *compositor, gboolean print); 577 gtk_source_print_compositor_set_print_footer(gtkSourcePrintCompositor, print); 578 } 579 580 /** 581 * Determines if a footer is set to be printed for each page. A 582 * footer will be printed if this function returns TRUE 583 * and some format strings have been specified 584 * with gtk_source_print_compositor_set_footer_format(). 585 * Since 2.2 586 * Returns: TRUE if the footer is set to be printed. 587 */ 588 public int getPrintFooter() 589 { 590 // gboolean gtk_source_print_compositor_get_print_footer (GtkSourcePrintCompositor *compositor); 591 return gtk_source_print_compositor_get_print_footer(gtkSourcePrintCompositor); 592 } 593 594 /** 595 * Sets strftime like header format strings, to be printed on the 596 * left, center and right of the top of each page. The strings may 597 * include strftime(3) codes which will be expanded at print time. 598 * All strftime() codes are accepted, with the addition of #N for the 599 * page number and #Q for the page count. 600 * separator specifies if a solid line should be drawn to separate 601 * the header from the document text. 602 * If NULL is given for any of the three arguments, that particular 603 * string will not be printed. 604 * For the header to be printed, in 605 * addition to specifying format strings, you need to enable header 606 * printing with gtk_source_print_compositor_set_print_header(). 607 * This function cannot be called anymore after the first call to the 608 * gtk_source_print_compositor_paginate() function. 609 * Since 2.2 610 * Params: 611 * separator = TRUE if you want a separator line to be printed. 612 * left = a format string to print on the left of the header. [allow-none] 613 * center = a format string to print on the center of the header. [allow-none] 614 * right = a format string to print on the right of the header. [allow-none] 615 */ 616 public void setHeaderFormat(int separator, string left, string center, string right) 617 { 618 // void gtk_source_print_compositor_set_header_format (GtkSourcePrintCompositor *compositor, gboolean separator, const gchar *left, const gchar *center, const gchar *right); 619 gtk_source_print_compositor_set_header_format(gtkSourcePrintCompositor, separator, Str.toStringz(left), Str.toStringz(center), Str.toStringz(right)); 620 } 621 622 /** 623 * Sets strftime like header format strings, to be printed on the 624 * left, center and right of the bottom of each page. The strings may 625 * include strftime(3) codes which will be expanded at print time. 626 * All strftime() codes are accepted, with the addition of #N for the 627 * page number and #Q for the page count. 628 * separator specifies if a solid line should be drawn to separate 629 * the footer from the document text. 630 * If NULL is given for any of the three arguments, that particular 631 * string will not be printed. 632 * For the footer to be printed, in 633 * addition to specifying format strings, you need to enable footer 634 * printing with gtk_source_print_compositor_set_print_footer(). 635 * This function cannot be called anymore after the first call to the 636 * gtk_source_print_compositor_paginate() function. 637 * Since 2.2 638 * Params: 639 * separator = TRUE if you want a separator line to be printed. 640 * left = a format string to print on the left of the footer. [allow-none] 641 * center = a format string to print on the center of the footer. [allow-none] 642 * right = a format string to print on the right of the footer. [allow-none] 643 */ 644 public void setFooterFormat(int separator, string left, string center, string right) 645 { 646 // void gtk_source_print_compositor_set_footer_format (GtkSourcePrintCompositor *compositor, gboolean separator, const gchar *left, const gchar *center, const gchar *right); 647 gtk_source_print_compositor_set_footer_format(gtkSourcePrintCompositor, separator, Str.toStringz(left), Str.toStringz(center), Str.toStringz(right)); 648 } 649 650 /** 651 * Returns the number of pages in the document or -1 if the 652 * document has not been completely paginated. 653 * Since 2.2 654 * Returns: the number of pages in the document or -1 if the document has not been completely paginated. 655 */ 656 public int getNPages() 657 { 658 // gint gtk_source_print_compositor_get_n_pages (GtkSourcePrintCompositor *compositor); 659 return gtk_source_print_compositor_get_n_pages(gtkSourcePrintCompositor); 660 } 661 662 /** 663 * Paginate the document associated with the compositor. 664 * In order to support non-blocking pagination, document is paginated in small chunks. 665 * Each time gtk_source_print_compositor_paginate() is invoked, a chunk of the document 666 * is paginated. To paginate the entire document, gtk_source_print_compositor_paginate() 667 * must be invoked multiple times. 668 * It returns TRUE if the document has been completely paginated, otherwise it returns FALSE. 669 * This method has been designed to be invoked in the handler of the "paginate" signal, 670 * Since 2.2 671 * Params: 672 * context = the GtkPrintContext whose parameters (e.g. paper size, print margins, etc.) 673 * are used by the the compositor to paginate the document. 674 * Returns: TRUE if the document has been completely paginated, FALSE otherwise. 675 */ 676 public int paginate(PrintContext context) 677 { 678 // gboolean gtk_source_print_compositor_paginate (GtkSourcePrintCompositor *compositor, GtkPrintContext *context); 679 return gtk_source_print_compositor_paginate(gtkSourcePrintCompositor, (context is null) ? null : context.getPrintContextStruct()); 680 } 681 682 /** 683 * Returns the current fraction of the document pagination that has been completed. 684 * Since 2.2 685 * Returns: a fraction from 0.0 to 1.0 inclusive. 686 */ 687 public double getPaginationProgress() 688 { 689 // gdouble gtk_source_print_compositor_get_pagination_progress (GtkSourcePrintCompositor *compositor); 690 return gtk_source_print_compositor_get_pagination_progress(gtkSourcePrintCompositor); 691 } 692 693 /** 694 * Draw page page_nr for printing on the the Cairo context encapsuled in context. 695 * This method has been designed to be called in the handler of the "draw_page" signal 696 * Params: 697 * context = the GtkPrintContext encapsulating the context information that is required when 698 * drawing the page for printing. 699 * pageNr = the number of the page to print. 700 */ 701 public void drawPage(PrintContext context, int pageNr) 702 { 703 // void gtk_source_print_compositor_draw_page (GtkSourcePrintCompositor *compositor, GtkPrintContext *context, gint page_nr); 704 gtk_source_print_compositor_draw_page(gtkSourcePrintCompositor, (context is null) ? null : context.getPrintContextStruct(), pageNr); 705 } 706 }