1----------------------------------------------------------------------- 2-- GtkAda - Ada95 binding for Gtk+/Gnome -- 3-- -- 4-- Copyright (C) 2001-2013, AdaCore -- 5-- -- 6-- This library is free software; you can redistribute it and/or -- 7-- modify it under the terms of the GNU General Public -- 8-- License as published by the Free Software Foundation; either -- 9-- version 2 of the License, or (at your option) any later version. -- 10-- -- 11-- This library is distributed in the hope that it will be useful, -- 12-- but WITHOUT ANY WARRANTY; without even the implied warranty of -- 13-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- 14-- General Public License for more details. -- 15-- -- 16-- You should have received a copy of the GNU General Public -- 17-- License along with this library; if not, write to the -- 18-- Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- 19-- Boston, MA 02111-1307, USA. -- 20-- -- 21-- As a special exception, if other files instantiate generics from -- 22-- this unit, or you link this unit with other files to produce an -- 23-- executable, this unit does not by itself cause the resulting -- 24-- executable to be covered by the GNU General Public License. This -- 25-- exception does not however invalidate any other reasons why the -- 26-- executable file might be covered by the GNU Public License. -- 27----------------------------------------------------------------------- 28 29with Gtkada.Bindings; use Gtkada.Bindings; 30with Interfaces.C.Strings; use Interfaces.C.Strings; 31with System; 32with Gtk.Clipboard; use Gtk.Clipboard; 33with Gtk.Text_Iter; use Gtk.Text_Iter; 34with Gtk.Text_Tag; use Gtk.Text_Tag; 35 36with Glib.Type_Conversion_Hooks; 37 38package body Gtk.Text_Buffer is 39 40 package Type_Conversion is new Glib.Type_Conversion_Hooks.Hook_Registrator 41 (Get_Type'Access, Gtk_Text_Buffer_Record); 42 pragma Warnings (Off, Type_Conversion); 43 44 ------------- 45 -- Gtk_New -- 46 ------------- 47 48 procedure Gtk_New 49 (Buffer : out Gtk_Text_Buffer; 50 Table : Gtk.Text_Tag_Table.Gtk_Text_Tag_Table := null) is 51 begin 52 Buffer := new Gtk_Text_Buffer_Record; 53 Initialize (Buffer, Table); 54 end Gtk_New; 55 56 ---------------- 57 -- Initialize -- 58 ---------------- 59 60 procedure Initialize 61 (Buffer : access Gtk_Text_Buffer_Record'Class; 62 Table : Gtk.Text_Tag_Table.Gtk_Text_Tag_Table := null) 63 is 64 function Internal (Table : System.Address) return System.Address; 65 pragma Import (C, Internal, "gtk_text_buffer_new"); 66 67 use type Gtk.Text_Tag_Table.Gtk_Text_Tag_Table; 68 69 begin 70 if Table = null then 71 Set_Object (Buffer, Internal (System.Null_Address)); 72 else 73 Set_Object (Buffer, Internal (Get_Object (Table))); 74 end if; 75 end Initialize; 76 77 -------------------- 78 -- Get_Line_Count -- 79 -------------------- 80 81 function Get_Line_Count 82 (Buffer : access Gtk_Text_Buffer_Record) return Gint 83 is 84 function Internal (Buffer : System.Address) return Gint; 85 pragma Import (C, Internal, "gtk_text_buffer_get_line_count"); 86 87 begin 88 return Internal (Get_Object (Buffer)); 89 end Get_Line_Count; 90 91 -------------------- 92 -- Get_Char_Count -- 93 -------------------- 94 95 function Get_Char_Count 96 (Buffer : access Gtk_Text_Buffer_Record) return Gint 97 is 98 function Internal (Buffer : System.Address) return Gint; 99 pragma Import (C, Internal, "gtk_text_buffer_get_char_count"); 100 101 begin 102 return Internal (Get_Object (Buffer)); 103 end Get_Char_Count; 104 105 ------------------- 106 -- Get_Tag_Table -- 107 ------------------- 108 109 function Get_Tag_Table 110 (Buffer : access Gtk_Text_Buffer_Record) 111 return Gtk.Text_Tag_Table.Gtk_Text_Tag_Table 112 is 113 function Internal (Buffer : System.Address) return System.Address; 114 pragma Import (C, Internal, "gtk_text_buffer_get_tag_table"); 115 Stub : Gtk.Text_Tag_Table.Gtk_Text_Tag_Table_Record; 116 117 begin 118 return Gtk.Text_Tag_Table.Gtk_Text_Tag_Table 119 (Get_User_Data_Fast (Internal (Get_Object (Buffer)), Stub)); 120 end Get_Tag_Table; 121 122 -------------- 123 -- Set_Text -- 124 -------------- 125 126 procedure Set_Text 127 (Buffer : access Gtk_Text_Buffer_Record; 128 Text : UTF8_String) 129 is 130 procedure Internal 131 (Buffer : System.Address; 132 Text : UTF8_String; 133 Len : Gint); 134 pragma Import (C, Internal, "gtk_text_buffer_set_text"); 135 136 begin 137 Internal (Get_Object (Buffer), Text, Text'Length); 138 end Set_Text; 139 140 ------------ 141 -- Insert -- 142 ------------ 143 144 procedure Insert 145 (Buffer : access Gtk_Text_Buffer_Record; 146 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 147 Text : UTF8_String) 148 is 149 procedure Internal 150 (Buffer : System.Address; 151 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 152 Text : UTF8_String; 153 Len : Gint); 154 pragma Import (C, Internal, "gtk_text_buffer_insert"); 155 156 begin 157 Internal (Get_Object (Buffer), Iter, Text, Text'Length); 158 end Insert; 159 160 ------------ 161 -- Insert -- 162 ------------ 163 164 procedure Insert 165 (Buffer : access Gtk_Text_Buffer_Record; 166 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 167 Text : Gtkada.Types.Chars_Ptr) 168 is 169 procedure Internal 170 (Buffer : System.Address; 171 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 172 Text : Gtkada.Types.Chars_Ptr; 173 Len : Gint := -1); 174 pragma Import (C, Internal, "gtk_text_buffer_insert"); 175 176 begin 177 Internal (Get_Object (Buffer), Iter, Text); 178 end Insert; 179 180 ---------------------- 181 -- Insert_With_Tags -- 182 ---------------------- 183 184 procedure Insert_With_Tags 185 (Buffer : access Gtk_Text_Buffer_Record; 186 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 187 Text : UTF8_String; 188 Tag : Gtk_Text_Tag) 189 is 190 procedure Internal 191 (Buffer : System.Address; 192 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 193 Text : UTF8_String; 194 Len : Gint; 195 Tag : System.Address); 196 pragma Import (C, Internal, "ada_gtk_text_buffer_insert_with_tags"); 197 198 begin 199 Internal 200 (Get_Object (Buffer), Iter, Text, Text'Length, Get_Object (Tag)); 201 end Insert_With_Tags; 202 203 ---------------------- 204 -- Insert_With_Tags -- 205 ---------------------- 206 207 procedure Insert_With_Tags 208 (Buffer : access Gtk_Text_Buffer_Record; 209 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 210 Text : Gtkada.Types.Chars_Ptr; 211 Tag : Gtk.Text_Tag.Gtk_Text_Tag) 212 is 213 procedure Internal 214 (Buffer : System.Address; 215 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 216 Text : Gtkada.Types.Chars_Ptr; 217 Len : Gint := -1; 218 Tag : System.Address); 219 pragma Import (C, Internal, "ada_gtk_text_buffer_insert_with_tags"); 220 221 begin 222 Internal (Get_Object (Buffer), Iter, Text, Tag => Get_Object (Tag)); 223 end Insert_With_Tags; 224 225 ------------------------------ 226 -- Insert_With_Tags_By_Name -- 227 ------------------------------ 228 229 procedure Insert_With_Tags_By_Name 230 (Buffer : access Gtk_Text_Buffer_Record; 231 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 232 Text : UTF8_String; 233 Tag_Name : String) 234 is 235 procedure Internal 236 (Buffer : System.Address; 237 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 238 Text : UTF8_String; 239 Len : Gint; 240 Name : String); 241 pragma Import 242 (C, Internal, "ada_gtk_text_buffer_insert_with_tags_by_name"); 243 244 begin 245 Internal 246 (Get_Object (Buffer), Iter, Text, Text'Length, Tag_Name & ASCII.NUL); 247 end Insert_With_Tags_By_Name; 248 249 ---------------------- 250 -- Insert_At_Cursor -- 251 ---------------------- 252 253 procedure Insert_At_Cursor 254 (Buffer : access Gtk_Text_Buffer_Record; 255 Text : UTF8_String) 256 is 257 procedure Internal 258 (Buffer : System.Address; 259 Text : UTF8_String; 260 Len : Gint); 261 pragma Import (C, Internal, "gtk_text_buffer_insert_at_cursor"); 262 263 begin 264 Internal (Get_Object (Buffer), Text, Text'Length); 265 end Insert_At_Cursor; 266 267 procedure Insert_At_Cursor 268 (Buffer : access Gtk_Text_Buffer_Record; 269 Text : Gtkada.Types.Chars_Ptr; 270 Len : Gint := -1) 271 is 272 procedure Internal 273 (Buffer : System.Address; 274 Text : Gtkada.Types.Chars_Ptr; 275 Len : Gint); 276 pragma Import (C, Internal, "gtk_text_buffer_insert_at_cursor"); 277 278 begin 279 Internal (Get_Object (Buffer), Text, Len); 280 end Insert_At_Cursor; 281 282 ------------------------ 283 -- Insert_Interactive -- 284 ------------------------ 285 286 procedure Insert_Interactive 287 (Buffer : access Gtk_Text_Buffer_Record; 288 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 289 Text : UTF8_String; 290 Default_Editable : Boolean; 291 Result : out Boolean) 292 is 293 function Internal 294 (Buffer : System.Address; 295 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 296 Text : UTF8_String; 297 Len : Gint; 298 Default_Editable : Gboolean) return Gboolean; 299 pragma Import (C, Internal, "gtk_text_buffer_insert_interactive"); 300 301 begin 302 Result := 303 Internal (Get_Object (Buffer), Iter, Text, Text'Length, 304 Boolean'Pos (Default_Editable)) /= 0; 305 end Insert_Interactive; 306 307 ---------------------------------- 308 -- Insert_Interactive_At_Cursor -- 309 ---------------------------------- 310 311 function Insert_Interactive_At_Cursor 312 (Buffer : access Gtk_Text_Buffer_Record; 313 Text : UTF8_String; 314 Default_Editable : Boolean) return Boolean 315 is 316 function Internal 317 (Buffer : System.Address; 318 Text : UTF8_String; 319 Len : Gint; 320 Default_Editable : Gboolean) return Gboolean; 321 pragma Import 322 (C, Internal, "gtk_text_buffer_insert_interactive_at_cursor"); 323 324 begin 325 return 326 Internal (Get_Object (Buffer), Text, Text'Length, 327 Boolean'Pos (Default_Editable)) /= 0; 328 end Insert_Interactive_At_Cursor; 329 330 ------------------ 331 -- Insert_Range -- 332 ------------------ 333 334 procedure Insert_Range 335 (Buffer : access Gtk_Text_Buffer_Record; 336 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 337 Start : Gtk.Text_Iter.Gtk_Text_Iter; 338 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 339 is 340 procedure Internal 341 (Buffer : System.Address; 342 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 343 Start : Gtk.Text_Iter.Gtk_Text_Iter; 344 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 345 pragma Import (C, Internal, "gtk_text_buffer_insert_range"); 346 347 begin 348 Internal (Get_Object (Buffer), Iter, Start, The_End); 349 end Insert_Range; 350 351 ------------------------------ 352 -- Insert_Range_Interactive -- 353 ------------------------------ 354 355 procedure Insert_Range_Interactive 356 (Buffer : access Gtk_Text_Buffer_Record; 357 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 358 Start : Gtk.Text_Iter.Gtk_Text_Iter; 359 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 360 Default_Editable : Boolean; 361 Result : out Boolean) 362 is 363 function Internal 364 (Buffer : System.Address; 365 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 366 Start : Gtk.Text_Iter.Gtk_Text_Iter; 367 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 368 Default_Editable : Gboolean) return Gboolean; 369 pragma Import (C, Internal, "gtk_text_buffer_insert_range_interactive"); 370 371 begin 372 Result := 373 Internal (Get_Object (Buffer), 374 Iter, 375 Start, 376 The_End, 377 Boolean'Pos (Default_Editable)) /= 0; 378 end Insert_Range_Interactive; 379 380 ------------ 381 -- Delete -- 382 ------------ 383 384 procedure Delete 385 (Buffer : access Gtk_Text_Buffer_Record; 386 Start : in out Gtk.Text_Iter.Gtk_Text_Iter; 387 The_End : in out Gtk.Text_Iter.Gtk_Text_Iter) 388 is 389 procedure Internal 390 (Buffer : System.Address; 391 Start : Gtk.Text_Iter.Gtk_Text_Iter; 392 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 393 pragma Import (C, Internal, "gtk_text_buffer_delete"); 394 395 begin 396 Internal (Get_Object (Buffer), Start, The_End); 397 end Delete; 398 399 ------------------------ 400 -- Delete_Interactive -- 401 ------------------------ 402 403 procedure Delete_Interactive 404 (Buffer : access Gtk_Text_Buffer_Record; 405 Start_Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 406 End_Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 407 Default_Editable : Boolean; 408 Result : out Boolean) 409 is 410 function Internal 411 (Buffer : System.Address; 412 Start_Iter : Gtk.Text_Iter.Gtk_Text_Iter; 413 End_Iter : Gtk.Text_Iter.Gtk_Text_Iter; 414 Default_Editable : Gboolean) return Gboolean; 415 pragma Import (C, Internal, "gtk_text_buffer_delete_interactive"); 416 417 begin 418 Result := 419 Internal (Get_Object (Buffer), 420 Start_Iter, 421 End_Iter, 422 Boolean'Pos (Default_Editable)) /= 0; 423 end Delete_Interactive; 424 425 -------------- 426 -- Get_Text -- 427 -------------- 428 429 function Get_Text 430 (Buffer : access Gtk_Text_Buffer_Record; 431 Start : Gtk.Text_Iter.Gtk_Text_Iter; 432 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 433 Include_Hidden_Chars : Boolean := False) return Gtkada.Types.Chars_Ptr 434 is 435 function Internal 436 (Buffer : System.Address; 437 Start : Gtk.Text_Iter.Gtk_Text_Iter; 438 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 439 Include_Hidden_Chars : Gboolean) 440 return Interfaces.C.Strings.chars_ptr; 441 pragma Import (C, Internal, "gtk_text_buffer_get_text"); 442 443 begin 444 return Internal 445 (Get_Object (Buffer), 446 Start, 447 The_End, 448 Boolean'Pos (Include_Hidden_Chars)); 449 end Get_Text; 450 451 function Get_Text 452 (Buffer : access Gtk_Text_Buffer_Record; 453 Start : Gtk.Text_Iter.Gtk_Text_Iter; 454 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 455 Include_Hidden_Chars : Boolean := False) return UTF8_String 456 is 457 Str : constant Interfaces.C.Strings.chars_ptr := 458 Get_Text (Buffer, Start, The_End, Include_Hidden_Chars); 459 S : constant String := Interfaces.C.Strings.Value (Str); 460 461 begin 462 Gtkada.Types.g_free (Str); 463 return S; 464 end Get_Text; 465 466 --------------- 467 -- Get_Slice -- 468 --------------- 469 470 function Get_Slice 471 (Buffer : access Gtk_Text_Buffer_Record; 472 Start : Gtk.Text_Iter.Gtk_Text_Iter; 473 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 474 Include_Hidden_Chars : Boolean := False) return Gtkada.Types.Chars_Ptr 475 is 476 function Internal 477 (Buffer : System.Address; 478 Start : Gtk.Text_Iter.Gtk_Text_Iter; 479 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 480 Include_Hidden_Chars : Gboolean) 481 return Interfaces.C.Strings.chars_ptr; 482 pragma Import (C, Internal, "gtk_text_buffer_get_slice"); 483 484 begin 485 return Internal 486 (Get_Object (Buffer), 487 Start, 488 The_End, 489 Boolean'Pos (Include_Hidden_Chars)); 490 end Get_Slice; 491 492 function Get_Slice 493 (Buffer : access Gtk_Text_Buffer_Record; 494 Start : Gtk.Text_Iter.Gtk_Text_Iter; 495 The_End : Gtk.Text_Iter.Gtk_Text_Iter; 496 Include_Hidden_Chars : Boolean := False) return UTF8_String 497 is 498 Str : constant Interfaces.C.Strings.chars_ptr := 499 Get_Slice (Buffer, Start, The_End, Include_Hidden_Chars); 500 S : constant String := Interfaces.C.Strings.Value (Str); 501 502 begin 503 Gtkada.Types.g_free (Str); 504 return S; 505 end Get_Slice; 506 507 ------------------- 508 -- Insert_Pixbuf -- 509 ------------------- 510 511 procedure Insert_Pixbuf 512 (Buffer : access Gtk_Text_Buffer_Record; 513 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 514 Pixbuf : Gdk.Pixbuf.Gdk_Pixbuf) 515 is 516 procedure Internal 517 (Buffer : System.Address; 518 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 519 Pixbuf : System.Address); 520 pragma Import (C, Internal, "gtk_text_buffer_insert_pixbuf"); 521 522 begin 523 Internal (Get_Object (Buffer), Iter, Get_Object (Pixbuf)); 524 end Insert_Pixbuf; 525 526 ------------------------- 527 -- Insert_Child_Anchor -- 528 ------------------------- 529 530 procedure Insert_Child_Anchor 531 (Buffer : access Gtk_Text_Buffer_Record; 532 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 533 Anchor : access Gtk.Text_Child.Gtk_Text_Child_Anchor_Record'Class) 534 is 535 procedure Internal 536 (Buffer : System.Address; 537 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 538 Anchor : System.Address); 539 pragma Import (C, Internal, "gtk_text_buffer_insert_child_anchor"); 540 541 begin 542 Internal (Get_Object (Buffer), Iter, Get_Object (Anchor)); 543 end Insert_Child_Anchor; 544 545 ------------------------- 546 -- Create_Child_Anchor -- 547 ------------------------- 548 549 procedure Create_Child_Anchor 550 (Buffer : access Gtk_Text_Buffer_Record; 551 Iter : in out Gtk.Text_Iter.Gtk_Text_Iter; 552 Result : out Gtk.Text_Child.Gtk_Text_Child_Anchor) 553 is 554 function Internal 555 (Buffer : System.Address; 556 Iter : Gtk.Text_Iter.Gtk_Text_Iter) return System.Address; 557 pragma Import (C, Internal, "gtk_text_buffer_create_child_anchor"); 558 559 Stub : Gtk.Text_Child.Gtk_Text_Child_Anchor_Record; 560 begin 561 Result := Gtk.Text_Child.Gtk_Text_Child_Anchor 562 (Get_User_Data_Fast (Internal (Get_Object (Buffer), Iter), Stub)); 563 end Create_Child_Anchor; 564 565 ----------------- 566 -- Create_Mark -- 567 ----------------- 568 569 function Create_Mark 570 (Buffer : access Gtk_Text_Buffer_Record; 571 Mark_Name : String := ""; 572 Where : Gtk.Text_Iter.Gtk_Text_Iter; 573 Left_Gravity : Boolean := True) return Gtk.Text_Mark.Gtk_Text_Mark 574 is 575 function Internal 576 (Buffer : System.Address; 577 Mark_Name : String; 578 Where : Gtk.Text_Iter.Gtk_Text_Iter; 579 Left_Gravity : Gboolean) return System.Address; 580 581 function Internal 582 (Buffer : System.Address; 583 Mark_Name : System.Address := System.Null_Address; 584 Where : Gtk.Text_Iter.Gtk_Text_Iter; 585 Left_Gravity : Gboolean) return System.Address; 586 pragma Import (C, Internal, "gtk_text_buffer_create_mark"); 587 588 Stub : Gtk.Text_Mark.Gtk_Text_Mark_Record; 589 590 begin 591 if Mark_Name /= "" then 592 return 593 Gtk.Text_Mark.Gtk_Text_Mark 594 (Get_User_Data_Fast 595 (Internal 596 (Get_Object (Buffer), 597 Mark_Name & ASCII.NUL, 598 Where, 599 Boolean'Pos (Left_Gravity)), 600 Stub)); 601 else 602 return 603 Gtk.Text_Mark.Gtk_Text_Mark 604 (Get_User_Data_Fast 605 (Internal 606 (Buffer => Get_Object (Buffer), 607 Where => Where, 608 Left_Gravity => Boolean'Pos (Left_Gravity)), 609 Stub)); 610 end if; 611 end Create_Mark; 612 613 --------------- 614 -- Move_Mark -- 615 --------------- 616 617 procedure Move_Mark 618 (Buffer : access Gtk_Text_Buffer_Record; 619 Mark : access Gtk.Text_Mark.Gtk_Text_Mark_Record'Class; 620 Where : Gtk.Text_Iter.Gtk_Text_Iter) 621 is 622 procedure Internal 623 (Buffer : System.Address; 624 Mark : System.Address; 625 Where : Gtk.Text_Iter.Gtk_Text_Iter); 626 pragma Import (C, Internal, "gtk_text_buffer_move_mark"); 627 628 begin 629 Internal (Get_Object (Buffer), Get_Object (Mark), Where); 630 end Move_Mark; 631 632 ----------------- 633 -- Delete_Mark -- 634 ----------------- 635 636 procedure Delete_Mark 637 (Buffer : access Gtk_Text_Buffer_Record; 638 Mark : access Gtk.Text_Mark.Gtk_Text_Mark_Record'Class) 639 is 640 procedure Internal 641 (Buffer : System.Address; 642 Mark : System.Address); 643 pragma Import (C, Internal, "gtk_text_buffer_delete_mark"); 644 645 begin 646 Internal (Get_Object (Buffer), Get_Object (Mark)); 647 end Delete_Mark; 648 649 -------------- 650 -- Get_Mark -- 651 -------------- 652 653 function Get_Mark 654 (Buffer : access Gtk_Text_Buffer_Record; 655 Name : String) return Gtk.Text_Mark.Gtk_Text_Mark 656 is 657 function Internal 658 (Buffer : System.Address; 659 Name : String) return System.Address; 660 pragma Import (C, Internal, "gtk_text_buffer_get_mark"); 661 662 Stub : Gtk.Text_Mark.Gtk_Text_Mark_Record; 663 begin 664 return Gtk.Text_Mark.Gtk_Text_Mark 665 (Get_User_Data_Fast 666 (Internal (Get_Object (Buffer), Name & ASCII.NUL), 667 Stub)); 668 end Get_Mark; 669 670 ----------------------- 671 -- Move_Mark_By_Name -- 672 ----------------------- 673 674 procedure Move_Mark_By_Name 675 (Buffer : access Gtk_Text_Buffer_Record; 676 Name : String; 677 Where : Gtk.Text_Iter.Gtk_Text_Iter) 678 is 679 procedure Internal 680 (Buffer : System.Address; 681 Name : String; 682 Where : Gtk.Text_Iter.Gtk_Text_Iter); 683 pragma Import (C, Internal, "gtk_text_buffer_move_mark_by_name"); 684 685 begin 686 Internal (Get_Object (Buffer), Name & ASCII.NUL, Where); 687 end Move_Mark_By_Name; 688 689 ------------------------- 690 -- Delete_Mark_By_Name -- 691 ------------------------- 692 693 procedure Delete_Mark_By_Name 694 (Buffer : access Gtk_Text_Buffer_Record; 695 Name : String) 696 is 697 procedure Internal 698 (Buffer : System.Address; 699 Name : String); 700 pragma Import (C, Internal, "gtk_text_buffer_delete_mark_by_name"); 701 702 begin 703 Internal (Get_Object (Buffer), Name & ASCII.NUL); 704 end Delete_Mark_By_Name; 705 706 ---------------- 707 -- Get_Insert -- 708 ---------------- 709 710 function Get_Insert 711 (Buffer : access Gtk_Text_Buffer_Record) 712 return Gtk.Text_Mark.Gtk_Text_Mark 713 is 714 function Internal (Buffer : System.Address) return System.Address; 715 pragma Import (C, Internal, "gtk_text_buffer_get_insert"); 716 Stub : Gtk.Text_Mark.Gtk_Text_Mark_Record; 717 718 begin 719 return Gtk.Text_Mark.Gtk_Text_Mark 720 (Get_User_Data_Fast (Internal (Get_Object (Buffer)), Stub)); 721 end Get_Insert; 722 723 ------------------------- 724 -- Get_Selection_Bound -- 725 ------------------------- 726 727 function Get_Selection_Bound (Buffer : access Gtk_Text_Buffer_Record) 728 return Gtk.Text_Mark.Gtk_Text_Mark 729 is 730 function Internal (Buffer : System.Address) return System.Address; 731 pragma Import (C, Internal, "gtk_text_buffer_get_selection_bound"); 732 Stub : Gtk.Text_Mark.Gtk_Text_Mark_Record; 733 begin 734 return Gtk.Text_Mark.Gtk_Text_Mark 735 (Get_User_Data_Fast (Internal (Get_Object (Buffer)), Stub)); 736 end Get_Selection_Bound; 737 738 ------------------ 739 -- Place_Cursor -- 740 ------------------ 741 742 procedure Place_Cursor 743 (Buffer : access Gtk_Text_Buffer_Record; 744 Where : Gtk.Text_Iter.Gtk_Text_Iter) 745 is 746 procedure Internal 747 (Buffer : System.Address; 748 Where : Gtk.Text_Iter.Gtk_Text_Iter); 749 pragma Import (C, Internal, "gtk_text_buffer_place_cursor"); 750 751 begin 752 Internal (Get_Object (Buffer), Where); 753 end Place_Cursor; 754 755 --------------- 756 -- Apply_Tag -- 757 --------------- 758 759 procedure Apply_Tag 760 (Buffer : access Gtk_Text_Buffer_Record; 761 Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class; 762 Start : Gtk.Text_Iter.Gtk_Text_Iter; 763 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 764 is 765 procedure Internal 766 (Buffer : System.Address; 767 Tag : System.Address; 768 Start : Gtk.Text_Iter.Gtk_Text_Iter; 769 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 770 pragma Import (C, Internal, "gtk_text_buffer_apply_tag"); 771 772 begin 773 Internal (Get_Object (Buffer), Get_Object (Tag), Start, The_End); 774 end Apply_Tag; 775 776 ---------------- 777 -- Remove_Tag -- 778 ---------------- 779 780 procedure Remove_Tag 781 (Buffer : access Gtk_Text_Buffer_Record; 782 Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class; 783 Start : Gtk.Text_Iter.Gtk_Text_Iter; 784 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 785 is 786 procedure Internal 787 (Buffer : System.Address; 788 Tag : System.Address; 789 Start : Gtk.Text_Iter.Gtk_Text_Iter; 790 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 791 pragma Import (C, Internal, "gtk_text_buffer_remove_tag"); 792 begin 793 Internal (Get_Object (Buffer), Get_Object (Tag), Start, The_End); 794 end Remove_Tag; 795 796 --------------------- 797 -- Remove_All_Tags -- 798 --------------------- 799 800 procedure Remove_All_Tags 801 (Buffer : access Gtk_Text_Buffer_Record; 802 Start : Gtk.Text_Iter.Gtk_Text_Iter; 803 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 804 is 805 procedure Internal 806 (Buffer : System.Address; 807 Start : Gtk.Text_Iter.Gtk_Text_Iter; 808 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 809 pragma Import (C, Internal, "gtk_text_buffer_remove_all_tags"); 810 begin 811 Internal (Get_Object (Buffer), Start, The_End); 812 end Remove_All_Tags; 813 814 ----------------------- 815 -- Apply_Tag_By_Name -- 816 ----------------------- 817 818 procedure Apply_Tag_By_Name 819 (Buffer : access Gtk_Text_Buffer_Record; 820 Name : String; 821 Start : Gtk.Text_Iter.Gtk_Text_Iter; 822 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 823 is 824 procedure Internal 825 (Buffer : System.Address; 826 Name : String; 827 Start : Gtk.Text_Iter.Gtk_Text_Iter; 828 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 829 pragma Import (C, Internal, "gtk_text_buffer_apply_tag_by_name"); 830 831 begin 832 Internal (Get_Object (Buffer), Name & ASCII.NUL, Start, The_End); 833 end Apply_Tag_By_Name; 834 835 ------------------------ 836 -- Remove_Tag_By_Name -- 837 ------------------------ 838 839 procedure Remove_Tag_By_Name 840 (Buffer : access Gtk_Text_Buffer_Record; 841 Name : String; 842 Start : Gtk.Text_Iter.Gtk_Text_Iter; 843 The_End : Gtk.Text_Iter.Gtk_Text_Iter) 844 is 845 procedure Internal 846 (Buffer : System.Address; 847 Name : String; 848 Start : Gtk.Text_Iter.Gtk_Text_Iter; 849 The_End : Gtk.Text_Iter.Gtk_Text_Iter); 850 pragma Import (C, Internal, "gtk_text_buffer_remove_tag_by_name"); 851 852 begin 853 Internal (Get_Object (Buffer), Name & ASCII.NUL, Start, The_End); 854 end Remove_Tag_By_Name; 855 856 ----------------------------- 857 -- Get_Iter_At_Line_Offset -- 858 ----------------------------- 859 860 procedure Get_Iter_At_Line_Offset 861 (Buffer : access Gtk_Text_Buffer_Record; 862 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 863 Line_Number : Gint; 864 Char_Offset : Gint := 0) 865 is 866 procedure Internal 867 (Buffer : System.Address; 868 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 869 Line_Number : Gint; 870 Char_Offset : Gint); 871 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_line_offset"); 872 873 Result : Boolean; 874 begin 875 -- Prevent critical crashes from gtk+ if Char_Offset is invalid 876 Internal (Get_Object (Buffer), Iter, Line_Number, 0); 877 878 if not Ends_Line (Iter) then 879 Forward_To_Line_End (Iter, Result); 880 881 if Char_Offset <= Get_Line_Offset (Iter) then 882 Internal (Get_Object (Buffer), Iter, Line_Number, Char_Offset); 883 end if; 884 end if; 885 end Get_Iter_At_Line_Offset; 886 887 ---------------------------- 888 -- Get_Iter_At_Line_Index -- 889 ---------------------------- 890 891 procedure Get_Iter_At_Line_Index 892 (Buffer : access Gtk_Text_Buffer_Record; 893 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 894 Line_Number : Gint; 895 Byte_Index : Gint := 0) 896 is 897 procedure Internal 898 (Buffer : System.Address; 899 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 900 Line_Number : Gint; 901 Byte_Index : Gint); 902 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_line_index"); 903 904 begin 905 Internal (Get_Object (Buffer), Iter, Line_Number, Byte_Index); 906 end Get_Iter_At_Line_Index; 907 908 ------------------------ 909 -- Get_Iter_At_Offset -- 910 ------------------------ 911 912 procedure Get_Iter_At_Offset 913 (Buffer : access Gtk_Text_Buffer_Record; 914 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 915 Char_Offset : Gint) 916 is 917 procedure Internal 918 (Buffer : System.Address; 919 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 920 Char_Offset : Gint); 921 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_offset"); 922 923 begin 924 Internal (Get_Object (Buffer), Iter, Char_Offset); 925 end Get_Iter_At_Offset; 926 927 ---------------------- 928 -- Get_Iter_At_Line -- 929 ---------------------- 930 931 procedure Get_Iter_At_Line 932 (Buffer : access Gtk_Text_Buffer_Record; 933 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 934 Line_Number : Gint) 935 is 936 procedure Internal 937 (Buffer : System.Address; 938 Iter : System.Address; 939 Line_Number : Gint); 940 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_line"); 941 942 begin 943 Internal (Get_Object (Buffer), Iter'Address, Line_Number); 944 end Get_Iter_At_Line; 945 946 -------------------- 947 -- Get_Start_Iter -- 948 -------------------- 949 950 procedure Get_Start_Iter 951 (Buffer : access Gtk_Text_Buffer_Record; 952 Iter : out Gtk.Text_Iter.Gtk_Text_Iter) 953 is 954 procedure Internal 955 (Buffer : System.Address; 956 Iter : System.Address); 957 pragma Import (C, Internal, "gtk_text_buffer_get_start_iter"); 958 959 begin 960 Internal (Get_Object (Buffer), Iter'Address); 961 end Get_Start_Iter; 962 963 ------------------ 964 -- Get_End_Iter -- 965 ------------------ 966 967 procedure Get_End_Iter 968 (Buffer : access Gtk_Text_Buffer_Record; 969 Iter : out Gtk.Text_Iter.Gtk_Text_Iter) 970 is 971 procedure Internal 972 (Buffer : System.Address; 973 Iter : System.Address); 974 pragma Import (C, Internal, "gtk_text_buffer_get_end_iter"); 975 976 begin 977 Internal (Get_Object (Buffer), Iter'Address); 978 end Get_End_Iter; 979 980 ---------------- 981 -- Get_Bounds -- 982 ---------------- 983 984 procedure Get_Bounds 985 (Buffer : access Gtk_Text_Buffer_Record; 986 Start : out Gtk.Text_Iter.Gtk_Text_Iter; 987 The_End : out Gtk.Text_Iter.Gtk_Text_Iter) 988 is 989 procedure Internal 990 (Buffer : System.Address; 991 Start : System.Address; 992 The_End : System.Address); 993 pragma Import (C, Internal, "gtk_text_buffer_get_bounds"); 994 995 begin 996 Internal (Get_Object (Buffer), Start'Address, The_End'Address); 997 end Get_Bounds; 998 999 ---------------------- 1000 -- Get_Iter_At_Mark -- 1001 ---------------------- 1002 1003 procedure Get_Iter_At_Mark 1004 (Buffer : access Gtk_Text_Buffer_Record; 1005 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 1006 Mark : access Gtk.Text_Mark.Gtk_Text_Mark_Record'Class) 1007 is 1008 procedure Internal 1009 (Buffer : System.Address; 1010 Iter : System.Address; 1011 Mark : System.Address); 1012 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_mark"); 1013 1014 begin 1015 Internal (Get_Object (Buffer), Iter'Address, Get_Object (Mark)); 1016 end Get_Iter_At_Mark; 1017 1018 ------------------------------ 1019 -- Get_Iter_At_Child_Anchor -- 1020 ------------------------------ 1021 1022 procedure Get_Iter_At_Child_Anchor 1023 (Buffer : access Gtk_Text_Buffer_Record; 1024 Iter : out Gtk.Text_Iter.Gtk_Text_Iter; 1025 Anchor : access Gtk.Text_Child.Gtk_Text_Child_Anchor_Record'Class) 1026 is 1027 procedure Internal 1028 (Buffer : System.Address; 1029 Iter : System.Address; 1030 Anchor : System.Address); 1031 pragma Import (C, Internal, "gtk_text_buffer_get_iter_at_child_anchor"); 1032 1033 begin 1034 Internal (Get_Object (Buffer), Iter'Address, Get_Object (Anchor)); 1035 end Get_Iter_At_Child_Anchor; 1036 1037 ------------------ 1038 -- Get_Modified -- 1039 ------------------ 1040 1041 function Get_Modified 1042 (Buffer : access Gtk_Text_Buffer_Record) return Boolean 1043 is 1044 function Internal (Buffer : System.Address) return Gboolean; 1045 pragma Import (C, Internal, "gtk_text_buffer_get_modified"); 1046 1047 begin 1048 return Internal (Get_Object (Buffer)) /= 0; 1049 end Get_Modified; 1050 1051 ------------------ 1052 -- Set_Modified -- 1053 ------------------ 1054 1055 procedure Set_Modified 1056 (Buffer : access Gtk_Text_Buffer_Record; 1057 Setting : Boolean := True) 1058 is 1059 procedure Internal (Buffer : System.Address; Setting : Gboolean); 1060 pragma Import (C, Internal, "gtk_text_buffer_set_modified"); 1061 1062 begin 1063 Internal (Get_Object (Buffer), Boolean'Pos (Setting)); 1064 end Set_Modified; 1065 1066 ------------------- 1067 -- Cut_Clipboard -- 1068 ------------------- 1069 1070 procedure Cut_Clipboard 1071 (Buffer : access Gtk_Text_Buffer_Record; 1072 Clipboard : Gtk.Clipboard.Gtk_Clipboard; 1073 Default_Editable : Boolean := True) 1074 is 1075 procedure Internal 1076 (Buffer : System.Address; 1077 Clipboard : Gtk.Clipboard.Gtk_Clipboard; 1078 Default_Editable : Gboolean); 1079 pragma Import (C, Internal, "gtk_text_buffer_cut_clipboard"); 1080 1081 begin 1082 Internal 1083 (Get_Object (Buffer), Clipboard, Boolean'Pos (Default_Editable)); 1084 end Cut_Clipboard; 1085 1086 -------------------- 1087 -- Copy_Clipboard -- 1088 -------------------- 1089 1090 procedure Copy_Clipboard 1091 (Buffer : access Gtk_Text_Buffer_Record; 1092 Clipboard : Gtk.Clipboard.Gtk_Clipboard) 1093 is 1094 procedure Internal 1095 (Buffer : System.Address; Clipboard : Gtk.Clipboard.Gtk_Clipboard); 1096 pragma Import (C, Internal, "gtk_text_buffer_copy_clipboard"); 1097 1098 begin 1099 Internal (Get_Object (Buffer), Clipboard); 1100 end Copy_Clipboard; 1101 1102 --------------------- 1103 -- Paste_Clipboard -- 1104 --------------------- 1105 1106 procedure Paste_Clipboard 1107 (Buffer : access Gtk_Text_Buffer_Record; 1108 Clipboard : Gtk.Clipboard.Gtk_Clipboard; 1109 Override_Location : Gtk.Text_Iter.Gtk_Text_Iter_Access := null; 1110 Default_Editable : Boolean := True) 1111 is 1112 procedure Internal 1113 (Buffer : System.Address; 1114 Clipboard : Gtk.Clipboard.Gtk_Clipboard; 1115 Override_Location : System.Address; 1116 Default_Editable : Gboolean); 1117 pragma Import (C, Internal, "gtk_text_buffer_paste_clipboard"); 1118 1119 begin 1120 if Override_Location = null then 1121 Internal 1122 (Get_Object (Buffer), Clipboard, 1123 System.Null_Address, Boolean'Pos (Default_Editable)); 1124 else 1125 Internal 1126 (Get_Object (Buffer), Clipboard, 1127 Override_Location.all'Address, Boolean'Pos (Default_Editable)); 1128 end if; 1129 end Paste_Clipboard; 1130 1131 ---------------------- 1132 -- Selection_Exists -- 1133 ---------------------- 1134 1135 function Selection_Exists 1136 (Buffer : access Gtk_Text_Buffer_Record) return Boolean 1137 is 1138 function Internal 1139 (Buffer : System.Address; 1140 Start : System.Address := System.Null_Address; 1141 The_End : System.Address := System.Null_Address) return Gboolean; 1142 pragma Import (C, Internal, "gtk_text_buffer_get_selection_bounds"); 1143 begin 1144 return Internal (Get_Object (Buffer)) /= 0; 1145 end Selection_Exists; 1146 1147 -------------------------- 1148 -- Get_Selection_Bounds -- 1149 -------------------------- 1150 1151 procedure Get_Selection_Bounds 1152 (Buffer : access Gtk_Text_Buffer_Record; 1153 Start : out Gtk.Text_Iter.Gtk_Text_Iter; 1154 The_End : out Gtk.Text_Iter.Gtk_Text_Iter; 1155 Result : out Boolean) 1156 is 1157 function Internal 1158 (Buffer : System.Address; 1159 Start : System.Address; 1160 The_End : System.Address) return Gboolean; 1161 pragma Import (C, Internal, "gtk_text_buffer_get_selection_bounds"); 1162 begin 1163 Result := 1164 Internal (Get_Object (Buffer), Start'Address, The_End'Address) /= 0; 1165 end Get_Selection_Bounds; 1166 1167 ---------------------- 1168 -- Delete_Selection -- 1169 ---------------------- 1170 1171 function Delete_Selection 1172 (Buffer : access Gtk_Text_Buffer_Record; 1173 Interactive : Boolean; 1174 Default_Editable : Boolean) return Boolean 1175 is 1176 function Internal 1177 (Buffer : System.Address; 1178 Interactive : Gboolean; 1179 Default_Editable : Gboolean) return Gboolean; 1180 pragma Import (C, Internal, "gtk_text_buffer_delete_selection"); 1181 1182 begin 1183 return 1184 Internal 1185 (Get_Object (Buffer), 1186 Boolean'Pos (Interactive), 1187 Boolean'Pos (Default_Editable)) /= 0; 1188 end Delete_Selection; 1189 1190 ----------------------- 1191 -- Begin_User_Action -- 1192 ----------------------- 1193 1194 procedure Begin_User_Action (Buffer : access Gtk_Text_Buffer_Record) is 1195 procedure Internal (Buffer : System.Address); 1196 pragma Import (C, Internal, "gtk_text_buffer_begin_user_action"); 1197 1198 begin 1199 Internal (Get_Object (Buffer)); 1200 end Begin_User_Action; 1201 1202 --------------------- 1203 -- End_User_Action -- 1204 --------------------- 1205 1206 procedure End_User_Action (Buffer : access Gtk_Text_Buffer_Record) is 1207 procedure Internal (Buffer : System.Address); 1208 pragma Import (C, Internal, "gtk_text_buffer_end_user_action"); 1209 1210 begin 1211 Internal (Get_Object (Buffer)); 1212 end End_User_Action; 1213 1214 ---------------- 1215 -- Get_Buffer -- 1216 ---------------- 1217 function Get_Buffer (Iter : Gtk.Text_Iter.Gtk_Text_Iter) 1218 return Gtk_Text_Buffer 1219 is 1220 function Internal 1221 (Iter : Gtk.Text_Iter.Gtk_Text_Iter) return System.Address; 1222 pragma Import (C, Internal, "gtk_text_iter_get_buffer"); 1223 -- External binding: gtk_text_iter_get_buffer 1224 Stub : Gtk_Text_Buffer_Record; 1225 begin 1226 return Gtk_Text_Buffer (Get_User_Data_Fast (Internal (Iter), Stub)); 1227 end Get_Buffer; 1228 1229 ---------------- 1230 -- Get_Buffer -- 1231 ---------------- 1232 1233 function Get_Buffer 1234 (Mark : Gtk.Text_Mark.Gtk_Text_Mark) return Gtk_Text_Buffer 1235 is 1236 function Internal (Iter : System.Address) return System.Address; 1237 pragma Import (C, Internal, "gtk_text_mark_get_buffer"); 1238 -- External binding: gtk_text_mark_get_buffer 1239 Stub : Gtk_Text_Buffer_Record; 1240 begin 1241 return Gtk_Text_Buffer 1242 (Get_User_Data_Fast (Internal (Get_Object (Mark)), Stub)); 1243 end Get_Buffer; 1244 1245 ----------------------------- 1246 -- Add_Selection_Clipboard -- 1247 ----------------------------- 1248 1249 procedure Add_Selection_Clipboard 1250 (Buffer : access Gtk_Text_Buffer_Record; 1251 Clipboard : Gtk_Clipboard) 1252 is 1253 procedure Internal 1254 (Buffer : System.Address; 1255 Clipboard : Gtk_Clipboard); 1256 pragma Import (C, Internal, "gtk_text_buffer_add_selection_clipboard"); 1257 begin 1258 Internal (Get_Object (Buffer), Clipboard); 1259 end Add_Selection_Clipboard; 1260 1261 -------------------------------- 1262 -- Remove_Selection_Clipboard -- 1263 -------------------------------- 1264 1265 procedure Remove_Selection_Clipboard 1266 (Buffer : access Gtk_Text_Buffer_Record; 1267 Clipboard : Gtk_Clipboard) 1268 is 1269 procedure Internal 1270 (Buffer : System.Address; 1271 Clipboard : Gtk_Clipboard); 1272 pragma Import 1273 (C, Internal, "gtk_text_buffer_remove_selection_clipboard"); 1274 begin 1275 Internal (Get_Object (Buffer), Clipboard); 1276 end Remove_Selection_Clipboard; 1277 1278 ---------------- 1279 -- Create_Tag -- 1280 ---------------- 1281 1282 function Create_Tag 1283 (Buffer : access Gtk_Text_Buffer_Record; 1284 Tag_Name : String := "") 1285 return Gtk_Text_Tag 1286 is 1287 function Internal 1288 (Buffer : System.Address; 1289 Tag_Name : Interfaces.C.Strings.chars_ptr) 1290 return System.Address; 1291 pragma Import (C, Internal, "ada_gtk_text_buffer_create_tag"); 1292 Stub : Gtk_Text_Tag_Record; 1293 Str : chars_ptr := String_Or_Null (Tag_Name); 1294 Tag : Gtk_Text_Tag; 1295 begin 1296 Tag := Gtk_Text_Tag 1297 (Get_User_Data (Internal (Get_Object (Buffer), Str), Stub)); 1298 Free (Str); 1299 return Tag; 1300 end Create_Tag; 1301 1302 --------------- 1303 -- Backspace -- 1304 --------------- 1305 1306 function Backspace 1307 (Buffer : access Gtk_Text_Buffer_Record; 1308 Iter : Gtk.Text_Iter.Gtk_Text_Iter; 1309 Interactive : Boolean; 1310 Default_Editable : Boolean) 1311 return Boolean 1312 is 1313 function Internal 1314 (Buffer : System.Address; 1315 Iter : Gtk_Text_Iter; 1316 Interactive : Gboolean; 1317 Default_Editable : Gboolean) 1318 return Gboolean; 1319 pragma Import (C, Internal, "gtk_text_buffer_backspace"); 1320 begin 1321 return Boolean'Val 1322 (Internal (Get_Object (Buffer), Iter, 1323 Boolean'Pos (Interactive), Boolean'Pos (Default_Editable))); 1324 end Backspace; 1325 1326 ------------------ 1327 -- Select_Range -- 1328 ------------------ 1329 1330 procedure Select_Range 1331 (Buffer : access Gtk_Text_Buffer_Record; 1332 Ins : Gtk_Text_Iter; 1333 Bound : Gtk_Text_Iter) 1334 is 1335 procedure Internal 1336 (Buffer : System.Address; 1337 Ins : Gtk_Text_Iter; 1338 Bound : Gtk_Text_Iter); 1339 pragma Import (C, Internal, "gtk_text_buffer_select_range"); 1340 begin 1341 Internal (Get_Object (Buffer), Ins, Bound); 1342 end Select_Range; 1343 1344end Gtk.Text_Buffer; 1345