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 = VteTerminal.html 27 * outPack = vte 28 * outFile = Terminal 29 * strct = VteTerminal 30 * realStrct= 31 * ctorStrct= 32 * clss = Terminal 33 * interf = 34 * class Code: Yes 35 * interface Code: No 36 * template for: 37 * extend = 38 * implements: 39 * - ScrollableIF 40 * prefixes: 41 * - vte_terminal_ 42 * - vte_ 43 * omit structs: 44 * omit prefixes: 45 * omit code: 46 * omit signals: 47 * imports: 48 * - glib.Str 49 * - glib.ErrorG 50 * - glib.GException 51 * - glib.ArrayG 52 * - glib.Regex 53 * - gio.Cancellable 54 * - gio.OutputStream 55 * - gdk.Color 56 * - gdk.Cursor 57 * - gdk.RGBA 58 * - gtk.Adjustment 59 * - gtk.MenuShell 60 * - pango.PgFontDescription 61 * - vte.Pty 62 * - gtk.ScrollableIF 63 * - gtk.ScrollableT 64 * structWrap: 65 * - GArray* -> ArrayG 66 * - GCancellable* -> Cancellable 67 * - GOutputStream* -> OutputStream 68 * - GRegex* -> Regex 69 * - GdkColor* -> Color 70 * - GdkCursor* -> Cursor 71 * - GdkRGBA* -> RGBA 72 * - GtkAdjustment* -> Adjustment 73 * - GtkMenuShell* -> MenuShell 74 * - PangoFontDescription* -> PgFontDescription 75 * - VtePty* -> Pty 76 * module aliases: 77 * local aliases: 78 * overrides: 79 */ 80 81 module vte.Terminal; 82 83 public import vtec.vtetypes; 84 85 private import vtec.vte; 86 private import glib.ConstructionException; 87 private import gobject.ObjectG; 88 89 private import gobject.Signals; 90 public import gtkc.gdktypes; 91 92 private import glib.Str; 93 private import glib.ErrorG; 94 private import glib.GException; 95 private import glib.ArrayG; 96 private import glib.Regex; 97 private import gio.Cancellable; 98 private import gio.OutputStream; 99 private import gdk.Color; 100 private import gdk.Cursor; 101 private import gdk.RGBA; 102 private import gtk.Adjustment; 103 private import gtk.MenuShell; 104 private import pango.PgFontDescription; 105 private import vte.Pty; 106 private import gtk.ScrollableIF; 107 private import gtk.ScrollableT; 108 109 110 111 private import gtk.Widget; 112 113 /** 114 * A VteTerminal is a terminal emulator implemented as a GTK2 widget. 115 */ 116 public class Terminal : Widget, ScrollableIF 117 { 118 119 /** the main Gtk struct */ 120 protected VteTerminal* vteTerminal; 121 122 123 public VteTerminal* getTerminalStruct() 124 { 125 return vteTerminal; 126 } 127 128 129 /** the main Gtk struct as a void* */ 130 protected override void* getStruct() 131 { 132 return cast(void*)vteTerminal; 133 } 134 135 /** 136 * Sets our main struct and passes it to the parent class 137 */ 138 public this (VteTerminal* vteTerminal) 139 { 140 super(cast(GtkWidget*)vteTerminal); 141 this.vteTerminal = vteTerminal; 142 } 143 144 protected override void setStruct(GObject* obj) 145 { 146 super.setStruct(obj); 147 vteTerminal = cast(VteTerminal*)obj; 148 } 149 150 // add the Scrollable capabilities 151 mixin ScrollableT!(VteTerminal); 152 153 alias Widget.setOpacity setOpacity; 154 155 /** 156 */ 157 int[string] connectedSignals; 158 159 void delegate(Terminal)[] onBeepListeners; 160 /** 161 * This signal is emitted when the a child sends a beep request to the 162 * terminal. 163 */ 164 void addOnBeep(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 165 { 166 if ( !("beep" in connectedSignals) ) 167 { 168 Signals.connectData( 169 getStruct(), 170 "beep", 171 cast(GCallback)&callBackBeep, 172 cast(void*)this, 173 null, 174 connectFlags); 175 connectedSignals["beep"] = 1; 176 } 177 onBeepListeners ~= dlg; 178 } 179 extern(C) static void callBackBeep(VteTerminal* vteterminalStruct, Terminal _terminal) 180 { 181 foreach ( void delegate(Terminal) dlg ; _terminal.onBeepListeners ) 182 { 183 dlg(_terminal); 184 } 185 } 186 187 void delegate(guint, guint, Terminal)[] onCharSizeChangedListeners; 188 /** 189 * Emitted whenever selection of a new font causes the values of the 190 * char_width or char_height fields to change. 191 */ 192 void addOnCharSizeChanged(void delegate(guint, guint, Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 193 { 194 if ( !("char-size-changed" in connectedSignals) ) 195 { 196 Signals.connectData( 197 getStruct(), 198 "char-size-changed", 199 cast(GCallback)&callBackCharSizeChanged, 200 cast(void*)this, 201 null, 202 connectFlags); 203 connectedSignals["char-size-changed"] = 1; 204 } 205 onCharSizeChangedListeners ~= dlg; 206 } 207 extern(C) static void callBackCharSizeChanged(VteTerminal* vteterminalStruct, guint width, guint height, Terminal _terminal) 208 { 209 foreach ( void delegate(guint, guint, Terminal) dlg ; _terminal.onCharSizeChangedListeners ) 210 { 211 dlg(width, height, _terminal); 212 } 213 } 214 215 void delegate(Terminal)[] onChildExitedListeners; 216 /** 217 * This signal is emitted when the terminal detects that a child started 218 * using vte_terminal_fork_command() has exited. 219 */ 220 void addOnChildExited(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 221 { 222 if ( !("child-exited" in connectedSignals) ) 223 { 224 Signals.connectData( 225 getStruct(), 226 "child-exited", 227 cast(GCallback)&callBackChildExited, 228 cast(void*)this, 229 null, 230 connectFlags); 231 connectedSignals["child-exited"] = 1; 232 } 233 onChildExitedListeners ~= dlg; 234 } 235 extern(C) static void callBackChildExited(VteTerminal* vteterminalStruct, Terminal _terminal) 236 { 237 foreach ( void delegate(Terminal) dlg ; _terminal.onChildExitedListeners ) 238 { 239 dlg(_terminal); 240 } 241 } 242 243 void delegate(string, guint, Terminal)[] onCommitListeners; 244 /** 245 * Emitted whenever the terminal receives input from the user and 246 * prepares to send it to the child process. The signal is emitted even 247 * when there is no child process. 248 */ 249 void addOnCommit(void delegate(string, guint, Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 250 { 251 if ( !("commit" in connectedSignals) ) 252 { 253 Signals.connectData( 254 getStruct(), 255 "commit", 256 cast(GCallback)&callBackCommit, 257 cast(void*)this, 258 null, 259 connectFlags); 260 connectedSignals["commit"] = 1; 261 } 262 onCommitListeners ~= dlg; 263 } 264 extern(C) static void callBackCommit(VteTerminal* vteterminalStruct, gchar* text, guint size, Terminal _terminal) 265 { 266 foreach ( void delegate(string, guint, Terminal) dlg ; _terminal.onCommitListeners ) 267 { 268 dlg(Str.toString(text), size, _terminal); 269 } 270 } 271 272 void delegate(Terminal)[] onContentsChangedListeners; 273 /** 274 * Emitted whenever the visible appearance of the terminal has changed. 275 * Used primarily by VteTerminalAccessible. 276 */ 277 void addOnContentsChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 278 { 279 if ( !("contents-changed" in connectedSignals) ) 280 { 281 Signals.connectData( 282 getStruct(), 283 "contents-changed", 284 cast(GCallback)&callBackContentsChanged, 285 cast(void*)this, 286 null, 287 connectFlags); 288 connectedSignals["contents-changed"] = 1; 289 } 290 onContentsChangedListeners ~= dlg; 291 } 292 extern(C) static void callBackContentsChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 293 { 294 foreach ( void delegate(Terminal) dlg ; _terminal.onContentsChangedListeners ) 295 { 296 dlg(_terminal); 297 } 298 } 299 300 void delegate(Terminal)[] onCopyClipboardListeners; 301 /** 302 * Emitted whenever vte_terminal_copy_clipboard() is called. 303 */ 304 void addOnCopyClipboard(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 305 { 306 if ( !("copy-clipboard" in connectedSignals) ) 307 { 308 Signals.connectData( 309 getStruct(), 310 "copy-clipboard", 311 cast(GCallback)&callBackCopyClipboard, 312 cast(void*)this, 313 null, 314 connectFlags); 315 connectedSignals["copy-clipboard"] = 1; 316 } 317 onCopyClipboardListeners ~= dlg; 318 } 319 extern(C) static void callBackCopyClipboard(VteTerminal* vteterminalStruct, Terminal _terminal) 320 { 321 foreach ( void delegate(Terminal) dlg ; _terminal.onCopyClipboardListeners ) 322 { 323 dlg(_terminal); 324 } 325 } 326 327 void delegate(Terminal)[] onCurrentDirectoryUriChangedListeners; 328 /** 329 * Emitted when the current directory URI is modified. 330 * Since 0.34 331 */ 332 void addOnCurrentDirectoryUriChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 333 { 334 if ( !("current-directory-uri-changed" in connectedSignals) ) 335 { 336 Signals.connectData( 337 getStruct(), 338 "current-directory-uri-changed", 339 cast(GCallback)&callBackCurrentDirectoryUriChanged, 340 cast(void*)this, 341 null, 342 connectFlags); 343 connectedSignals["current-directory-uri-changed"] = 1; 344 } 345 onCurrentDirectoryUriChangedListeners ~= dlg; 346 } 347 extern(C) static void callBackCurrentDirectoryUriChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 348 { 349 foreach ( void delegate(Terminal) dlg ; _terminal.onCurrentDirectoryUriChangedListeners ) 350 { 351 dlg(_terminal); 352 } 353 } 354 355 void delegate(Terminal)[] onCurrentFileUriChangedListeners; 356 /** 357 * Emitted when the current file URI is modified. 358 * Since 0.34 359 */ 360 void addOnCurrentFileUriChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 361 { 362 if ( !("current-file-uri-changed" in connectedSignals) ) 363 { 364 Signals.connectData( 365 getStruct(), 366 "current-file-uri-changed", 367 cast(GCallback)&callBackCurrentFileUriChanged, 368 cast(void*)this, 369 null, 370 connectFlags); 371 connectedSignals["current-file-uri-changed"] = 1; 372 } 373 onCurrentFileUriChangedListeners ~= dlg; 374 } 375 extern(C) static void callBackCurrentFileUriChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 376 { 377 foreach ( void delegate(Terminal) dlg ; _terminal.onCurrentFileUriChangedListeners ) 378 { 379 dlg(_terminal); 380 } 381 } 382 383 void delegate(Terminal)[] onCursorMovedListeners; 384 /** 385 * Emitted whenever the cursor moves to a new character cell. Used 386 * primarily by VteTerminalAccessible. 387 */ 388 void addOnCursorMoved(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 389 { 390 if ( !("cursor-moved" in connectedSignals) ) 391 { 392 Signals.connectData( 393 getStruct(), 394 "cursor-moved", 395 cast(GCallback)&callBackCursorMoved, 396 cast(void*)this, 397 null, 398 connectFlags); 399 connectedSignals["cursor-moved"] = 1; 400 } 401 onCursorMovedListeners ~= dlg; 402 } 403 extern(C) static void callBackCursorMoved(VteTerminal* vteterminalStruct, Terminal _terminal) 404 { 405 foreach ( void delegate(Terminal) dlg ; _terminal.onCursorMovedListeners ) 406 { 407 dlg(_terminal); 408 } 409 } 410 411 void delegate(Terminal)[] onDecreaseFontSizeListeners; 412 /** 413 * Emitted when the user hits the '-' key while holding the Control key. 414 */ 415 void addOnDecreaseFontSize(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 416 { 417 if ( !("decrease-font-size" in connectedSignals) ) 418 { 419 Signals.connectData( 420 getStruct(), 421 "decrease-font-size", 422 cast(GCallback)&callBackDecreaseFontSize, 423 cast(void*)this, 424 null, 425 connectFlags); 426 connectedSignals["decrease-font-size"] = 1; 427 } 428 onDecreaseFontSizeListeners ~= dlg; 429 } 430 extern(C) static void callBackDecreaseFontSize(VteTerminal* vteterminalStruct, Terminal _terminal) 431 { 432 foreach ( void delegate(Terminal) dlg ; _terminal.onDecreaseFontSizeListeners ) 433 { 434 dlg(_terminal); 435 } 436 } 437 438 void delegate(Terminal)[] onDeiconifyWindowListeners; 439 /** 440 * Emitted at the child application's request. 441 */ 442 void addOnDeiconifyWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 443 { 444 if ( !("deiconify-window" in connectedSignals) ) 445 { 446 Signals.connectData( 447 getStruct(), 448 "deiconify-window", 449 cast(GCallback)&callBackDeiconifyWindow, 450 cast(void*)this, 451 null, 452 connectFlags); 453 connectedSignals["deiconify-window"] = 1; 454 } 455 onDeiconifyWindowListeners ~= dlg; 456 } 457 extern(C) static void callBackDeiconifyWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 458 { 459 foreach ( void delegate(Terminal) dlg ; _terminal.onDeiconifyWindowListeners ) 460 { 461 dlg(_terminal); 462 } 463 } 464 465 void delegate(Terminal)[] onEmulationChangedListeners; 466 /** 467 * Emitted whenever the terminal's emulation changes, only possible at 468 * the parent application's request. 469 */ 470 void addOnEmulationChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 471 { 472 if ( !("emulation-changed" in connectedSignals) ) 473 { 474 Signals.connectData( 475 getStruct(), 476 "emulation-changed", 477 cast(GCallback)&callBackEmulationChanged, 478 cast(void*)this, 479 null, 480 connectFlags); 481 connectedSignals["emulation-changed"] = 1; 482 } 483 onEmulationChangedListeners ~= dlg; 484 } 485 extern(C) static void callBackEmulationChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 486 { 487 foreach ( void delegate(Terminal) dlg ; _terminal.onEmulationChangedListeners ) 488 { 489 dlg(_terminal); 490 } 491 } 492 493 void delegate(Terminal)[] onEncodingChangedListeners; 494 /** 495 * Emitted whenever the terminal's current encoding has changed, either 496 * as a result of receiving a control sequence which toggled between the 497 * local and UTF-8 encodings, or at the parent application's request. 498 */ 499 void addOnEncodingChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 500 { 501 if ( !("encoding-changed" in connectedSignals) ) 502 { 503 Signals.connectData( 504 getStruct(), 505 "encoding-changed", 506 cast(GCallback)&callBackEncodingChanged, 507 cast(void*)this, 508 null, 509 connectFlags); 510 connectedSignals["encoding-changed"] = 1; 511 } 512 onEncodingChangedListeners ~= dlg; 513 } 514 extern(C) static void callBackEncodingChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 515 { 516 foreach ( void delegate(Terminal) dlg ; _terminal.onEncodingChangedListeners ) 517 { 518 dlg(_terminal); 519 } 520 } 521 522 void delegate(Terminal)[] onEofListeners; 523 /** 524 * Emitted when the terminal receives an end-of-file from a child which 525 * is running in the terminal. This signal is frequently (but not 526 * always) emitted with a "child-exited" signal. 527 */ 528 void addOnEof(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 529 { 530 if ( !("eof" in connectedSignals) ) 531 { 532 Signals.connectData( 533 getStruct(), 534 "eof", 535 cast(GCallback)&callBackEof, 536 cast(void*)this, 537 null, 538 connectFlags); 539 connectedSignals["eof"] = 1; 540 } 541 onEofListeners ~= dlg; 542 } 543 extern(C) static void callBackEof(VteTerminal* vteterminalStruct, Terminal _terminal) 544 { 545 foreach ( void delegate(Terminal) dlg ; _terminal.onEofListeners ) 546 { 547 dlg(_terminal); 548 } 549 } 550 551 void delegate(Terminal)[] onIconTitleChangedListeners; 552 /** 553 * Emitted when the terminal's icon_title field is modified. 554 */ 555 void addOnIconTitleChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 556 { 557 if ( !("icon-title-changed" in connectedSignals) ) 558 { 559 Signals.connectData( 560 getStruct(), 561 "icon-title-changed", 562 cast(GCallback)&callBackIconTitleChanged, 563 cast(void*)this, 564 null, 565 connectFlags); 566 connectedSignals["icon-title-changed"] = 1; 567 } 568 onIconTitleChangedListeners ~= dlg; 569 } 570 extern(C) static void callBackIconTitleChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 571 { 572 foreach ( void delegate(Terminal) dlg ; _terminal.onIconTitleChangedListeners ) 573 { 574 dlg(_terminal); 575 } 576 } 577 578 void delegate(Terminal)[] onIconifyWindowListeners; 579 /** 580 * Emitted at the child application's request. 581 */ 582 void addOnIconifyWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 583 { 584 if ( !("iconify-window" in connectedSignals) ) 585 { 586 Signals.connectData( 587 getStruct(), 588 "iconify-window", 589 cast(GCallback)&callBackIconifyWindow, 590 cast(void*)this, 591 null, 592 connectFlags); 593 connectedSignals["iconify-window"] = 1; 594 } 595 onIconifyWindowListeners ~= dlg; 596 } 597 extern(C) static void callBackIconifyWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 598 { 599 foreach ( void delegate(Terminal) dlg ; _terminal.onIconifyWindowListeners ) 600 { 601 dlg(_terminal); 602 } 603 } 604 605 void delegate(Terminal)[] onIncreaseFontSizeListeners; 606 /** 607 * Emitted when the user hits the '+' key while holding the Control key. 608 */ 609 void addOnIncreaseFontSize(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 610 { 611 if ( !("increase-font-size" in connectedSignals) ) 612 { 613 Signals.connectData( 614 getStruct(), 615 "increase-font-size", 616 cast(GCallback)&callBackIncreaseFontSize, 617 cast(void*)this, 618 null, 619 connectFlags); 620 connectedSignals["increase-font-size"] = 1; 621 } 622 onIncreaseFontSizeListeners ~= dlg; 623 } 624 extern(C) static void callBackIncreaseFontSize(VteTerminal* vteterminalStruct, Terminal _terminal) 625 { 626 foreach ( void delegate(Terminal) dlg ; _terminal.onIncreaseFontSizeListeners ) 627 { 628 dlg(_terminal); 629 } 630 } 631 632 void delegate(Terminal)[] onLowerWindowListeners; 633 /** 634 * Emitted at the child application's request. 635 */ 636 void addOnLowerWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 637 { 638 if ( !("lower-window" in connectedSignals) ) 639 { 640 Signals.connectData( 641 getStruct(), 642 "lower-window", 643 cast(GCallback)&callBackLowerWindow, 644 cast(void*)this, 645 null, 646 connectFlags); 647 connectedSignals["lower-window"] = 1; 648 } 649 onLowerWindowListeners ~= dlg; 650 } 651 extern(C) static void callBackLowerWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 652 { 653 foreach ( void delegate(Terminal) dlg ; _terminal.onLowerWindowListeners ) 654 { 655 dlg(_terminal); 656 } 657 } 658 659 void delegate(Terminal)[] onMaximizeWindowListeners; 660 /** 661 * Emitted at the child application's request. 662 */ 663 void addOnMaximizeWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 664 { 665 if ( !("maximize-window" in connectedSignals) ) 666 { 667 Signals.connectData( 668 getStruct(), 669 "maximize-window", 670 cast(GCallback)&callBackMaximizeWindow, 671 cast(void*)this, 672 null, 673 connectFlags); 674 connectedSignals["maximize-window"] = 1; 675 } 676 onMaximizeWindowListeners ~= dlg; 677 } 678 extern(C) static void callBackMaximizeWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 679 { 680 foreach ( void delegate(Terminal) dlg ; _terminal.onMaximizeWindowListeners ) 681 { 682 dlg(_terminal); 683 } 684 } 685 686 void delegate(guint, guint, Terminal)[] onMoveWindowListeners; 687 /** 688 * Emitted at the child application's request. 689 */ 690 void addOnMoveWindow(void delegate(guint, guint, Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 691 { 692 if ( !("move-window" in connectedSignals) ) 693 { 694 Signals.connectData( 695 getStruct(), 696 "move-window", 697 cast(GCallback)&callBackMoveWindow, 698 cast(void*)this, 699 null, 700 connectFlags); 701 connectedSignals["move-window"] = 1; 702 } 703 onMoveWindowListeners ~= dlg; 704 } 705 extern(C) static void callBackMoveWindow(VteTerminal* vteterminalStruct, guint x, guint y, Terminal _terminal) 706 { 707 foreach ( void delegate(guint, guint, Terminal) dlg ; _terminal.onMoveWindowListeners ) 708 { 709 dlg(x, y, _terminal); 710 } 711 } 712 713 void delegate(Terminal)[] onPasteClipboardListeners; 714 /** 715 * Emitted whenever vte_terminal_paste_clipboard() is called. 716 */ 717 void addOnPasteClipboard(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 718 { 719 if ( !("paste-clipboard" in connectedSignals) ) 720 { 721 Signals.connectData( 722 getStruct(), 723 "paste-clipboard", 724 cast(GCallback)&callBackPasteClipboard, 725 cast(void*)this, 726 null, 727 connectFlags); 728 connectedSignals["paste-clipboard"] = 1; 729 } 730 onPasteClipboardListeners ~= dlg; 731 } 732 extern(C) static void callBackPasteClipboard(VteTerminal* vteterminalStruct, Terminal _terminal) 733 { 734 foreach ( void delegate(Terminal) dlg ; _terminal.onPasteClipboardListeners ) 735 { 736 dlg(_terminal); 737 } 738 } 739 740 void delegate(Terminal)[] onRaiseWindowListeners; 741 /** 742 * Emitted at the child application's request. 743 */ 744 void addOnRaiseWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 745 { 746 if ( !("raise-window" in connectedSignals) ) 747 { 748 Signals.connectData( 749 getStruct(), 750 "raise-window", 751 cast(GCallback)&callBackRaiseWindow, 752 cast(void*)this, 753 null, 754 connectFlags); 755 connectedSignals["raise-window"] = 1; 756 } 757 onRaiseWindowListeners ~= dlg; 758 } 759 extern(C) static void callBackRaiseWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 760 { 761 foreach ( void delegate(Terminal) dlg ; _terminal.onRaiseWindowListeners ) 762 { 763 dlg(_terminal); 764 } 765 } 766 767 void delegate(Terminal)[] onRefreshWindowListeners; 768 /** 769 * Emitted at the child application's request. 770 */ 771 void addOnRefreshWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 772 { 773 if ( !("refresh-window" in connectedSignals) ) 774 { 775 Signals.connectData( 776 getStruct(), 777 "refresh-window", 778 cast(GCallback)&callBackRefreshWindow, 779 cast(void*)this, 780 null, 781 connectFlags); 782 connectedSignals["refresh-window"] = 1; 783 } 784 onRefreshWindowListeners ~= dlg; 785 } 786 extern(C) static void callBackRefreshWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 787 { 788 foreach ( void delegate(Terminal) dlg ; _terminal.onRefreshWindowListeners ) 789 { 790 dlg(_terminal); 791 } 792 } 793 794 void delegate(guint, guint, Terminal)[] onResizeWindowListeners; 795 /** 796 * Emitted at the child application's request. 797 */ 798 void addOnResizeWindow(void delegate(guint, guint, Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 799 { 800 if ( !("resize-window" in connectedSignals) ) 801 { 802 Signals.connectData( 803 getStruct(), 804 "resize-window", 805 cast(GCallback)&callBackResizeWindow, 806 cast(void*)this, 807 null, 808 connectFlags); 809 connectedSignals["resize-window"] = 1; 810 } 811 onResizeWindowListeners ~= dlg; 812 } 813 extern(C) static void callBackResizeWindow(VteTerminal* vteterminalStruct, guint width, guint height, Terminal _terminal) 814 { 815 foreach ( void delegate(guint, guint, Terminal) dlg ; _terminal.onResizeWindowListeners ) 816 { 817 dlg(width, height, _terminal); 818 } 819 } 820 821 void delegate(Terminal)[] onRestoreWindowListeners; 822 /** 823 * Emitted at the child application's request. 824 */ 825 void addOnRestoreWindow(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 826 { 827 if ( !("restore-window" in connectedSignals) ) 828 { 829 Signals.connectData( 830 getStruct(), 831 "restore-window", 832 cast(GCallback)&callBackRestoreWindow, 833 cast(void*)this, 834 null, 835 connectFlags); 836 connectedSignals["restore-window"] = 1; 837 } 838 onRestoreWindowListeners ~= dlg; 839 } 840 extern(C) static void callBackRestoreWindow(VteTerminal* vteterminalStruct, Terminal _terminal) 841 { 842 foreach ( void delegate(Terminal) dlg ; _terminal.onRestoreWindowListeners ) 843 { 844 dlg(_terminal); 845 } 846 } 847 848 void delegate(Terminal)[] onSelectionChangedListeners; 849 /** 850 * Emitted whenever the contents of terminal's selection changes. 851 */ 852 void addOnSelectionChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 853 { 854 if ( !("selection-changed" in connectedSignals) ) 855 { 856 Signals.connectData( 857 getStruct(), 858 "selection-changed", 859 cast(GCallback)&callBackSelectionChanged, 860 cast(void*)this, 861 null, 862 connectFlags); 863 connectedSignals["selection-changed"] = 1; 864 } 865 onSelectionChangedListeners ~= dlg; 866 } 867 extern(C) static void callBackSelectionChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 868 { 869 foreach ( void delegate(Terminal) dlg ; _terminal.onSelectionChangedListeners ) 870 { 871 dlg(_terminal); 872 } 873 } 874 875 void delegate(Terminal)[] onStatusLineChangedListeners; 876 /** 877 * Emitted whenever the contents of the status line are modified or 878 * cleared. 879 */ 880 void addOnStatusLineChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 881 { 882 if ( !("status-line-changed" in connectedSignals) ) 883 { 884 Signals.connectData( 885 getStruct(), 886 "status-line-changed", 887 cast(GCallback)&callBackStatusLineChanged, 888 cast(void*)this, 889 null, 890 connectFlags); 891 connectedSignals["status-line-changed"] = 1; 892 } 893 onStatusLineChangedListeners ~= dlg; 894 } 895 extern(C) static void callBackStatusLineChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 896 { 897 foreach ( void delegate(Terminal) dlg ; _terminal.onStatusLineChangedListeners ) 898 { 899 dlg(_terminal); 900 } 901 } 902 903 void delegate(Terminal)[] onTextDeletedListeners; 904 /** 905 * An internal signal used for communication between the terminal and 906 * its accessibility peer. May not be emitted under certain 907 * circumstances. 908 */ 909 void addOnTextDeleted(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 910 { 911 if ( !("text-deleted" in connectedSignals) ) 912 { 913 Signals.connectData( 914 getStruct(), 915 "text-deleted", 916 cast(GCallback)&callBackTextDeleted, 917 cast(void*)this, 918 null, 919 connectFlags); 920 connectedSignals["text-deleted"] = 1; 921 } 922 onTextDeletedListeners ~= dlg; 923 } 924 extern(C) static void callBackTextDeleted(VteTerminal* vteterminalStruct, Terminal _terminal) 925 { 926 foreach ( void delegate(Terminal) dlg ; _terminal.onTextDeletedListeners ) 927 { 928 dlg(_terminal); 929 } 930 } 931 932 void delegate(Terminal)[] onTextInsertedListeners; 933 /** 934 * An internal signal used for communication between the terminal and 935 * its accessibility peer. May not be emitted under certain 936 * circumstances. 937 */ 938 void addOnTextInserted(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 939 { 940 if ( !("text-inserted" in connectedSignals) ) 941 { 942 Signals.connectData( 943 getStruct(), 944 "text-inserted", 945 cast(GCallback)&callBackTextInserted, 946 cast(void*)this, 947 null, 948 connectFlags); 949 connectedSignals["text-inserted"] = 1; 950 } 951 onTextInsertedListeners ~= dlg; 952 } 953 extern(C) static void callBackTextInserted(VteTerminal* vteterminalStruct, Terminal _terminal) 954 { 955 foreach ( void delegate(Terminal) dlg ; _terminal.onTextInsertedListeners ) 956 { 957 dlg(_terminal); 958 } 959 } 960 961 void delegate(Terminal)[] onTextModifiedListeners; 962 /** 963 * An internal signal used for communication between the terminal and 964 * its accessibility peer. May not be emitted under certain 965 * circumstances. 966 */ 967 void addOnTextModified(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 968 { 969 if ( !("text-modified" in connectedSignals) ) 970 { 971 Signals.connectData( 972 getStruct(), 973 "text-modified", 974 cast(GCallback)&callBackTextModified, 975 cast(void*)this, 976 null, 977 connectFlags); 978 connectedSignals["text-modified"] = 1; 979 } 980 onTextModifiedListeners ~= dlg; 981 } 982 extern(C) static void callBackTextModified(VteTerminal* vteterminalStruct, Terminal _terminal) 983 { 984 foreach ( void delegate(Terminal) dlg ; _terminal.onTextModifiedListeners ) 985 { 986 dlg(_terminal); 987 } 988 } 989 990 void delegate(gint, Terminal)[] onTextScrolledListeners; 991 /** 992 * An internal signal used for communication between the terminal and 993 * its accessibility peer. May not be emitted under certain 994 * circumstances. 995 */ 996 void addOnTextScrolled(void delegate(gint, Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 997 { 998 if ( !("text-scrolled" in connectedSignals) ) 999 { 1000 Signals.connectData( 1001 getStruct(), 1002 "text-scrolled", 1003 cast(GCallback)&callBackTextScrolled, 1004 cast(void*)this, 1005 null, 1006 connectFlags); 1007 connectedSignals["text-scrolled"] = 1; 1008 } 1009 onTextScrolledListeners ~= dlg; 1010 } 1011 extern(C) static void callBackTextScrolled(VteTerminal* vteterminalStruct, gint delta, Terminal _terminal) 1012 { 1013 foreach ( void delegate(gint, Terminal) dlg ; _terminal.onTextScrolledListeners ) 1014 { 1015 dlg(delta, _terminal); 1016 } 1017 } 1018 1019 void delegate(Terminal)[] onWindowTitleChangedListeners; 1020 /** 1021 * Emitted when the terminal's window_title field is modified. 1022 */ 1023 void addOnWindowTitleChanged(void delegate(Terminal) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 1024 { 1025 if ( !("window-title-changed" in connectedSignals) ) 1026 { 1027 Signals.connectData( 1028 getStruct(), 1029 "window-title-changed", 1030 cast(GCallback)&callBackWindowTitleChanged, 1031 cast(void*)this, 1032 null, 1033 connectFlags); 1034 connectedSignals["window-title-changed"] = 1; 1035 } 1036 onWindowTitleChangedListeners ~= dlg; 1037 } 1038 extern(C) static void callBackWindowTitleChanged(VteTerminal* vteterminalStruct, Terminal _terminal) 1039 { 1040 foreach ( void delegate(Terminal) dlg ; _terminal.onWindowTitleChangedListeners ) 1041 { 1042 dlg(_terminal); 1043 } 1044 } 1045 1046 1047 /** 1048 * Creates a new terminal widget. 1049 * Throws: ConstructionException GTK+ fails to create the object. 1050 */ 1051 public this () 1052 { 1053 // GtkWidget * vte_terminal_new (void); 1054 auto p = vte_terminal_new(); 1055 if(p is null) 1056 { 1057 throw new ConstructionException("null returned by vte_terminal_new()"); 1058 } 1059 this(cast(VteTerminal*) p); 1060 } 1061 1062 /** 1063 * Warning 1064 * vte_terminal_im_append_menuitems is deprecated and should not be used in newly-written code. 1065 * Appends menu items for various input methods to the given menu. The 1066 * user can select one of these items to modify the input method used by 1067 * the terminal. 1068 * Params: 1069 * menushell = a GtkMenuShell 1070 */ 1071 public void imAppendMenuitems(MenuShell menushell) 1072 { 1073 // void vte_terminal_im_append_menuitems (VteTerminal *terminal, GtkMenuShell *menushell); 1074 vte_terminal_im_append_menuitems(vteTerminal, (menushell is null) ? null : menushell.getMenuShellStruct()); 1075 } 1076 1077 /** 1078 * Interprets data as if it were data received from a child process. This 1079 * can either be used to drive the terminal without a child process, or just 1080 * to mess with your users. 1081 * Params: 1082 * data = a string in the terminal's current encoding. [array length=length][element-type guint8] 1083 */ 1084 public void feed(string data) 1085 { 1086 // void vte_terminal_feed (VteTerminal *terminal, const char *data, glong length); 1087 vte_terminal_feed(vteTerminal, cast(char*)data.ptr, cast(int) data.length); 1088 } 1089 1090 /** 1091 * Sends a block of UTF-8 text to the child as if it were entered by the user 1092 * at the keyboard. 1093 * Params: 1094 * text = data to send to the child 1095 */ 1096 public void feedChild(string text) 1097 { 1098 // void vte_terminal_feed_child (VteTerminal *terminal, const char *text, glong length); 1099 vte_terminal_feed_child(vteTerminal, cast(char*)text.ptr, cast(int) text.length); 1100 } 1101 1102 /** 1103 * Sends a block of binary data to the child. 1104 * Params: 1105 * data = data to send to the child 1106 */ 1107 public void feedChildBinary(string data) 1108 { 1109 // void vte_terminal_feed_child_binary (VteTerminal *terminal, const char *data, glong length); 1110 vte_terminal_feed_child_binary(vteTerminal, cast(char*)data.ptr, cast(int) data.length); 1111 } 1112 1113 /** 1114 * Gets the exit status of the command started by vte_terminal_fork_command(). 1115 * See your C library's documentation for more details on how to interpret the 1116 * exit status. 1117 * Note that this function may only be called from the signal handler of 1118 * the "child-exited" signal. 1119 * Returns: the child's exit status Since 0.20 1120 */ 1121 public int getChildExitStatus() 1122 { 1123 // int vte_terminal_get_child_exit_status (VteTerminal *terminal); 1124 return vte_terminal_get_child_exit_status(vteTerminal); 1125 } 1126 1127 /** 1128 * Selects all text within the terminal (including the scrollback buffer). 1129 */ 1130 public void selectAll() 1131 { 1132 // void vte_terminal_select_all (VteTerminal *terminal); 1133 vte_terminal_select_all(vteTerminal); 1134 } 1135 1136 /** 1137 * Clears the current selection. 1138 */ 1139 public void selectNone() 1140 { 1141 // void vte_terminal_select_none (VteTerminal *terminal); 1142 vte_terminal_select_none(vteTerminal); 1143 } 1144 1145 /** 1146 * Places the selected text in the terminal in the GDK_SELECTION_CLIPBOARD 1147 * selection. 1148 */ 1149 public void copyClipboard() 1150 { 1151 // void vte_terminal_copy_clipboard (VteTerminal *terminal); 1152 vte_terminal_copy_clipboard(vteTerminal); 1153 } 1154 1155 /** 1156 * Sends the contents of the GDK_SELECTION_CLIPBOARD selection to the 1157 * terminal's child. If necessary, the data is converted from UTF-8 to the 1158 * terminal's current encoding. It's called on paste menu item, or when 1159 * user presses Shift+Insert. 1160 */ 1161 public void pasteClipboard() 1162 { 1163 // void vte_terminal_paste_clipboard (VteTerminal *terminal); 1164 vte_terminal_paste_clipboard(vteTerminal); 1165 } 1166 1167 /** 1168 * Places the selected text in the terminal in the GDK_SELECTION_PRIMARY 1169 * selection. 1170 */ 1171 public void copyPrimary() 1172 { 1173 // void vte_terminal_copy_primary (VteTerminal *terminal); 1174 vte_terminal_copy_primary(vteTerminal); 1175 } 1176 1177 /** 1178 * Sends the contents of the GDK_SELECTION_PRIMARY selection to the terminal's 1179 * child. If necessary, the data is converted from UTF-8 to the terminal's 1180 * current encoding. The terminal will call also paste the 1181 * GDK_SELECTION_PRIMARY selection when the user clicks with the the second 1182 * mouse button. 1183 */ 1184 public void pastePrimary() 1185 { 1186 // void vte_terminal_paste_primary (VteTerminal *terminal); 1187 vte_terminal_paste_primary(vteTerminal); 1188 } 1189 1190 /** 1191 * Attempts to change the terminal's size in terms of rows and columns. If 1192 * the attempt succeeds, the widget will resize itself to the proper size. 1193 * Params: 1194 * columns = the desired number of columns 1195 * rows = the desired number of rows 1196 */ 1197 public void setSize(glong columns, glong rows) 1198 { 1199 // void vte_terminal_set_size (VteTerminal *terminal, glong columns, glong rows); 1200 vte_terminal_set_size(vteTerminal, columns, rows); 1201 } 1202 1203 /** 1204 * Controls whether or not the terminal will beep when the child outputs the 1205 * "bl" sequence. 1206 * Params: 1207 * isAudible = TRUE if the terminal should beep 1208 */ 1209 public void setAudibleBell(int isAudible) 1210 { 1211 // void vte_terminal_set_audible_bell (VteTerminal *terminal, gboolean is_audible); 1212 vte_terminal_set_audible_bell(vteTerminal, isAudible); 1213 } 1214 1215 /** 1216 * Checks whether or not the terminal will beep when the child outputs the 1217 * "bl" sequence. 1218 * Returns: TRUE if audible bell is enabled, FALSE if not 1219 */ 1220 public int getAudibleBell() 1221 { 1222 // gboolean vte_terminal_get_audible_bell (VteTerminal *terminal); 1223 return vte_terminal_get_audible_bell(vteTerminal); 1224 } 1225 1226 /** 1227 * Controls whether or not the terminal will present a visible bell to the 1228 * user when the child outputs the "bl" sequence. The terminal 1229 * will clear itself to the default foreground color and then repaint itself. 1230 * Params: 1231 * isVisible = whether the terminal should flash on bell 1232 */ 1233 public void setVisibleBell(int isVisible) 1234 { 1235 // void vte_terminal_set_visible_bell (VteTerminal *terminal, gboolean is_visible); 1236 vte_terminal_set_visible_bell(vteTerminal, isVisible); 1237 } 1238 1239 /** 1240 * Checks whether or not the terminal will present a visible bell to the 1241 * user when the child outputs the "bl" sequence. The terminal 1242 * will clear itself to the default foreground color and then repaint itself. 1243 * Returns: TRUE if visible bell is enabled, FALSE if not 1244 */ 1245 public int getVisibleBell() 1246 { 1247 // gboolean vte_terminal_get_visible_bell (VteTerminal *terminal); 1248 return vte_terminal_get_visible_bell(vteTerminal); 1249 } 1250 1251 /** 1252 * Controls whether or not the terminal will attempt to draw bold text, 1253 * either by using a bold font variant or by repainting text with a different 1254 * offset. 1255 * Params: 1256 * allowBold = TRUE if the terminal should attempt to draw bold text 1257 */ 1258 public void setAllowBold(int allowBold) 1259 { 1260 // void vte_terminal_set_allow_bold (VteTerminal *terminal, gboolean allow_bold); 1261 vte_terminal_set_allow_bold(vteTerminal, allowBold); 1262 } 1263 1264 /** 1265 * Checks whether or not the terminal will attempt to draw bold text by 1266 * repainting text with a one-pixel offset. 1267 * Returns: TRUE if bolding is enabled, FALSE if not 1268 */ 1269 public int getAllowBold() 1270 { 1271 // gboolean vte_terminal_get_allow_bold (VteTerminal *terminal); 1272 return vte_terminal_get_allow_bold(vteTerminal); 1273 } 1274 1275 /** 1276 * Controls whether or not the terminal will forcibly scroll to the bottom of 1277 * the viewable history when the new data is received from the child. 1278 * Params: 1279 * scroll = whether the terminal should scroll on output 1280 */ 1281 public void setScrollOnOutput(int scroll) 1282 { 1283 // void vte_terminal_set_scroll_on_output (VteTerminal *terminal, gboolean scroll); 1284 vte_terminal_set_scroll_on_output(vteTerminal, scroll); 1285 } 1286 1287 /** 1288 * Controls whether or not the terminal will forcibly scroll to the bottom of 1289 * the viewable history when the user presses a key. Modifier keys do not 1290 * trigger this behavior. 1291 * Params: 1292 * scroll = whether the terminal should scroll on keystrokes 1293 */ 1294 public void setScrollOnKeystroke(int scroll) 1295 { 1296 // void vte_terminal_set_scroll_on_keystroke (VteTerminal *terminal, gboolean scroll); 1297 vte_terminal_set_scroll_on_keystroke(vteTerminal, scroll); 1298 } 1299 1300 /** 1301 * Sets the color used to draw bold text in the default foreground color. 1302 * Params: 1303 * bold = the new bold color 1304 */ 1305 public void setColorBold(Color bold) 1306 { 1307 // void vte_terminal_set_color_bold (VteTerminal *terminal, const GdkColor *bold); 1308 vte_terminal_set_color_bold(vteTerminal, (bold is null) ? null : bold.getColorStruct()); 1309 } 1310 1311 /** 1312 * Sets the color used to draw bold text in the default foreground color. 1313 * If bold is NULL then the default color is used. 1314 * Params: 1315 * bold = the new bold color or NULL. [allow-none] 1316 */ 1317 public void setColorBoldRgba(RGBA bold) 1318 { 1319 // void vte_terminal_set_color_bold_rgba (VteTerminal *terminal, const GdkRGBA *bold); 1320 vte_terminal_set_color_bold_rgba(vteTerminal, (bold is null) ? null : bold.getRGBAStruct()); 1321 } 1322 1323 /** 1324 * Sets the foreground color used to draw normal text 1325 * Params: 1326 * foreground = the new foreground color 1327 */ 1328 public void setColorForeground(Color foreground) 1329 { 1330 // void vte_terminal_set_color_foreground (VteTerminal *terminal, const GdkColor *foreground); 1331 vte_terminal_set_color_foreground(vteTerminal, (foreground is null) ? null : foreground.getColorStruct()); 1332 } 1333 1334 /** 1335 * Sets the foreground color used to draw normal text. 1336 * Params: 1337 * foreground = the new foreground color 1338 * Since 0.28 1339 */ 1340 public void setColorForegroundRgba(RGBA foreground) 1341 { 1342 // void vte_terminal_set_color_foreground_rgba (VteTerminal *terminal, const GdkRGBA *foreground); 1343 vte_terminal_set_color_foreground_rgba(vteTerminal, (foreground is null) ? null : foreground.getRGBAStruct()); 1344 } 1345 1346 /** 1347 * Sets the background color for text which does not have a specific background 1348 * color assigned. Only has effect when no background image is set and when 1349 * the terminal is not transparent. 1350 * Params: 1351 * background = the new background color 1352 */ 1353 public void setColorBackground(Color background) 1354 { 1355 // void vte_terminal_set_color_background (VteTerminal *terminal, const GdkColor *background); 1356 vte_terminal_set_color_background(vteTerminal, (background is null) ? null : background.getColorStruct()); 1357 } 1358 1359 /** 1360 * Sets the background color for text which does not have a specific background 1361 * color assigned. Only has effect when no background image is set and when 1362 * the terminal is not transparent. 1363 * Params: 1364 * background = the new background color 1365 * Since 0.28 1366 */ 1367 public void setColorBackgroundRgba(RGBA background) 1368 { 1369 // void vte_terminal_set_color_background_rgba (VteTerminal *terminal, const GdkRGBA *background); 1370 vte_terminal_set_color_background_rgba(vteTerminal, (background is null) ? null : background.getRGBAStruct()); 1371 } 1372 1373 /** 1374 * Sets the color used to draw dim text in the default foreground color. 1375 * Params: 1376 * dim = the new dim color 1377 */ 1378 public void setColorDim(Color dim) 1379 { 1380 // void vte_terminal_set_color_dim (VteTerminal *terminal, const GdkColor *dim); 1381 vte_terminal_set_color_dim(vteTerminal, (dim is null) ? null : dim.getColorStruct()); 1382 } 1383 1384 /** 1385 * Sets the color used to draw dim text in the default foreground color. 1386 * If dim is NULL then the default color is used. 1387 * Params: 1388 * dim = the new dim color or NULL. [allow-none] 1389 * Since 0.28 1390 */ 1391 public void setColorDimRgba(RGBA dim) 1392 { 1393 // void vte_terminal_set_color_dim_rgba (VteTerminal *terminal, const GdkRGBA *dim); 1394 vte_terminal_set_color_dim_rgba(vteTerminal, (dim is null) ? null : dim.getRGBAStruct()); 1395 } 1396 1397 /** 1398 * Sets the background color for text which is under the cursor. If NULL, text 1399 * under the cursor will be drawn with foreground and background colors 1400 * reversed. 1401 * Params: 1402 * cursorBackground = the new color to use for the text cursor, or NULL. [allow-none] 1403 * Since 0.11.11 1404 */ 1405 public void setColorCursor(Color cursorBackground) 1406 { 1407 // void vte_terminal_set_color_cursor (VteTerminal *terminal, const GdkColor *cursor_background); 1408 vte_terminal_set_color_cursor(vteTerminal, (cursorBackground is null) ? null : cursorBackground.getColorStruct()); 1409 } 1410 1411 /** 1412 * Sets the background color for text which is under the cursor. If NULL, text 1413 * under the cursor will be drawn with foreground and background colors 1414 * reversed. 1415 * Params: 1416 * cursorBackground = the new color to use for the text cursor, or NULL. [allow-none] 1417 * Since 0.28 1418 */ 1419 public void setColorCursorRgba(RGBA cursorBackground) 1420 { 1421 // void vte_terminal_set_color_cursor_rgba (VteTerminal *terminal, const GdkRGBA *cursor_background); 1422 vte_terminal_set_color_cursor_rgba(vteTerminal, (cursorBackground is null) ? null : cursorBackground.getRGBAStruct()); 1423 } 1424 1425 /** 1426 * Sets the background color for text which is highlighted. If NULL, 1427 * highlighted text (which is usually highlighted because it is selected) will 1428 * be drawn with foreground and background colors reversed. 1429 * Params: 1430 * highlightBackground = the new color to use for highlighted text, or NULL. [allow-none] 1431 * Since 0.11.11 1432 */ 1433 public void setColorHighlight(Color highlightBackground) 1434 { 1435 // void vte_terminal_set_color_highlight (VteTerminal *terminal, const GdkColor *highlight_background); 1436 vte_terminal_set_color_highlight(vteTerminal, (highlightBackground is null) ? null : highlightBackground.getColorStruct()); 1437 } 1438 1439 /** 1440 * Sets the background color for text which is highlighted. If NULL, 1441 * highlighted text (which is usually highlighted because it is selected) will 1442 * be drawn with foreground and background colors reversed. 1443 * Params: 1444 * highlightBackground = the new color to use for highlighted text, or NULL. [allow-none] 1445 * Since 0.28 1446 */ 1447 public void setColorHighlightRgba(RGBA highlightBackground) 1448 { 1449 // void vte_terminal_set_color_highlight_rgba (VteTerminal *terminal, const GdkRGBA *highlight_background); 1450 vte_terminal_set_color_highlight_rgba(vteTerminal, (highlightBackground is null) ? null : highlightBackground.getRGBAStruct()); 1451 } 1452 1453 /** 1454 * The terminal widget uses a 28-color model comprised of the default foreground 1455 * and background colors, the bold foreground color, the dim foreground 1456 * color, an eight color palette, bold versions of the eight color palette, 1457 * and a dim version of the the eight color palette. 1458 * palette_size must be either 0, 8, 16, or 24, or between 25 and 255 inclusive. 1459 * If foreground is NULL and 1460 * palette_size is greater than 0, the new foreground color is taken from 1461 * palette[7]. If background is NULL and palette_size is greater than 0, 1462 * the new background color is taken from palette[0]. If 1463 * palette_size is 8 or 16, the third (dim) and possibly the second (bold) 1464 * 8-color palettes are extrapolated from the new background color and the items 1465 * in palette. 1466 * Params: 1467 * foreground = the new foreground color, or NULL. [allow-none] 1468 * background = the new background color, or NULL. [allow-none] 1469 * palette = the color palette. [array length=palette_size zero-terminated=0][element-type Gdk.Color] 1470 * paletteSize = the number of entries in palette 1471 */ 1472 public void setColors(Color foreground, Color background, Color palette, glong paletteSize) 1473 { 1474 // void vte_terminal_set_colors (VteTerminal *terminal, const GdkColor *foreground, const GdkColor *background, const GdkColor *palette, glong palette_size); 1475 vte_terminal_set_colors(vteTerminal, (foreground is null) ? null : foreground.getColorStruct(), (background is null) ? null : background.getColorStruct(), (palette is null) ? null : palette.getColorStruct(), paletteSize); 1476 } 1477 1478 /** 1479 * The terminal widget uses a 28-color model comprised of the default foreground 1480 * and background colors, the bold foreground color, the dim foreground 1481 * color, an eight color palette, bold versions of the eight color palette, 1482 * and a dim version of the the eight color palette. 1483 * palette_size must be either 0, 8, 16, or 24, or between 25 and 255 inclusive. 1484 * If foreground is NULL and 1485 * palette_size is greater than 0, the new foreground color is taken from 1486 * palette[7]. If background is NULL and palette_size is greater than 0, 1487 * the new background color is taken from palette[0]. If 1488 * palette_size is 8 or 16, the third (dim) and possibly the second (bold) 1489 * 8-color palettes are extrapolated from the new background color and the items 1490 * in palette. 1491 * Params: 1492 * foreground = the new foreground color, or NULL. [allow-none] 1493 * background = the new background color, or NULL. [allow-none] 1494 * palette = the color palette. [array length=palette_size zero-terminated=0][element-type Gdk.RGBA] 1495 * paletteSize = the number of entries in palette 1496 * Since 0.28 1497 */ 1498 public void setColorsRgba(RGBA foreground, RGBA background, RGBA palette, gsize paletteSize) 1499 { 1500 // void vte_terminal_set_colors_rgba (VteTerminal *terminal, const GdkRGBA *foreground, const GdkRGBA *background, const GdkRGBA *palette, gsize palette_size); 1501 vte_terminal_set_colors_rgba(vteTerminal, (foreground is null) ? null : foreground.getRGBAStruct(), (background is null) ? null : background.getRGBAStruct(), (palette is null) ? null : palette.getRGBAStruct(), paletteSize); 1502 } 1503 1504 /** 1505 * Reset the terminal palette to reasonable compiled-in default color. 1506 */ 1507 public void setDefaultColors() 1508 { 1509 // void vte_terminal_set_default_colors (VteTerminal *terminal); 1510 vte_terminal_set_default_colors(vteTerminal); 1511 } 1512 1513 /** 1514 * Sets the opacity of the terminal background, were 0 means completely 1515 * transparent and 65535 means completely opaque. 1516 * Params: 1517 * opacity = the new opacity 1518 */ 1519 public void setOpacity(ushort opacity) 1520 { 1521 // void vte_terminal_set_opacity (VteTerminal *terminal, guint16 opacity); 1522 vte_terminal_set_opacity(vteTerminal, opacity); 1523 } 1524 1525 /** 1526 * Sets a background image for the widget. Text which would otherwise be 1527 * drawn using the default background color will instead be drawn over the 1528 * specified image. If necessary, the image will be tiled to cover the 1529 * widget's entire visible area. If specified by 1530 * vte_terminal_set_background_saturation(), the terminal will tint its 1531 * in-memory copy of the image before applying it to the terminal. 1532 * Params: 1533 * image = a GdkPixbuf to use, or NULL to unset the background. [allow-none] 1534 */ 1535 public void setBackgroundImage(GdkPixbuf* image) 1536 { 1537 // void vte_terminal_set_background_image (VteTerminal *terminal, GdkPixbuf *image); 1538 vte_terminal_set_background_image(vteTerminal, image); 1539 } 1540 1541 /** 1542 * Sets a background image for the widget. If specified by 1543 * vte_terminal_set_background_saturation(), the terminal will tint its 1544 * in-memory copy of the image before applying it to the terminal. 1545 * Params: 1546 * path = path to an image file. [type filename] 1547 */ 1548 public void setBackgroundImageFile(string path) 1549 { 1550 // void vte_terminal_set_background_image_file (VteTerminal *terminal, const char *path); 1551 vte_terminal_set_background_image_file(vteTerminal, Str.toStringz(path)); 1552 } 1553 1554 /** 1555 * If a background image has been set using 1556 * vte_terminal_set_background_image(), 1557 * vte_terminal_set_background_image_file(), or 1558 * vte_terminal_set_background_transparent(), and the saturation value is less 1559 * than 1.0, the terminal will adjust the colors of the image before drawing 1560 * the image. To do so, the terminal will create a copy of the background 1561 * image (or snapshot of the root window) and modify its pixel values. 1562 * Params: 1563 * saturation = a floating point value between 0.0 and 1.0. 1564 */ 1565 public void setBackgroundSaturation(double saturation) 1566 { 1567 // void vte_terminal_set_background_saturation (VteTerminal *terminal, double saturation); 1568 vte_terminal_set_background_saturation(vteTerminal, saturation); 1569 } 1570 1571 /** 1572 * Sets the terminal's background image to the pixmap stored in the root 1573 * window, adjusted so that if there are no windows below your application, 1574 * the widget will appear to be transparent. 1575 * Params: 1576 * transparent = whether the terminal should fake transparency 1577 */ 1578 public void setBackgroundTransparent(int transparent) 1579 { 1580 // void vte_terminal_set_background_transparent (VteTerminal *terminal, gboolean transparent); 1581 vte_terminal_set_background_transparent(vteTerminal, transparent); 1582 } 1583 1584 /** 1585 * If a background image has been set using 1586 * vte_terminal_set_background_image(), 1587 * vte_terminal_set_background_image_file(), or 1588 * vte_terminal_set_background_transparent(), and the value set by 1589 * vte_terminal_set_background_saturation() is less than one, the terminal 1590 * will adjust the color of the image before drawing the image. To do so, 1591 * the terminal will create a copy of the background image (or snapshot of 1592 * the root window) and modify its pixel values. The initial tint color 1593 * is black. 1594 * Params: 1595 * color = a color which the terminal background should be tinted to if its 1596 * saturation is not 1.0. 1597 * Since 0.11 1598 */ 1599 public void setBackgroundTintColor(Color color) 1600 { 1601 // void vte_terminal_set_background_tint_color (VteTerminal *terminal, const GdkColor *color); 1602 vte_terminal_set_background_tint_color(vteTerminal, (color is null) ? null : color.getColorStruct()); 1603 } 1604 1605 /** 1606 * Controls whether or not the terminal will scroll the background image (if 1607 * one is set) when the text in the window must be scrolled. 1608 * Params: 1609 * scroll = whether the terminal should scroll the background image along with 1610 * the text 1611 * Since 0.11 1612 */ 1613 public void setScrollBackground(int scroll) 1614 { 1615 // void vte_terminal_set_scroll_background (VteTerminal *terminal, gboolean scroll); 1616 vte_terminal_set_scroll_background(vteTerminal, scroll); 1617 } 1618 1619 /** 1620 * Sets the shape of the cursor drawn. 1621 * Params: 1622 * shape = the VteTerminalCursorShape to use 1623 * Since 0.20 1624 */ 1625 public void setCursorShape(VteTerminalCursorShape shape) 1626 { 1627 // void vte_terminal_set_cursor_shape (VteTerminal *terminal, VteTerminalCursorShape shape); 1628 vte_terminal_set_cursor_shape(vteTerminal, shape); 1629 } 1630 1631 /** 1632 * Returns the currently set cursor shape. 1633 * Returns: cursor shape. Since 0.17.6 1634 */ 1635 public VteTerminalCursorShape getCursorShape() 1636 { 1637 // VteTerminalCursorShape vte_terminal_get_cursor_shape (VteTerminal *terminal); 1638 return vte_terminal_get_cursor_shape(vteTerminal); 1639 } 1640 1641 /** 1642 * Warning 1643 * vte_terminal_set_cursor_blinks is deprecated and should not be used in newly-written code. 0.17.1 Use vte_terminal_set_cursor_blink_mode() instead. 1644 * Sets whether or not the cursor will blink. 1645 * Params: 1646 * blink = whether the cursor should blink 1647 */ 1648 public void setCursorBlinks(int blink) 1649 { 1650 // void vte_terminal_set_cursor_blinks (VteTerminal *terminal, gboolean blink); 1651 vte_terminal_set_cursor_blinks(vteTerminal, blink); 1652 } 1653 1654 /** 1655 * Returns the currently set cursor blink mode. 1656 * Returns: cursor blink mode. Since 0.17.1 1657 */ 1658 public VteTerminalCursorBlinkMode getCursorBlinkMode() 1659 { 1660 // VteTerminalCursorBlinkMode vte_terminal_get_cursor_blink_mode (VteTerminal *terminal); 1661 return vte_terminal_get_cursor_blink_mode(vteTerminal); 1662 } 1663 1664 /** 1665 * Sets whether or not the cursor will blink. Using VTE_CURSOR_BLINK_SYSTEM 1666 * will use the "gtk-cursor-blink" setting. 1667 * Params: 1668 * mode = the VteTerminalCursorBlinkMode to use 1669 * Since 0.17.1 1670 */ 1671 public void setCursorBlinkMode(VteTerminalCursorBlinkMode mode) 1672 { 1673 // void vte_terminal_set_cursor_blink_mode (VteTerminal *terminal, VteTerminalCursorBlinkMode mode); 1674 vte_terminal_set_cursor_blink_mode(vteTerminal, mode); 1675 } 1676 1677 /** 1678 * Sets the length of the scrollback buffer used by the terminal. The size of 1679 * the scrollback buffer will be set to the larger of this value and the number 1680 * of visible rows the widget can display, so 0 can safely be used to disable 1681 * scrollback. 1682 * A negative value means "infinite scrollback". 1683 * Note that this setting only affects the normal screen buffer. 1684 * For terminal types which have an alternate screen buffer, no scrollback is 1685 * allowed on the alternate screen buffer. 1686 * Params: 1687 * lines = the length of the history buffer 1688 */ 1689 public void setScrollbackLines(glong lines) 1690 { 1691 // void vte_terminal_set_scrollback_lines (VteTerminal *terminal, glong lines); 1692 vte_terminal_set_scrollback_lines(vteTerminal, lines); 1693 } 1694 1695 /** 1696 * Sets the font used for rendering all text displayed by the terminal, 1697 * overriding any fonts set using gtk_widget_modify_font(). The terminal 1698 * will immediately attempt to load the desired font, retrieve its 1699 * metrics, and attempt to resize itself to keep the same number of rows 1700 * and columns. 1701 * Params: 1702 * fontDesc = a PangoFontDescription for the desired font, or NULL. [allow-none] 1703 */ 1704 public void setFont(PgFontDescription fontDesc) 1705 { 1706 // void vte_terminal_set_font (VteTerminal *terminal, const PangoFontDescription *font_desc); 1707 vte_terminal_set_font(vteTerminal, (fontDesc is null) ? null : fontDesc.getPgFontDescriptionStruct()); 1708 } 1709 1710 /** 1711 * A convenience function which converts name into a PangoFontDescription and 1712 * passes it to vte_terminal_set_font(). 1713 * Params: 1714 * name = a pango font description in string form. [type utf8] 1715 */ 1716 public void setFontFromString(string name) 1717 { 1718 // void vte_terminal_set_font_from_string (VteTerminal *terminal, const char *name); 1719 vte_terminal_set_font_from_string(vteTerminal, Str.toStringz(name)); 1720 } 1721 1722 /** 1723 * Warning 1724 * vte_terminal_set_font_from_string_full has been deprecated since version 0.20 and should not be used in newly-written code. Use vte_terminal_set_font() 1725 * A convenience function which converts name into a PangoFontDescription and 1726 * passes it to vte_terminal_set_font_full(). 1727 * Params: 1728 * name = A string describing the font. 1729 * antialias = Whether or not to antialias the font (if possible). 1730 * Since 0.11.11 1731 */ 1732 public void setFontFromStringFull(string name, VteTerminalAntiAlias antialias) 1733 { 1734 // void vte_terminal_set_font_from_string_full (VteTerminal *terminal, const char *name, VteTerminalAntiAlias antialias); 1735 vte_terminal_set_font_from_string_full(vteTerminal, Str.toStringz(name), antialias); 1736 } 1737 1738 /** 1739 * Warning 1740 * vte_terminal_set_font_full has been deprecated since version 0.20 and should not be used in newly-written code. Use vte_terminal_set_font() 1741 * Sets the font used for rendering all text displayed by the terminal, 1742 * overriding any fonts set using gtk_widget_modify_font(). The terminal 1743 * will immediately attempt to load the desired font, retrieve its 1744 * metrics, and attempt to resize itself to keep the same number of rows 1745 * and columns. 1746 * Params: 1747 * fontDesc = The PangoFontDescription of the desired font, or NULL 1748 * antialias = Specify if anti aliasing of the fonts is to be used or not. 1749 * Since 0.11.11 1750 */ 1751 public void setFontFull(PgFontDescription fontDesc, VteTerminalAntiAlias antialias) 1752 { 1753 // void vte_terminal_set_font_full (VteTerminal *terminal, const PangoFontDescription *font_desc, VteTerminalAntiAlias antialias); 1754 vte_terminal_set_font_full(vteTerminal, (fontDesc is null) ? null : fontDesc.getPgFontDescriptionStruct(), antialias); 1755 } 1756 1757 /** 1758 * Queries the terminal for information about the fonts which will be 1759 * used to draw text in the terminal. 1760 * Returns: a PangoFontDescription describing the font the terminal is currently using to render text. [transfer none] 1761 */ 1762 public PgFontDescription getFont() 1763 { 1764 // const PangoFontDescription * vte_terminal_get_font (VteTerminal *terminal); 1765 auto p = vte_terminal_get_font(vteTerminal); 1766 1767 if(p is null) 1768 { 1769 return null; 1770 } 1771 1772 return ObjectG.getDObject!(PgFontDescription)(cast(PangoFontDescription*) p); 1773 } 1774 1775 /** 1776 * Warning 1777 * vte_terminal_get_using_xft is deprecated and should not be used in newly-written code. 0.20 1778 * A VteTerminal can use multiple methods to draw text. This function 1779 * allows an application to determine whether or not the current method uses 1780 * fontconfig to find fonts. This setting cannot be changed by the caller, 1781 * but in practice usually matches the behavior of GTK+ itself. 1782 * Returns: TRUE 1783 */ 1784 public int getUsingXft() 1785 { 1786 // gboolean vte_terminal_get_using_xft (VteTerminal *terminal); 1787 return vte_terminal_get_using_xft(vteTerminal); 1788 } 1789 1790 /** 1791 * Checks if the terminal currently contains selected text. Note that this 1792 * is different from determining if the terminal is the owner of any 1793 * GtkClipboard items. 1794 * Returns: TRUE if part of the text in the terminal is selected. 1795 */ 1796 public int getHasSelection() 1797 { 1798 // gboolean vte_terminal_get_has_selection (VteTerminal *terminal); 1799 return vte_terminal_get_has_selection(vteTerminal); 1800 } 1801 1802 /** 1803 * When the user double-clicks to start selection, the terminal will extend 1804 * the selection on word boundaries. It will treat characters included in spec 1805 * as parts of words, and all other characters as word separators. Ranges of 1806 * characters can be specified by separating them with a hyphen. 1807 * As a special case, if spec is NULL or the empty string, the terminal will 1808 * treat all graphic non-punctuation non-space characters as word characters. 1809 * Params: 1810 * spec = a specification 1811 */ 1812 public void setWordChars(string spec) 1813 { 1814 // void vte_terminal_set_word_chars (VteTerminal *terminal, const char *spec); 1815 vte_terminal_set_word_chars(vteTerminal, Str.toStringz(spec)); 1816 } 1817 1818 /** 1819 * Checks if a particular character is considered to be part of a word or not, 1820 * based on the values last passed to vte_terminal_set_word_chars(). 1821 * Params: 1822 * c = a candidate Unicode code point 1823 * Returns: TRUE if the character is considered to be part of a word 1824 */ 1825 public int isWordChar(gunichar c) 1826 { 1827 // gboolean vte_terminal_is_word_char (VteTerminal *terminal, gunichar c); 1828 return vte_terminal_is_word_char(vteTerminal, c); 1829 } 1830 1831 /** 1832 * Modifies the terminal's backspace key binding, which controls what 1833 * string or control sequence the terminal sends to its child when the user 1834 * presses the backspace key. 1835 * Params: 1836 * binding = a VteTerminalEraseBinding for the backspace key 1837 */ 1838 public void setBackspaceBinding(VteTerminalEraseBinding binding) 1839 { 1840 // void vte_terminal_set_backspace_binding (VteTerminal *terminal, VteTerminalEraseBinding binding); 1841 vte_terminal_set_backspace_binding(vteTerminal, binding); 1842 } 1843 1844 /** 1845 * Modifies the terminal's delete key binding, which controls what 1846 * string or control sequence the terminal sends to its child when the user 1847 * presses the delete key. 1848 * Params: 1849 * binding = a VteTerminalEraseBinding for the delete key 1850 */ 1851 public void setDeleteBinding(VteTerminalEraseBinding binding) 1852 { 1853 // void vte_terminal_set_delete_binding (VteTerminal *terminal, VteTerminalEraseBinding binding); 1854 vte_terminal_set_delete_binding(vteTerminal, binding); 1855 } 1856 1857 /** 1858 * Changes the value of the terminal's mouse autohide setting. When autohiding 1859 * is enabled, the mouse cursor will be hidden when the user presses a key and 1860 * shown when the user moves the mouse. This setting can be read using 1861 * vte_terminal_get_mouse_autohide(). 1862 * Params: 1863 * setting = whether the mouse pointer should autohide 1864 */ 1865 public void setMouseAutohide(int setting) 1866 { 1867 // void vte_terminal_set_mouse_autohide (VteTerminal *terminal, gboolean setting); 1868 vte_terminal_set_mouse_autohide(vteTerminal, setting); 1869 } 1870 1871 /** 1872 * Determines the value of the terminal's mouse autohide setting. When 1873 * autohiding is enabled, the mouse cursor will be hidden when the user presses 1874 * a key and shown when the user moves the mouse. This setting can be changed 1875 * using vte_terminal_set_mouse_autohide(). 1876 * Returns: TRUE if autohiding is enabled, FALSE if not 1877 */ 1878 public int getMouseAutohide() 1879 { 1880 // gboolean vte_terminal_get_mouse_autohide (VteTerminal *terminal); 1881 return vte_terminal_get_mouse_autohide(vteTerminal); 1882 } 1883 1884 /** 1885 * Resets as much of the terminal's internal state as possible, discarding any 1886 * unprocessed input data, resetting character attributes, cursor state, 1887 * national character set state, status line, terminal modes (insert/delete), 1888 * selection state, and encoding. 1889 * Params: 1890 * clearTabstops = whether to reset tabstops 1891 * clearHistory = whether to empty the terminal's scrollback buffer 1892 */ 1893 public void reset(int clearTabstops, int clearHistory) 1894 { 1895 // void vte_terminal_reset (VteTerminal *terminal, gboolean clear_tabstops, gboolean clear_history); 1896 vte_terminal_reset(vteTerminal, clearTabstops, clearHistory); 1897 } 1898 1899 /** 1900 * Extracts a view of the visible part of the terminal. If is_selected is not 1901 * NULL, characters will only be read if is_selected returns TRUE after being 1902 * passed the column and row, respectively. A VteCharAttributes structure 1903 * is added to attributes for each byte added to the returned string detailing 1904 * the character's position, colors, and other characteristics. 1905 * Params: 1906 * isSelected = a VteSelectionFunc callback. [scope call][allow-none] 1907 * userData = user data to be passed to the callback. [closure] 1908 * attributes = location for storing text attributes. [out caller-allocates][transfer full][array][element-type Vte.CharAttributes] 1909 * Returns: a newly allocated text string, or NULL. [transfer full] 1910 */ 1911 public string getText(VteSelectionFunc isSelected, void* userData, ArrayG attributes) 1912 { 1913 // char * vte_terminal_get_text (VteTerminal *terminal, VteSelectionFunc is_selected, gpointer user_data, GArray *attributes); 1914 return Str.toString(vte_terminal_get_text(vteTerminal, isSelected, userData, (attributes is null) ? null : attributes.getArrayGStruct())); 1915 } 1916 1917 /** 1918 * Extracts a view of the visible part of the terminal. If is_selected is not 1919 * NULL, characters will only be read if is_selected returns TRUE after being 1920 * passed the column and row, respectively. A VteCharAttributes structure 1921 * is added to attributes for each byte added to the returned string detailing 1922 * the character's position, colors, and other characteristics. This function 1923 * differs from vte_terminal_get_text() in that trailing spaces at the end of 1924 * lines are included. 1925 * Params: 1926 * isSelected = a VteSelectionFunc callback. [scope call][allow-none] 1927 * userData = user data to be passed to the callback. [closure] 1928 * attributes = location for storing text attributes. [out caller-allocates][transfer full][array][element-type Vte.CharAttributes] 1929 * Returns: a newly allocated text string, or NULL. [transfer full] Since 0.11.11 1930 */ 1931 public string getTextIncludeTrailingSpaces(VteSelectionFunc isSelected, void* userData, ArrayG attributes) 1932 { 1933 // char * vte_terminal_get_text_include_trailing_spaces (VteTerminal *terminal, VteSelectionFunc is_selected, gpointer user_data, GArray *attributes); 1934 return Str.toString(vte_terminal_get_text_include_trailing_spaces(vteTerminal, isSelected, userData, (attributes is null) ? null : attributes.getArrayGStruct())); 1935 } 1936 1937 /** 1938 * Extracts a view of the visible part of the terminal. If is_selected is not 1939 * NULL, characters will only be read if is_selected returns TRUE after being 1940 * passed the column and row, respectively. A VteCharAttributes structure 1941 * is added to attributes for each byte added to the returned string detailing 1942 * the character's position, colors, and other characteristics. The 1943 * entire scrollback buffer is scanned, so it is possible to read the entire 1944 * contents of the buffer using this function. 1945 * Params: 1946 * startRow = first row to search for data 1947 * startCol = first column to search for data 1948 * endRow = last row to search for data 1949 * endCol = last column to search for data 1950 * isSelected = a VteSelectionFunc callback. [scope call][allow-none] 1951 * userData = user data to be passed to the callback. [closure] 1952 * attributes = location for storing text attributes. [out caller-allocates][transfer full][array][element-type Vte.CharAttributes] 1953 * Returns: a newly allocated text string, or NULL. [transfer full] 1954 */ 1955 public string getTextRange(glong startRow, glong startCol, glong endRow, glong endCol, VteSelectionFunc isSelected, void* userData, ArrayG attributes) 1956 { 1957 // char * vte_terminal_get_text_range (VteTerminal *terminal, glong start_row, glong start_col, glong end_row, glong end_col, VteSelectionFunc is_selected, gpointer user_data, GArray *attributes); 1958 return Str.toString(vte_terminal_get_text_range(vteTerminal, startRow, startCol, endRow, endCol, isSelected, userData, (attributes is null) ? null : attributes.getArrayGStruct())); 1959 } 1960 1961 /** 1962 * Reads the location of the insertion cursor and returns it. The row 1963 * coordinate is absolute. 1964 * Params: 1965 * column = a location to store the column, or NULL. [out][allow-none] 1966 * row = a location to store the row, or NULL. [out][allow-none] 1967 */ 1968 public void getCursorPosition(out glong column, out glong row) 1969 { 1970 // void vte_terminal_get_cursor_position (VteTerminal *terminal, glong *column, glong *row); 1971 vte_terminal_get_cursor_position(vteTerminal, &column, &row); 1972 } 1973 1974 /** 1975 * Clears the list of regular expressions the terminal uses to highlight text 1976 * when the user moves the mouse cursor. 1977 */ 1978 public void matchClearAll() 1979 { 1980 // void vte_terminal_match_clear_all (VteTerminal *terminal); 1981 vte_terminal_match_clear_all(vteTerminal); 1982 } 1983 1984 /** 1985 * Warning 1986 * vte_terminal_match_add has been deprecated since version 0.17.1 and should not be used in newly-written code. Use vte_terminal_match_add_gregex() instead 1987 * Adds a regular expression to the list of matching expressions. When the 1988 * user moves the mouse cursor over a section of displayed text which matches 1989 * this expression, the text will be highlighted. 1990 * Params: 1991 * match = a regular expression 1992 * Returns: an integer associated with this expression 1993 */ 1994 public int matchAdd(string match) 1995 { 1996 // int vte_terminal_match_add (VteTerminal *terminal, const char *match); 1997 return vte_terminal_match_add(vteTerminal, Str.toStringz(match)); 1998 } 1999 2000 /** 2001 * Adds the regular expression regex to the list of matching expressions. When the 2002 * user moves the mouse cursor over a section of displayed text which matches 2003 * this expression, the text will be highlighted. 2004 * Params: 2005 * regex = a GRegex 2006 * flags = the GRegexMatchFlags to use when matching the regex 2007 * Returns: an integer associated with this expression Since 0.17.1 2008 */ 2009 public int matchAddGregex(Regex regex, GRegexMatchFlags flags) 2010 { 2011 // int vte_terminal_match_add_gregex (VteTerminal *terminal, GRegex *regex, GRegexMatchFlags flags); 2012 return vte_terminal_match_add_gregex(vteTerminal, (regex is null) ? null : regex.getRegexStruct(), flags); 2013 } 2014 2015 /** 2016 * Removes the regular expression which is associated with the given tag from 2017 * the list of expressions which the terminal will highlight when the user 2018 * moves the mouse cursor over matching text. 2019 * Params: 2020 * tag = the tag of the regex to remove 2021 */ 2022 public void matchRemove(int tag) 2023 { 2024 // void vte_terminal_match_remove (VteTerminal *terminal, int tag); 2025 vte_terminal_match_remove(vteTerminal, tag); 2026 } 2027 2028 /** 2029 * Checks if the text in and around the specified position matches any of the 2030 * regular expressions previously set using vte_terminal_match_add(). If a 2031 * match exists, the text string is returned and if tag is not NULL, the number 2032 * associated with the matched regular expression will be stored in tag. 2033 * If more than one regular expression has been set with 2034 * vte_terminal_match_add(), then expressions are checked in the order in 2035 * which they were added. 2036 * Params: 2037 * column = the text column 2038 * row = the text row 2039 * tag = a location to store the tag, or NULL. [out][allow-none] 2040 * Returns: a newly allocated string which matches one of the previously set regular expressions. [transfer full] 2041 */ 2042 public string matchCheck(glong column, glong row, out int tag) 2043 { 2044 // char * vte_terminal_match_check (VteTerminal *terminal, glong column, glong row, int *tag); 2045 return Str.toString(vte_terminal_match_check(vteTerminal, column, row, &tag)); 2046 } 2047 2048 /** 2049 * Sets which cursor the terminal will use if the pointer is over the pattern 2050 * specified by tag. The terminal keeps a reference to cursor. 2051 * Params: 2052 * tag = the tag of the regex which should use the specified cursor 2053 * cursor = the GdkCursor which the terminal should use when the pattern is 2054 * highlighted, or NULL to use the standard cursor. [allow-none] 2055 * Since 0.11 2056 */ 2057 public void matchSetCursor(int tag, Cursor cursor) 2058 { 2059 // void vte_terminal_match_set_cursor (VteTerminal *terminal, int tag, GdkCursor *cursor); 2060 vte_terminal_match_set_cursor(vteTerminal, tag, (cursor is null) ? null : cursor.getCursorStruct()); 2061 } 2062 2063 /** 2064 * Sets which cursor the terminal will use if the pointer is over the pattern 2065 * specified by tag. 2066 * Params: 2067 * tag = the tag of the regex which should use the specified cursor 2068 * cursorType = a GdkCursorType 2069 * Since 0.11.9 2070 */ 2071 public void matchSetCursorType(int tag, GdkCursorType cursorType) 2072 { 2073 // void vte_terminal_match_set_cursor_type (VteTerminal *terminal, int tag, GdkCursorType cursor_type); 2074 vte_terminal_match_set_cursor_type(vteTerminal, tag, cursorType); 2075 } 2076 2077 /** 2078 * Sets which cursor the terminal will use if the pointer is over the pattern 2079 * specified by tag. 2080 * Params: 2081 * tag = the tag of the regex which should use the specified cursor 2082 * cursorName = the name of the cursor 2083 * Since 0.17.1 2084 */ 2085 public void matchSetCursorName(int tag, string cursorName) 2086 { 2087 // void vte_terminal_match_set_cursor_name (VteTerminal *terminal, int tag, const char *cursor_name); 2088 vte_terminal_match_set_cursor_name(vteTerminal, tag, Str.toStringz(cursorName)); 2089 } 2090 2091 /** 2092 * Sets what type of terminal the widget attempts to emulate by scanning for 2093 * control sequences defined in the system's termcap file. Unless you 2094 * are interested in this feature, always use "xterm". 2095 * Params: 2096 * emulation = the name of a terminal description, or NULL to use the default. [allow-none] 2097 */ 2098 public void setEmulation(string emulation) 2099 { 2100 // void vte_terminal_set_emulation (VteTerminal *terminal, const char *emulation); 2101 vte_terminal_set_emulation(vteTerminal, Str.toStringz(emulation)); 2102 } 2103 2104 /** 2105 * Queries the terminal for its current emulation, as last set by a call to 2106 * vte_terminal_set_emulation(). 2107 * Returns: an interned string containing the name of the terminal type the widget is attempting to emulate 2108 */ 2109 public string getEmulation() 2110 { 2111 // const char * vte_terminal_get_emulation (VteTerminal *terminal); 2112 return Str.toString(vte_terminal_get_emulation(vteTerminal)); 2113 } 2114 2115 /** 2116 * Queries the terminal for its default emulation, which is attempted if the 2117 * terminal type passed to vte_terminal_set_emulation() is NULL. 2118 * Returns: an interned string containing the name of the default terminal type the widget attempts to emulate. [transfer none][type utf8] Since 0.11.11 2119 */ 2120 public string getDefaultEmulation() 2121 { 2122 // const char * vte_terminal_get_default_emulation (VteTerminal *terminal); 2123 return Str.toString(vte_terminal_get_default_emulation(vteTerminal)); 2124 } 2125 2126 /** 2127 * Changes the encoding the terminal will expect data from the child to 2128 * be encoded with. For certain terminal types, applications executing in the 2129 * terminal can change the encoding. The default encoding is defined by the 2130 * application's locale settings. 2131 * Params: 2132 * codeset = a valid GIConv target, or NULL to use the default encoding. [allow-none] 2133 */ 2134 public void setEncoding(string codeset) 2135 { 2136 // void vte_terminal_set_encoding (VteTerminal *terminal, const char *codeset); 2137 vte_terminal_set_encoding(vteTerminal, Str.toStringz(codeset)); 2138 } 2139 2140 /** 2141 * Determines the name of the encoding in which the terminal expects data to be 2142 * encoded. 2143 * Returns: the current encoding for the terminal. [transfer none] 2144 */ 2145 public string getEncoding() 2146 { 2147 // const char * vte_terminal_get_encoding (VteTerminal *terminal); 2148 return Str.toString(vte_terminal_get_encoding(vteTerminal)); 2149 } 2150 2151 /** 2152 * Some terminal emulations specify a status line which is separate from the 2153 * main display area, and define a means for applications to move the cursor 2154 * to the status line and back. 2155 * Returns: the current contents of the terminal's status line. For terminals like "xterm", this will usually be the empty string. The string must not be modified or freed by the caller. [transfer none] 2156 */ 2157 public string getStatusLine() 2158 { 2159 // const char * vte_terminal_get_status_line (VteTerminal *terminal); 2160 return Str.toString(vte_terminal_get_status_line(vteTerminal)); 2161 } 2162 2163 /** 2164 * Warning 2165 * vte_terminal_get_padding has been deprecated since version 0.26 and should not be used in newly-written code. Get the "inner-border" style property instead 2166 * Determines the amount of additional space the widget is using to pad the 2167 * edges of its visible area. This is necessary for cases where characters in 2168 * the selected font don't themselves include a padding area and the text 2169 * itself would otherwise be contiguous with the window border. Applications 2170 * which use the widget's row_count, column_count, char_height, and 2171 * char_width fields to set geometry hints using 2172 * gtk_window_set_geometry_hints() will need to add this value to the base 2173 * size. The values returned in xpad and ypad are the total padding used in 2174 * each direction, and do not need to be doubled. 2175 * Params: 2176 * xpad = address in which to store left/right-edge padding 2177 * ypad = address in which to store top/bottom-edge ypadding 2178 */ 2179 public void getPadding(out int xpad, out int ypad) 2180 { 2181 // void vte_terminal_get_padding (VteTerminal *terminal, int *xpad, int *ypad); 2182 vte_terminal_get_padding(vteTerminal, &xpad, &ypad); 2183 } 2184 2185 /** 2186 * Write contents of the current contents of terminal (including any 2187 * scrollback history) to stream according to flags. 2188 * If cancellable is not NULL, then the operation can be cancelled by triggering 2189 * the cancellable object from another thread. If the operation was cancelled, 2190 * the error G_IO_ERROR_CANCELLED will be returned in error. 2191 * This is a synchronous operation and will make the widget (and input 2192 * processing) during the write operation, which may take a long time 2193 * depending on scrollback history and stream availability for writing. 2194 * Params: 2195 * stream = a GOutputStream to write to 2196 * flags = a set of VteTerminalWriteFlags 2197 * cancellable = a GCancellable object, or NULL. [allow-none] 2198 * Returns: TRUE on success, FALSE if there was an error Since 0.24 2199 * Throws: GException on failure. 2200 */ 2201 public int writeContents(OutputStream stream, VteTerminalWriteFlags flags, Cancellable cancellable) 2202 { 2203 // gboolean vte_terminal_write_contents (VteTerminal *terminal, GOutputStream *stream, VteTerminalWriteFlags flags, GCancellable *cancellable, GError **error); 2204 GError* err = null; 2205 2206 auto p = vte_terminal_write_contents(vteTerminal, (stream is null) ? null : stream.getOutputStreamStruct(), flags, (cancellable is null) ? null : cancellable.getCancellableStruct(), &err); 2207 2208 if (err !is null) 2209 { 2210 throw new GException( new ErrorG(err) ); 2211 } 2212 2213 return p; 2214 } 2215 2216 /** 2217 * Searches the next string matching the search regex set with 2218 * vte_terminal_search_set_gregex(). 2219 * Returns: TRUE if a match was found Since 0.26 2220 */ 2221 public int searchFindNext() 2222 { 2223 // gboolean vte_terminal_search_find_next (VteTerminal *terminal); 2224 return vte_terminal_search_find_next(vteTerminal); 2225 } 2226 2227 /** 2228 * Searches the previous string matching the search regex set with 2229 * vte_terminal_search_set_gregex(). 2230 * Returns: TRUE if a match was found Since 0.26 2231 */ 2232 public int searchFindPrevious() 2233 { 2234 // gboolean vte_terminal_search_find_previous (VteTerminal *terminal); 2235 return vte_terminal_search_find_previous(vteTerminal); 2236 } 2237 2238 /** 2239 * Returns: the search GRegex regex set in terminal, or NULL. [transfer none] Since 0.26 2240 */ 2241 public Regex searchGetGregex() 2242 { 2243 // GRegex * vte_terminal_search_get_gregex (VteTerminal *terminal); 2244 auto p = vte_terminal_search_get_gregex(vteTerminal); 2245 2246 if(p is null) 2247 { 2248 return null; 2249 } 2250 2251 return ObjectG.getDObject!(Regex)(cast(GRegex*) p); 2252 } 2253 2254 /** 2255 * Returns: whether searching will wrap around Since 0.26 2256 */ 2257 public int searchGetWrapAround() 2258 { 2259 // gboolean vte_terminal_search_get_wrap_around (VteTerminal *terminal); 2260 return vte_terminal_search_get_wrap_around(vteTerminal); 2261 } 2262 2263 /** 2264 * Sets the GRegex regex to search for. Unsets the search regex when passed NULL. 2265 * Params: 2266 * regex = a GRegex, or NULL. [allow-none] 2267 * Since 0.26 2268 */ 2269 public void searchSetGregex(Regex regex) 2270 { 2271 // void vte_terminal_search_set_gregex (VteTerminal *terminal, GRegex *regex); 2272 vte_terminal_search_set_gregex(vteTerminal, (regex is null) ? null : regex.getRegexStruct()); 2273 } 2274 2275 /** 2276 * Sets whether search should wrap around to the beginning of the 2277 * terminal content when reaching its end. 2278 * Params: 2279 * wrapAround = whether search should wrap 2280 * Since 0.26 2281 */ 2282 public void searchSetWrapAround(int wrapAround) 2283 { 2284 // void vte_terminal_search_set_wrap_around (VteTerminal *terminal, gboolean wrap_around); 2285 vte_terminal_search_set_wrap_around(vteTerminal, wrapAround); 2286 } 2287 2288 /** 2289 * Gets the user's shell, or NULL. In the latter case, the 2290 * system default (usually "/bin/sh") should be used. 2291 * Returns: a newly allocated string with the user's shell, or NULL. [transfer full][type filename] Since 0.28 2292 */ 2293 public static string getUserShell() 2294 { 2295 // char * vte_get_user_shell (void); 2296 return Str.toString(vte_get_user_shell()); 2297 } 2298 2299 /** 2300 * Warning 2301 * vte_terminal_fork_command has been deprecated since version 0.26 and should not be used in newly-written code. Use vte_terminal_fork_command_full() 2302 * Starts the specified command under a newly-allocated controlling 2303 * pseudo-terminal. The argv and envv lists should be NULL-terminated, and 2304 * argv[0] is expected to be the name of the file being run, as it would be if 2305 * execve() were being called. TERM is automatically set to reflect the 2306 * terminal widget's emulation setting. If lastlog, utmp, or wtmp are TRUE, 2307 * logs the session to the specified system log files. 2308 * Note that all file descriptors except stdin/stdout/stderr will be closed 2309 * before calling exec() in the child. 2310 * Params: 2311 * command = the name of a binary to run, or NULL to spawn the user's shell. [allow-none][type filename] 2312 * argv = the argument list to be passed to command, or NULL. [allow-none][array zero-terminated=1][element-type filename] 2313 * envv = a list of environment variables to be added to the environment before 2314 * starting command, or NULL. [allow-none][array zero-terminated=1][element-type filename] 2315 * workingDirectory = the name of a directory the command should start in, or NULL. [allow-none][type filename] 2316 * lastlog = TRUE if the session should be logged to the lastlog 2317 * utmp = TRUE if the session should be logged to the utmp/utmpx log 2318 * wtmp = TRUE if the session should be logged to the wtmp/wtmpx log 2319 * Returns: the PID of the new process, or -1 on failure 2320 */ 2321 public pid_t forkCommand(string command, string[] argv, string[] envv, string workingDirectory, int lastlog, int utmp, int wtmp) 2322 { 2323 // pid_t vte_terminal_fork_command (VteTerminal *terminal, const char *command, char **argv, char **envv, const char *working_directory, gboolean lastlog, gboolean utmp, gboolean wtmp); 2324 return vte_terminal_fork_command(vteTerminal, Str.toStringz(command), Str.toStringzArray(argv), Str.toStringzArray(envv), Str.toStringz(workingDirectory), lastlog, utmp, wtmp); 2325 } 2326 2327 /** 2328 * Starts the specified command under a newly-allocated controlling 2329 * pseudo-terminal. The argv and envv lists should be NULL-terminated. 2330 * The "TERM" environment variable is automatically set to reflect the 2331 * terminal widget's emulation setting. 2332 * pty_flags controls logging the session to the specified system log files. 2333 * Note that G_SPAWN_DO_NOT_REAP_CHILD will always be added to spawn_flags. 2334 * Note that unless spawn_flags contains G_SPAWN_LEAVE_DESCRIPTORS_OPEN, all file 2335 * descriptors except stdin/stdout/stderr will be closed before calling exec() 2336 * in the child. 2337 * See vte_pty_new(), g_spawn_async() and vte_terminal_watch_child() for more information. 2338 * Params: 2339 * ptyFlags = flags from VtePtyFlags 2340 * workingDirectory = the name of a directory the command should start 2341 * in, or NULL to use the current working directory. [allow-none] 2342 * argv = child's argument vector. [array zero-terminated=1][element-type filename] 2343 * envv = a list of environment 2344 * variables to be added to the environment before starting the process, or NULL. [allow-none][array zero-terminated=1][element-type filename] 2345 * spawnFlags = flags from GSpawnFlags 2346 * childSetup = an extra child setup function to run in the child just before exec(), or NULL. [allow-none][scope call] 2347 * childSetupData = user data for child_setup 2348 * childPid = a location to store the child PID, or NULL. [out][allow-none][transfer full] 2349 * Returns: TRUE on success, or FALSE on error with error filled in Since 0.26 2350 * Throws: GException on failure. 2351 */ 2352 public int forkCommandFull(VtePtyFlags ptyFlags, string workingDirectory, string[] argv, string[] envv, GSpawnFlags spawnFlags, GSpawnChildSetupFunc childSetup, void* childSetupData, out GPid childPid) 2353 { 2354 // gboolean vte_terminal_fork_command_full (VteTerminal *terminal, VtePtyFlags pty_flags, const char *working_directory, char **argv, char **envv, GSpawnFlags spawn_flags, GSpawnChildSetupFunc child_setup, gpointer child_setup_data, GPid *child_pid, GError **error); 2355 GError* err = null; 2356 2357 auto p = vte_terminal_fork_command_full(vteTerminal, ptyFlags, Str.toStringz(workingDirectory), Str.toStringzArray(argv), Str.toStringzArray(envv), spawnFlags, childSetup, childSetupData, &childPid, &err); 2358 2359 if (err !is null) 2360 { 2361 throw new GException( new ErrorG(err) ); 2362 } 2363 2364 return p; 2365 } 2366 2367 /** 2368 * Warning 2369 * vte_terminal_forkpty has been deprecated since version 0.26 and should not be used in newly-written code. Use VtePty and fork() instead 2370 * Starts a new child process under a newly-allocated controlling 2371 * pseudo-terminal. TERM is automatically set to reflect the terminal widget's 2372 * emulation setting. If lastlog, utmp, or wtmp are TRUE, logs the session 2373 * to the specified system log files. 2374 * Note that all file descriptors except stdin/stdout/stderr will be closed 2375 * in the child. 2376 * Note that envv and working_directory are silently ignored. 2377 * Params: 2378 * envv = a list of environment variables to be added to the environment before 2379 * starting returning in the child process, or NULL 2380 * workingDirectory = the name of a directory the child process should change to, or 2381 * NULL 2382 * lastlog = TRUE if the session should be logged to the lastlog 2383 * utmp = TRUE if the session should be logged to the utmp/utmpx log 2384 * wtmp = TRUE if the session should be logged to the wtmp/wtmpx log 2385 * Returns: the ID of the new process in the parent, 0 in the child, and -1 if there was an error Since 0.11.11 2386 */ 2387 public pid_t forkpty(string[] envv, string workingDirectory, int lastlog, int utmp, int wtmp) 2388 { 2389 // pid_t vte_terminal_forkpty (VteTerminal *terminal, char **envv, const char *working_directory, gboolean lastlog, gboolean utmp, gboolean wtmp); 2390 return vte_terminal_forkpty(vteTerminal, Str.toStringzArray(envv), Str.toStringz(workingDirectory), lastlog, utmp, wtmp); 2391 } 2392 2393 /** 2394 * Warning 2395 * vte_terminal_get_pty has been deprecated since version 0.26 and should not be used in newly-written code. Use vte_terminal_get_pty_object() and vte_pty_get_fd() 2396 * Returns the file descriptor of the master end of terminal's PTY. 2397 * Returns: the file descriptor, or -1 if the terminal has no PTY. Since 0.20 2398 */ 2399 public int getPty() 2400 { 2401 // int vte_terminal_get_pty (VteTerminal *terminal); 2402 return vte_terminal_get_pty(vteTerminal); 2403 } 2404 2405 /** 2406 * Returns the VtePty of terminal. 2407 * Returns: a VtePty, or NULL. [transfer none] Since 0.26 2408 */ 2409 public Pty getPtyObject() 2410 { 2411 // VtePty * vte_terminal_get_pty_object (VteTerminal *terminal); 2412 auto p = vte_terminal_get_pty_object(vteTerminal); 2413 2414 if(p is null) 2415 { 2416 return null; 2417 } 2418 2419 return ObjectG.getDObject!(Pty)(cast(VtePty*) p); 2420 } 2421 2422 /** 2423 * Creates a new VtePty, and sets the emulation property 2424 * from "emulation". 2425 * See vte_pty_new() for more information. 2426 * Params: 2427 * flags = flags from VtePtyFlags 2428 * Returns: a new VtePty. [transfer full] Since 0.26 2429 * Throws: GException on failure. 2430 */ 2431 public Pty ptyNew(VtePtyFlags flags) 2432 { 2433 // VtePty * vte_terminal_pty_new (VteTerminal *terminal, VtePtyFlags flags, GError **error); 2434 GError* err = null; 2435 2436 auto p = vte_terminal_pty_new(vteTerminal, flags, &err); 2437 2438 if (err !is null) 2439 { 2440 throw new GException( new ErrorG(err) ); 2441 } 2442 2443 2444 if(p is null) 2445 { 2446 return null; 2447 } 2448 2449 return ObjectG.getDObject!(Pty)(cast(VtePty*) p); 2450 } 2451 2452 /** 2453 * Warning 2454 * vte_terminal_set_pty has been deprecated since version 0.26 and should not be used in newly-written code. Use vte_pty_new_foreign() and vte_terminal_set_pty_object() 2455 * Attach an existing PTY master side to the terminal widget. Use 2456 * instead of vte_terminal_fork_command() or vte_terminal_forkpty(). 2457 * Params: 2458 * ptyMaster = a file descriptor of the master end of a PTY, or -1 2459 * Since 0.12.1 2460 */ 2461 public void setPty(int ptyMaster) 2462 { 2463 // void vte_terminal_set_pty (VteTerminal *terminal, int pty_master); 2464 vte_terminal_set_pty(vteTerminal, ptyMaster); 2465 } 2466 2467 /** 2468 * Sets pty as the PTY to use in terminal. 2469 * Use NULL to unset the PTY. 2470 * Params: 2471 * pty = a VtePty, or NULL. [allow-none] 2472 * Since 0.26. 2473 */ 2474 public void setPtyObject(Pty pty) 2475 { 2476 // void vte_terminal_set_pty_object (VteTerminal *terminal, VtePty *pty); 2477 vte_terminal_set_pty_object(vteTerminal, (pty is null) ? null : pty.getPtyStruct()); 2478 } 2479 2480 /** 2481 * Watches child_pid. When the process exists, the "child-exited" 2482 * signal will be called. Use vte_terminal_get_child_exit_status() to 2483 * retrieve the child's exit status. 2484 * Prior to calling this function, a VtePty must have been set in terminal 2485 * using vte_terminal_set_pty_object(). 2486 * When the child exits, the terminal's VtePty will be set to NULL. 2487 * Note: g_child_watch_add() or g_child_watch_add_full() must not have 2488 * been called for child_pid, nor a GSource for it been created with 2489 * g_child_watch_source_new(). 2490 * Note: when using the g_spawn_async() family of functions, 2491 * the G_SPAWN_DO_NOT_REAP_CHILD flag MUST have been passed. 2492 * Params: 2493 * childPid = a GPid 2494 * Since 0.26 2495 */ 2496 public void watchChild(GPid childPid) 2497 { 2498 // void vte_terminal_watch_child (VteTerminal *terminal, GPid child_pid); 2499 vte_terminal_watch_child(vteTerminal, childPid); 2500 } 2501 2502 /** 2503 * Warning 2504 * vte_terminal_get_adjustment has been deprecated since version 0.28 and should not be used in newly-written code. Use gtk_scrollable_get_vadjustment() instead 2505 * An accessor function provided for the benefit of language bindings. 2506 * Returns: the contents of terminal's adjustment field. [transfer none] 2507 */ 2508 public Adjustment getAdjustment() 2509 { 2510 // GtkAdjustment * vte_terminal_get_adjustment (VteTerminal *terminal); 2511 auto p = vte_terminal_get_adjustment(vteTerminal); 2512 2513 if(p is null) 2514 { 2515 return null; 2516 } 2517 2518 return ObjectG.getDObject!(Adjustment)(cast(GtkAdjustment*) p); 2519 } 2520 2521 /** 2522 * Warning 2523 * vte_terminal_get_char_ascent is deprecated and should not be used in newly-written code. 0.20 2524 * An accessor function provided for the benefit of language bindings. 2525 * Returns: the contents of terminal's char_ascent field 2526 */ 2527 public glong getCharAscent() 2528 { 2529 // glong vte_terminal_get_char_ascent (VteTerminal *terminal); 2530 return vte_terminal_get_char_ascent(vteTerminal); 2531 } 2532 2533 /** 2534 * Warning 2535 * vte_terminal_get_char_descent is deprecated and should not be used in newly-written code. 0.20 2536 * An accessor function provided for the benefit of language bindings. 2537 * Returns: the contents of terminal's char_descent field 2538 */ 2539 public glong getCharDescent() 2540 { 2541 // glong vte_terminal_get_char_descent (VteTerminal *terminal); 2542 return vte_terminal_get_char_descent(vteTerminal); 2543 } 2544 2545 /** 2546 * Returns: the height of a character cell 2547 */ 2548 public glong getCharHeight() 2549 { 2550 // glong vte_terminal_get_char_height (VteTerminal *terminal); 2551 return vte_terminal_get_char_height(vteTerminal); 2552 } 2553 2554 /** 2555 * Returns: the width of a character cell 2556 */ 2557 public glong getCharWidth() 2558 { 2559 // glong vte_terminal_get_char_width (VteTerminal *terminal); 2560 return vte_terminal_get_char_width(vteTerminal); 2561 } 2562 2563 /** 2564 * Returns: the number of columns 2565 */ 2566 public glong getColumnCount() 2567 { 2568 // glong vte_terminal_get_column_count (VteTerminal *terminal); 2569 return vte_terminal_get_column_count(vteTerminal); 2570 } 2571 2572 /** 2573 * Returns: the icon title. [transfer none] 2574 */ 2575 public string getIconTitle() 2576 { 2577 // const char * vte_terminal_get_icon_title (VteTerminal *terminal); 2578 return Str.toString(vte_terminal_get_icon_title(vteTerminal)); 2579 } 2580 2581 /** 2582 * Returns: the number of rows 2583 */ 2584 public glong getRowCount() 2585 { 2586 // glong vte_terminal_get_row_count (VteTerminal *terminal); 2587 return vte_terminal_get_row_count(vteTerminal); 2588 } 2589 2590 /** 2591 * Returns: the window title. [transfer none] 2592 */ 2593 public string getWindowTitle() 2594 { 2595 // const char * vte_terminal_get_window_title (VteTerminal *terminal); 2596 return Str.toString(vte_terminal_get_window_title(vteTerminal)); 2597 } 2598 2599 /** 2600 * Returns: the URI of the current directory of the process running in the terminal, or NULL. [transfer none] Since 0.34 2601 */ 2602 public string getCurrentDirectoryUri() 2603 { 2604 // const char * vte_terminal_get_current_directory_uri (VteTerminal *terminal); 2605 return Str.toString(vte_terminal_get_current_directory_uri(vteTerminal)); 2606 } 2607 2608 /** 2609 * Returns: the URI of the current file the process running in the terminal is operating on, or NULL if not set. [transfer none] Since 0.34 2610 */ 2611 public string getCurrentFileUri() 2612 { 2613 // const char * vte_terminal_get_current_file_uri (VteTerminal *terminal); 2614 return Str.toString(vte_terminal_get_current_file_uri(vteTerminal)); 2615 } 2616 }