/usr/share/doc/blt-dev/html/tabset.html is in blt-dev 2.5.3+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD><TITLE>tabset manual page - BLT Built-In Commands</TITLE><!--#include virtual="/man/maninc.html"-->
<link rel="stylesheet" href="../docs.css" type="text/css" media="all">
</HEAD>
<BODY>
<DL>
<DD><A HREF="tabset.htm#M2" NAME="L3148">NAME</A>
<DL><DD>tabset - Create and manipulate tabset widgets</DD></DL>
<DD><A HREF="tabset.htm#M3" NAME="L3149">SYNOPSIS</A>
<DL>
</DL>
<DD><A HREF="tabset.htm#M4" NAME="L3150">DESCRIPTION</A>
<DD><A HREF="tabset.htm#M5" NAME="L3151">INTRODUCTION</A>
<DD><A HREF="tabset.htm#M6" NAME="L3152">SYNTAX</A>
<DD><A HREF="tabset.htm#M7" NAME="L3153">INDICES</A>
<DL class="indices">
<DD><A HREF="tabset.htm#M8" NAME="L3154"><I>number</I></A>
<DD><A HREF="tabset.htm#M9" NAME="L3155"><B>@</B><I>x</I><B>,</B><I>y</I></A>
<DD><A HREF="tabset.htm#M10" NAME="L3156"><B>select</B></A>
<DD><A HREF="tabset.htm#M11" NAME="L3157"><B>active</B></A>
<DD><A HREF="tabset.htm#M12" NAME="L3158"><B>focus</B></A>
<DD><A HREF="tabset.htm#M13" NAME="L3159"><B>down</B></A>
<DD><A HREF="tabset.htm#M14" NAME="L3160"><B>left</B></A>
<DD><A HREF="tabset.htm#M15" NAME="L3161"><B>right</B></A>
<DD><A HREF="tabset.htm#M16" NAME="L3162"><B>up</B></A>
<DD><A HREF="tabset.htm#M17" NAME="L3163"><B>end</B></A>
</DL>
<DD><A HREF="tabset.htm#M18" NAME="L3164">OPERATIONS</A>
<DL class="operations">
<DD><A HREF="tabset.htm#M19" NAME="L3165"><I>pathName </I><B>activate</B> <I>index</I></A>
<DD><A HREF="tabset.htm#M20" NAME="L3166"><I>pathName </I><B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?</A>
<DD><A HREF="tabset.htm#M21" NAME="L3167"><I>pathName </I><B>cget</B> <I>option</I></A>
<DD><A HREF="tabset.htm#M22" NAME="L3168"><I>pathName </I><B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?</A>
<DD><A HREF="tabset.htm#M23" NAME="L3169"><I>pathName </I><B>delete </B><I>first </I>?<I>last</I>?</A>
<DD><A HREF="tabset.htm#M24" NAME="L3170"><I>pathName </I><B>focus </B><I>index</I></A>
<DD><A HREF="tabset.htm#M25" NAME="L3171"><I>pathName </I><B>get</B> <I>index</I></A>
<DD><A HREF="tabset.htm#M26" NAME="L3172"><I>pathName </I><B>hightlight</B> <I>index</I></A>
<DD><A HREF="tabset.htm#M27" NAME="L3173"><I>pathName </I><B>index</B> ?<I>flag</I>? <I>string</I></A>
<DD><A HREF="tabset.htm#M28" NAME="L3174"><I>pathName </I><B>insert</B> <I>position ?name ...</I>? ?<I>option value</I>?...</A>
<DD><A HREF="tabset.htm#M29" NAME="L3175"><I>pathName </I><B>invoke </B><I>index</I></A>
<DD><A HREF="tabset.htm#M30" NAME="L3176"><I>pathName </I><B>move</B> <I>index</I> <B>before</B>|<B>after</B> <I>index</I></A>
<DD><A HREF="tabset.htm#M31" NAME="L3177"><I>pathName </I><B>nearest</B> <I>x</I> <I>y</I> ?<I>varName</I></A>
<DD><A HREF="tabset.htm#M32" NAME="L3178"><I>pathName </I><B>perforation </B><I>operation</I> ?<I>args</I>?</A>
<DL class="operations">
<DD><A HREF="tabset.htm#M33" NAME="L3179"><I>pathName </I><B>perforation activate</B> <I>boolean</I></A>
<DD><A HREF="tabset.htm#M34" NAME="L3180"><I>pathName </I><B>perforation invoke</B></A>
</DL>
<DD><A HREF="tabset.htm#M35" NAME="L3181"><I>pathName </I><B>scan</B> <I>option args</I></A>
<DL class="operations">
<DD><A HREF="tabset.htm#M36" NAME="L3182"><I>pathName </I><B>scan mark </B><I>x y</I></A>
<DD><A HREF="tabset.htm#M37" NAME="L3183"><I>pathName </I><B>scan dragto </B><I>x y</I>.</A>
</DL>
<DD><A HREF="tabset.htm#M38" NAME="L3184"><I>pathName </I><B>see </B><I>index</I></A>
<DD><A HREF="tabset.htm#M39" NAME="L3185"><I>pathName </I><B>select </B><I>index</I></A>
<DD><A HREF="tabset.htm#M40" NAME="L3186"><I>pathName </I><B>size</B></A>
<DD><A HREF="tabset.htm#M41" NAME="L3187"><I>pathName </I><B>tab </B><I>operation</I> ?<I>args</I>?</A>
<DL class="operations">
<DD><A HREF="tabset.htm#M42" NAME="L3188"><I>pathName </I><B>tab cget</B> <I>nameOrIndex</I> <I>option</I></A>
<DD><A HREF="tabset.htm#M43" NAME="L3189"><I>pathName </I><B>tab configure</B> <I>nameOrIndex</I> ?<I>nameOrIndex</I>...? <I>option</I>? ?<I>value option value ...</I>?</A>
<DD><A HREF="tabset.htm#M44" NAME="L3190"><I>pathName </I><B>tab dockall</B></A>
<DD><A HREF="tabset.htm#M45" NAME="L3191"><I>pathName </I><B>tab names</B> ?<I>pattern</I>?</A>
<DD><A HREF="tabset.htm#M46" NAME="L3192"><I>pathName </I><B>tab pageheight</B></A>
<DD><A HREF="tabset.htm#M47" NAME="L3193"><I>pathName </I><B>tab pagewidth</B></A>
<DD><A HREF="tabset.htm#M48" NAME="L3194"><I>pathName </I><B>tab select </B><I>nameOrindex</I></A>
<DD><A HREF="tabset.htm#M49" NAME="L3195"><I>pathName </I><B>tab tearoff </B><I>index</I> ?<I>newName</I>?</A>
</DL>
<DD><A HREF="tabset.htm#M50" NAME="L3196"><I>pathName </I><B>view </B><I>args</I></A>
<DL class="operations">
<DD><A HREF="tabset.htm#M51" NAME="L3197"><I>pathName </I><B>view</B></A>
<DD><A HREF="tabset.htm#M52" NAME="L3198"><I>pathName </I><B>view moveto</B><I> fraction</I></A>
<DD><A HREF="tabset.htm#M53" NAME="L3199"><I>pathName </I><B>view scroll </B><I>number what</I></A>
</DL>
</DL>
<DD><A HREF="tabset.htm#M54" NAME="L3200">WIDGET OPTIONS</A>
<DL class="widget options">
<DD><A HREF="tabset.htm#M55" NAME="L3201"><B>-activebackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M56" NAME="L3202"><B>-activeforeground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M57" NAME="L3203"><B>-anchor </B><I>anchor</I></A>
<DD><A HREF="tabset.htm#M58" NAME="L3204"><B>-background </B><I>color</I></A>
<DD><A HREF="tabset.htm#M59" NAME="L3205"><B>-borderwidth </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M60" NAME="L3206"><B>-cursor </B><I>cursor</I></A>
<DD><A HREF="tabset.htm#M61" NAME="L3207"><B>-dashes </B><I>dashList</I></A>
<DD><A HREF="tabset.htm#M62" NAME="L3208"><B>-endimage </B><I>imageName</I></A>
<DD><A HREF="tabset.htm#M63" NAME="L3209"><B>-font </B><I>fontName</I></A>
<DD><A HREF="tabset.htm#M64" NAME="L3210"><B>-foreground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M65" NAME="L3211"><B>-gap </B><I>size</I></A>
<DD><A HREF="tabset.htm#M66" NAME="L3212"><B>-gapleft </B><I>size</I></A>
<DD><A HREF="tabset.htm#M67" NAME="L3213"><B>-height </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M68" NAME="L3214"><B>-highlightbackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M69" NAME="L3215"><B>-highlightcolor </B><I>color</I></A>
<DD><A HREF="tabset.htm#M70" NAME="L3216"><B>-highlightthickness </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M71" NAME="L3217"><B>-outerpad </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M72" NAME="L3218"><B>-pageheight </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M73" NAME="L3219"><B>-pagewidth </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M74" NAME="L3220"><B>-perforationcommand</B> <I>string</I></A>
<DD><A HREF="tabset.htm#M75" NAME="L3221"><B>-relief </B><I>relief</I></A>
<DD><A HREF="tabset.htm#M76" NAME="L3222"><B>-rotate </B><I>theta</I></A>
<DD><A HREF="tabset.htm#M77" NAME="L3223"><B>-samewidth </B><I>boolean</I></A>
<DD><A HREF="tabset.htm#M78" NAME="L3224"><B>-scrollcommand </B><I>string</I></A>
<DD><A HREF="tabset.htm#M79" NAME="L3225"><B>-scrollincrement </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M80" NAME="L3226"><B>-selectbackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M81" NAME="L3227"><B>-selectcommand </B><I>string</I></A>
<DD><A HREF="tabset.htm#M82" NAME="L3228"><B>-selectforeground </B><I>color</I>\fB</A>
<DD><A HREF="tabset.htm#M83" NAME="L3229"><B>-selectpad </B><I>pixels</I>\fB</A>
<DD><A HREF="tabset.htm#M84" NAME="L3230"><B>-side </B><I>side</I>\fB</A>
<DL class="widget options">
<DD><A HREF="tabset.htm#M85" NAME="L3231"><B>top</B></A>
<DD><A HREF="tabset.htm#M86" NAME="L3232"><B>left</B></A>
<DD><A HREF="tabset.htm#M87" NAME="L3233"><B>right</B></A>
<DD><A HREF="tabset.htm#M88" NAME="L3234"><B>both</B></A>
</DL>
<DD><A HREF="tabset.htm#M89" NAME="L3235"><B>-slant </B><I>slant</I></A>
<DL class="widget options">
<DD><A HREF="tabset.htm#M90" NAME="L3236"><B>none</B></A>
<DD><A HREF="tabset.htm#M91" NAME="L3237"><B>left</B></A>
<DD><A HREF="tabset.htm#M92" NAME="L3238"><B>right</B></A>
<DD><A HREF="tabset.htm#M93" NAME="L3239"><B>both</B></A>
</DL>
<DD><A HREF="tabset.htm#M94" NAME="L3240"><B>-startimage </B><I>imageName</I></A>
<DD><A HREF="tabset.htm#M95" NAME="L3241"><B>-tabbackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M96" NAME="L3242"><B>-tabborderwidth </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M97" NAME="L3243"><B>-tabforeground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M98" NAME="L3244"><B>-tabrelief </B><I>relief</I></A>
<DD><A HREF="tabset.htm#M99" NAME="L3245"><B>-takefocus</B> <I>focus</I></A>
<DD><A HREF="tabset.htm#M100" NAME="L3246"><B>-tearoff </B><I>boolean</I></A>
<DD><A HREF="tabset.htm#M101" NAME="L3247"><B>-transient </B><I>boolean</I></A>
<DD><A HREF="tabset.htm#M102" NAME="L3248"><B>-textside </B><I>side</I>\fB</A>
<DD><A HREF="tabset.htm#M103" NAME="L3249"><B>-tiers </B><I>number</I>\fB</A>
<DD><A HREF="tabset.htm#M104" NAME="L3250"><B>-tile </B><I>image</I></A>
<DD><A HREF="tabset.htm#M105" NAME="L3251"><B>-width </B><I>pixels</I></A>
</DL>
<DD><A HREF="tabset.htm#M106" NAME="L3252">TAB OPTIONS</A>
<DL class="tab options">
<DD><A HREF="tabset.htm#M107" NAME="L3253"><B>-activebackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M108" NAME="L3254"><B>-activeforeground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M109" NAME="L3255"><B>-anchor </B><I>anchor</I></A>
<DD><A HREF="tabset.htm#M110" NAME="L3256"><B>-background </B><I>color</I></A>
<DD><A HREF="tabset.htm#M111" NAME="L3257"><B>-bindtags </B><I>tagList</I></A>
<DD><A HREF="tabset.htm#M112" NAME="L3258"><B>-command </B><I>string</I></A>
<DD><A HREF="tabset.htm#M113" NAME="L3259"><B>-data </B><I>string</I></A>
<DD><A HREF="tabset.htm#M114" NAME="L3260"><B>-fill </B><I>fill</I></A>
<DD><A HREF="tabset.htm#M115" NAME="L3261"><B>-font </B><I>fontName</I></A>
<DD><A HREF="tabset.htm#M116" NAME="L3262"><B>-foreground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M117" NAME="L3263"><B>-image </B><I>imageName</I></A>
<DD><A HREF="tabset.htm#M118" NAME="L3264"><B>-leftimage </B><I>imageName</I></A>
<DD><A HREF="tabset.htm#M119" NAME="L3265"><B>-ipadx </B><I>pad</I></A>
<DD><A HREF="tabset.htm#M120" NAME="L3266"><B>-ipady </B><I>pad</I></A>
<DD><A HREF="tabset.htm#M121" NAME="L3267"><B>-padx </B><I>pad</I></A>
<DD><A HREF="tabset.htm#M122" NAME="L3268"><B>-pady </B><I>pad</I></A>
<DD><A HREF="tabset.htm#M123" NAME="L3269"><B>-selectbackground </B><I>color</I></A>
<DD><A HREF="tabset.htm#M124" NAME="L3270"><B>-shadow </B><I>color</I></A>
<DD><A HREF="tabset.htm#M125" NAME="L3271"><B>-state </B><I>state</I></A>
<DD><A HREF="tabset.htm#M126" NAME="L3272"><B>-stipple </B><I>bitmap</I></A>
<DD><A HREF="tabset.htm#M127" NAME="L3273"><B>-text </B><I>text</I></A>
<DD><A HREF="tabset.htm#M128" NAME="L3274"><B>-underline </B><I>num</I></A>
<DD><A HREF="tabset.htm#M129" NAME="L3275"><B>-window </B><I>pathName</I></A>
<DD><A HREF="tabset.htm#M130" NAME="L3276"><B>-windowheight </B><I>pixels</I></A>
<DD><A HREF="tabset.htm#M131" NAME="L3277"><B>-windowwidth </B><I>pixels</I></A>
</DL>
<DD><A HREF="tabset.htm#M132" NAME="L3278">DEFAULT BINDINGS</A>
<DL class="default bindings">
<DD><A HREF="tabset.htm#M133" NAME="L3279"><B><ButtonPress-2></B></A>
<DD><A HREF="tabset.htm#M134" NAME="L3280"><B><B2-Motion></B></A>
<DD><A HREF="tabset.htm#M135" NAME="L3281"><B><ButtonRelease-2></B></A>
<DD><A HREF="tabset.htm#M136" NAME="L3282"><B><KeyPress-Up></B></A>
<DD><A HREF="tabset.htm#M137" NAME="L3283"><B><KeyPress-Down></B></A>
<DD><A HREF="tabset.htm#M138" NAME="L3284"><B><KeyPress-Left></B></A>
<DD><A HREF="tabset.htm#M139" NAME="L3285"><B><KeyPress-Right></B></A>
<DD><A HREF="tabset.htm#M140" NAME="L3286"><B><KeyPress-space></B></A>
<DD><A HREF="tabset.htm#M141" NAME="L3287"><B><KeyPress-Return></B></A>
</DL>
<DL class="default bindings">
<DD><A HREF="tabset.htm#M142" NAME="L3288"><B><Enter></B></A>
<DD><A HREF="tabset.htm#M143" NAME="L3289"><B><Leave></B></A>
<DD><A HREF="tabset.htm#M144" NAME="L3290"><B><ButtonRelease-1></B></A>
<DD><A HREF="tabset.htm#M145" NAME="L3291"><B><ButtonRelease-3></B></A>
<DD><A HREF="tabset.htm#M146" NAME="L3292"><B><Control-ButtonRelease-1></B></A>
</DL>
<DD><A HREF="tabset.htm#M147" NAME="L3293">BIND TAGS</A>
<DD><A HREF="tabset.htm#M148" NAME="L3294">EXAMPLE</A>
<DD><A HREF="tabset.htm#M149" NAME="L3295">KEYWORDS</A>
</DL>
<H3><A NAME="M2">NAME</A></H3>
tabset - Create and manipulate tabset widgets
<H3><A NAME="M3">SYNOPSIS</A></H3>
<B>tabset</B> <I>pathName </I>?<I>options</I>?<BR>
<H3><A NAME="M4">DESCRIPTION</A></H3>
The <B>tabset</B> widget displays a series of overlapping folders. Only
the contents of one folder at a time is displayed. By clicking on the
tab's of a folder, you can view other folders. Each folder may
contain any Tk widget that can be automatically positioned and resized
in the folder.
<P>
There's no limit to the number of folders. Tabs can be tiered or
scrolled. Pages (i.e. embedded widgets) can be torn off and displayed
in another toplevel widget, and also restored. A tabset can also be
used as just a set of tabs, without a displaying any pages. You can
bind events to individual tabs, so it's easy to add features like
"balloon help".
<H3><A NAME="M5">INTRODUCTION</A></H3>
Notebooks are a popular graphical paradigm. They allow you to organize
several windows that are too big to display at the same time as
pages of a notebook. For example, your application may display several
X-Y graphs at the same time. The graphs are too big to pack into the
same frame. Managing them in several <B><A HREF="../TkCmd/toplevel.htm">toplevel</A></B> widgets is
also cumbersome and clutters the screen. Instead, the <B>tabset</B> widget
organizes the graphs as folders in a notebook.
<P>
Only one page is visible at a time. When you click on a tab,
the folder corresponding to the tab is displayed in the <B>tabset</B>
widget. The tabset also lets you temporarily tear pages
out of the notebook into a separate toplevel widget, and put them back
in the tabset later. For example, you could compare two graphs side-by-side
by tearing them out, and then replace them when you are finished.
<P>
A tabset can contain any number of folders. If there are too
many tabs to view, you can arrange them as multiple tiers or scroll
the tabs. You can also attach Tk scrollbars to the tabset to scroll the tabs.
<H3><A NAME="M6">SYNTAX</A></H3>
The <B>tabset</B> command creates a new window using the <I>pathName</I>
argument and makes it into a tabset widget.
<dl><dd><table border="0"><tr><td><p style="font-size:12px;padding-left:.5em;padding-right:.5em;"><B>tabset </B><I>pathName </I>?<I>option value</I>?...</table></dl>
Additional options may be specified on the command line or in the
option database to configure aspects of the tabset such as its colors,
font, text, and relief. The <B>tabset</B> command returns its
<I>pathName</I> argument. At the time this command is invoked, there
must not exist a window named <I>pathName</I>, but <I>pathName</I>'s
parent must exist.
<P>
When first created, a new tabset contains no tabs. Tabs are added or
deleted using widget operations described below. It is not necessary
for all the tabs to be displayed in the tabset window at once;
commands described below may be used to change the view in the window.
Tabsets allow scrolling of tabs using the <B>-scrollcommand</B>
option. They also support scanning (see the <B><A HREF="../TclCmd/scan.htm">scan</A></B> operation).
Tabs may be arranged along any side of the tabset window using the
<B>-side</B> option.
<P>
The size of the tabset window is determined the number of tiers of
tabs and the sizes of the Tk widgets embedded inside each folder.
The widest widget determines the width of the folder. The tallest
determines the height. If no folders contain an embedded widget, the
size is determined solely by the size of the tabs.
<P>
You can override either dimension with the tabset's <B>-width</B>
and <B>-height</B> options.
<H3><A NAME="M7">INDICES</A></H3>
Indices refer to individual tabs/folders in the tabset. Many of
the operations for tabset widgets take one or more indices as
arguments. An index may take several forms:
<P>
<DL class="indices">
<DT><A NAME="M8"><I>number</I></A><DD>
Unique node id of the tab.
<P><DT><A NAME="M9"><B>@</B><I>x</I><B>,</B><I>y</I></A><DD>
Tab that covers the point in the tabset window
specified by <I>x</I> and <I>y</I> (in screen coordinates). If no
tab covers that point, then the index is ignored.
<P><DT><A NAME="M10"><B>select</B></A><DD>
The currently selected tab. The <B>select</B> index is
typically changed by either clicking on the tab with the left mouse
button or using the widget's <B>invoke</B> operation.
<P><DT><A NAME="M11"><B>active</B></A><DD>
The tab where the mouse pointer is currently located. The label
is drawn using its active colors (see the <B>-activebackground</B> and
<B>-activeforeground</B> options). The <B>active</B> index is typically
changed by moving the mouse pointer over a tab or using the widget's
<B>activate</B> operation. There can be only one active tab at a time.
If there is no tab located under the mouse pointer, the index
is ignored.
<P><DT><A NAME="M12"><B>focus</B></A><DD>
Tab that currently has the widget's focus.
This tab is displayed with a dashed line around its label. You can
change this using the <B><A HREF="../TkCmd/focus.htm">focus</A></B> operation. If no tab has focus,
then the index is ignored.
<P><DT><A NAME="M13"><B>down</B></A><DD>
Tab immediately below the tab that currently has focus,
if there is one. If there is no tab below, the current
tab is returned.
<P><DT><A NAME="M14"><B>left</B></A><DD>
Tab immediately to the left the tab that currently has focus,
if there is one. If there is no tab to the left, the current
tab is returned.
<P><DT><A NAME="M15"><B>right</B></A><DD>
Tab immediately to the right the tab that currently has focus, if
there is one. If there is no tab to the right, the current tab is
returned.
<P><DT><A NAME="M16"><B>up</B></A><DD>
Tab immediately above, if there is one, to the tab that currently has
focus. If there is no tab above, the current tab is returned.
<P><DT><A NAME="M17"><B>end</B></A><DD>
Last tab in the tabset. If there are no tabs in the tabset then the
index is ignored.
<P></DL>
<P>
Some indices may not always be available. For example, if the mouse
is not over any tab, "active" does not have an index. For most
tabset operations this is harmless and ignored.
<H3><A NAME="M18">OPERATIONS</A></H3>
All <B>tabset</B> operations are invoked by specifying the widget's
pathname, the operation, and any arguments that pertain to that
operation. The general form is:
<P>
<dl><dd><table border="0"><tr><td><p style="font-size:12px;padding-left:.5em;padding-right:.5em;"><I>pathName operation </I>?<I>arg arg ...</I>?</table></dl>
<P>
<I>Operation</I> and the <I>arg</I>s determine the exact behavior of the
command. The following operations are available for tabset widgets:
<P>
<DL class="operations">
<DT><A NAME="M19"><I>pathName </I><B>activate</B> <I>index</I></A><DD>
Sets the active tab to the one indicated by <I>index</I>. The
active tab is drawn with its <I>active</I> colors (see the
<B>-activebackground</B> and <B>-activeforeground</B> options) and may
be retrieved with the index <B>active</B>. Only one tab may be active
at a time. If <I>index</I> is the empty string, then all tabs will
be drawn with their normal foreground and background colors.
<P><DT><A NAME="M20"><I>pathName </I><B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?</A><DD>
Associates <I>command</I> with <I>tagName</I> such that whenever the
event sequence given by <I>sequence</I> occurs for a tab with this
tag, <I>command</I> will be invoked. The syntax is similar to the
<B><A HREF="../TkCmd/bind.htm">bind</A></B> command except that it operates on tabs, rather
than widgets. The tagName is one of <B>all</B>, <B>Perforation</B>,
or the name label used to create a Tab.
See the <B><A HREF="../TkCmd/bind.htm">bind</A></B> manual entry for
complete details on <I>sequence</I> and the substitutions performed on
<I>command</I>.
<P>
If all arguments are specified then a new binding is created, replacing
any existing binding for the same <I>sequence</I> and <I>tagName</I>.
If the first character of <I>command</I> is <B>+</B> then <I>command</I>
augments an existing binding rather than replacing it.
If no <I>command</I> argument is provided then the command currently
associated with <I>tagName</I> and <I>sequence</I> (it's an error occurs
if there's no such binding) is returned. If both <I>command</I> and
<I>sequence</I> are missing then a list of all the event sequences for
which bindings have been defined for <I>tagName</I>.
<P><DT><A NAME="M21"><I>pathName </I><B>cget</B> <I>option</I></A><DD>
Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>configure</B>
operation described in the section
below.
<P><DT><A NAME="M22"><I>pathName </I><B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?</A><DD>
Query or modify the configuration options of the widget.
If no <I>option</I> is specified, returns a list describing all
the available options for <I>pathName</I> (see <B><A HREF="../TkLib/ConfigWidg.htm">Tk_ConfigureInfo</A></B> for
information on the format of this list). If <I>option</I> is specified
with no <I>value</I>, then the command returns a list describing the
one named option (this list will be identical to the corresponding
sublist of the value returned if no <I>option</I> is specified). If
one or more <I>option-value</I> pairs are specified, then the command
modifies the given widget option(s) to have the given value(s); in
this case the command returns an empty string.
<I>Option</I> and <I>value</I> are described in the section
below.
<P><DT><A NAME="M23"><I>pathName </I><B>delete </B><I>first </I>?<I>last</I>?</A><DD>
Deletes one or more tabs from the tabset. <I>First</I> and <I>last</I>
are the first and last indices, defining a range of tabs to be deleted.
If <I>last</I> isn't specified, then only the tab at <I>first</I>
is deleted.
<P><DT><A NAME="M24"><I>pathName </I><B>focus </B><I>index</I></A><DD>
Designates a tab to get the widget's focus. This tab is displayed
with a dashed line around its label.
<P><DT><A NAME="M25"><I>pathName </I><B>get</B> <I>index</I></A><DD>
Returns the name of the tab. The value of <I>index</I> may
be in any form described in the section
<P><DT><A NAME="M26"><I>pathName </I><B>hightlight</B> <I>index</I></A><DD>
Highlight a tab.
<P><DT><A NAME="M27"><I>pathName </I><B>index</B> ?<I>flag</I>? <I>string</I></A><DD>
Returns the node id of the tab specified by <I>string</I>. If
<I>flag</I> is <B>-name</B>, then <I>string</I> is the name of a tab.
If <I>flag</I> is <B>-index</B>, <I>string</I> is an index such as
"active" or "focus".
If <I>flag</I> is <B>-both</B>, <I>string</I> is either.
If <I>flag</I> isn't specified, it defaults to
<B>-index</B>.
<P><DT><A NAME="M28"><I>pathName </I><B>insert</B> <I>position ?name ...</I>? ?<I>option value</I>?...</A><DD>
Inserts new tabs into the tabset. Tabs are inserted just before the
tab given by <I>position</I>. <I>Position</I> may be either a number,
indicating where in the list the new tab should be added, or <B>end</B>,
indicating that the new tab is to be added the end of the list.
<I>Name</I> is the symbolic name of the tab. <I>Be careful not to use
a number. Otherwise the tabset will confuse it with tab indices</I>. Returns
a list of indices for all the new tabs. If tab name is an empty
string, or ends in #auto, it is
generated using the given prefix. The list
of created tab names is returned.
<P><DT><A NAME="M29"><I>pathName </I><B>invoke </B><I>index</I></A><DD>
Selects the tab given by <I>index</I>, maps the tab's embedded widget, and
invokes the Tcl command associated with the tab, if there is one.
The return value is the return value from the Tcl command, or an empty
string if there is no command associated with the tab.
This command is ignored if the tab's state (see the <B>-state</B> option)
is disabled.
<P><DT><A NAME="M30"><I>pathName </I><B>move</B> <I>index</I> <B>before</B>|<B>after</B> <I>index</I></A><DD>
Moves the tab <I>index</I> to a new position in the tabset.
<P><DT><A NAME="M31"><I>pathName </I><B>nearest</B> <I>x</I> <I>y</I> ?<I>varName</I></A><DD>
Returns the name of the tab nearest to given X-Y screen coordinate.
If the argument <I>varName</I> is present,
this is a Tcl variable that is set to either <B><A HREF="../TkCmd/text.htm">text</A></B>,
<B>icon</B>, <B>icon2</B>, <B>startimage</B>, <B>endimage</B>,
<B>perforation</B> or the empty string depending
what part of the
tab the coordinate is over.
<P><DT><A NAME="M32"><I>pathName </I><B>perforation </B><I>operation</I> ?<I>args</I>?</A><DD>
This operation controls the perforation on the tab label.
<P>
<DL class="operations">
<DT><A NAME="M33"><I>pathName </I><B>perforation activate</B> <I>boolean</I></A><DD>
Set perforation active state to on or off.
<P><DT><A NAME="M34"><I>pathName </I><B>perforation invoke</B></A><DD>
Invokes the command specified for perforations (see the
<B>-perforationcommand</B> widget option). Typically this command
places the page into a top level widget. The name of the toplevel
is the concatonation of the <I>pathName</I>, "-", and the <I>tabName</I>.
The return value is the return value from the Tcl command, or an empty
string if there is no command associated with the tab.
This command is ignored if the tab's state (see the <B>-state</B> option)
is disabled.
<P></DL>
<P><DT><A NAME="M35"><I>pathName </I><B>scan</B> <I>option args</I></A><DD>
This command implements scanning on tabsets. It has
two forms, depending on <I>option</I>:
<P>
<DL class="operations">
<DT><A NAME="M36"><I>pathName </I><B>scan mark </B><I>x y</I></A><DD>
Records <I>x</I> and <I>y</I> and the current view in the tabset
window; used with later <B>scan dragto</B> commands.
Typically this command is associated with a mouse button press in
the widget. It returns an empty string.
<P><DT><A NAME="M37"><I>pathName </I><B>scan dragto </B><I>x y</I>.</A><DD>
This command computes the difference between its <I>x</I> and <I>y</I>
arguments and the <I>x</I> and <I>y</I> arguments to the last
<B>scan mark</B> command for the widget.
It then adjusts the view by 10 times the
difference in coordinates. This command is typically associated
with mouse motion events in the widget, to produce the effect of
dragging the list at high speed through the window. The return
value is an empty string.
<P></DL>
<P><DT><A NAME="M38"><I>pathName </I><B>see </B><I>index</I></A><DD>
Scrolls the tabset so that the tab
<I>index</I> is visible in the widget's window.
<P><DT><A NAME="M39"><I>pathName </I><B>select </B><I>index</I></A><DD>
Select the tab.
<P><DT><A NAME="M40"><I>pathName </I><B>size</B></A><DD>
Returns the number of tabs in the tabset.
<P><DT><A NAME="M41"><I>pathName </I><B>tab </B><I>operation</I> ?<I>args</I>?</A><DD>
<P>
<DL class="operations">
<DT><A NAME="M42"><I>pathName </I><B>tab cget</B> <I>nameOrIndex</I> <I>option</I></A><DD>
Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>tab configure</B>
operation described in the section
below.
<P><DT><A NAME="M43"><I>pathName </I><B>tab configure</B> <I>nameOrIndex</I> ?<I>nameOrIndex</I>...? <I>option</I>? ?<I>value option value ...</I>?</A><DD>
Query or modify the configuration options of one or more tabs.
If no <I>option</I> is specified, this operation returns a list
describing all the available options for <I>nameOrIndex</I>.
<I>NameOrIndex</I> can be either the name of a tab or its index. Names
of tabs take precedence over their indices. That means a tab named
<I>focus</I> is picked over the "focus" tab.
<P>
If <I>option</I> is specified, but not <I>value</I>, then a list describing the
one named option is returned. If one or more <I>option-value</I> pairs
are specified, then each named tab (specified by <I>nameOrIndex</I>) will
have its configurations option(s) set the given value(s). In
this last case, the empty string is returned.
<I>Option</I> and <I>value</I> are described in the section
below.
<P><DT><A NAME="M44"><I>pathName </I><B>tab dockall</B></A><DD>
Dock all tearoffs.
<P><DT><A NAME="M45"><I>pathName </I><B>tab names</B> ?<I>pattern</I>?</A><DD>
Returns the names of all the tabs matching the given pattern. If
no <I>pattern</I> argument is provided, then all tab names are returned.
<P><DT><A NAME="M46"><I>pathName </I><B>tab pageheight</B></A><DD>
<P><DT><A NAME="M47"><I>pathName </I><B>tab pagewidth</B></A><DD>
<P><DT><A NAME="M48"><I>pathName </I><B>tab select </B><I>nameOrindex</I></A><DD>
Select a tab by name or index, and cause it to become visible, selected,
activated, and receive focus. This is a shortform for using separate
commands.
<P><DT><A NAME="M49"><I>pathName </I><B>tab tearoff </B><I>index</I> ?<I>newName</I>?</A><DD>
Reparents the widget embedded into <I>index</I>, placing
it inside of <I>newName</I>. <I>NewName</I> is either the name of
an new widget that will contain the embedded widget or the name
of the <B>tabset</B> widget. It the last case, the embedded widget
is put back into the folder.
<P>
If no <I>newName</I> argument is provided, then the name of the current
parent of the embedded widget is returned.
<P></DL>
<P><DT><A NAME="M50"><I>pathName </I><B>view </B><I>args</I></A><DD>
This command queries or changes the position of the
tabset in the widget's window. It can take any of the following
forms:
<P>
<DL class="operations">
<DT><A NAME="M51"><I>pathName </I><B>view</B></A><DD>
Returns a list of two numbers between 0.0 and
1.0 that describe the amount and position of the tabset that is
visible in the window. For example, if <I>view</I> is "0.2 0.6", 20%
of the tabset's text is off-screen to the left, 40% is visible in the
window, and 40% of the tabset is off-screen to the right. These are
the same values passed to scrollbars via the <B>-scrollcommand</B>
option.
<P><DT><A NAME="M52"><I>pathName </I><B>view moveto</B><I> fraction</I></A><DD>
Adjusts the view in the window so that <I>fraction</I> of the
total width of the tabset text is off-screen to the left.
<I>fraction</I> must be a number between 0.0 and 1.0.
<P><DT><A NAME="M53"><I>pathName </I><B>view scroll </B><I>number what</I></A><DD>
This command shifts the view in the window (left/top or right/bottom)
according to <I>number</I> and <I>what</I>. <I>Number</I> must be an
integer. <I>What</I> must be either <B>units</B> or <B>pages</B> or an
abbreviation of these. If <I>what</I> is <B>units</B>, the view adjusts
left or right by <I>number</I> scroll units (see the
<B>-scrollincrement</B> option). ; if it is <B>pages</B> then the view
adjusts by <I>number</I> widget windows. If <I>number</I> is negative
then tabs farther to the left become visible; if it is positive then
tabs farther to the right become visible.
<P></DL>
<P></DL>
<H3><A NAME="M54">WIDGET OPTIONS</A></H3>
Widget configuration options may be set either by the <B>configure</B>
operation or the Tk <B><A HREF="../TkCmd/option.htm">option</A></B> command. The resource class
is <B>Tabset</B>. The resource name is the name of the widget.
<PRE>option add *Tabset.Foreground white
option add *Tabset.Background blue</PRE>
The following widget options are available:
<P>
<DL class="widget options">
<DT><A NAME="M55"><B>-activebackground </B><I>color</I></A><DD>
Sets the default active background color for tabs. A tab is active
when the mouse is positioned over it or set by the <B>activate</B>
operation. Individual tabs may override this option by setting the
tab's <B>-activebackground</B> option.
<P><DT><A NAME="M56"><B>-activeforeground </B><I>color</I></A><DD>
Sets the default active foreground color for tabs. A tab is active
when the mouse is positioned over it or set by the <B>activate</B>
operation. Individual tabs may override this option by setting the
tab's <B>-activeforeground</B> option.
<P><DT><A NAME="M57"><B>-anchor </B><I>anchor</I></A><DD>
Anchors the tab's text (and images) to a particular edge of the tab.
The default value is <B>center</B>.
<P><DT><A NAME="M58"><B>-background </B><I>color</I></A><DD>
Sets the background color of the tabset.
<P><DT><A NAME="M59"><B>-borderwidth </B><I>pixels</I></A><DD>
Sets the width of the 3-D border around the outside edge of the widget. The
<B>-relief</B> option determines how the border is to be drawn. The
default is <B>2</B>.
<P><DT><A NAME="M60"><B>-cursor </B><I>cursor</I></A><DD>
Specifies the widget's cursor. The default cursor is <B>""</B>.
<P><DT><A NAME="M61"><B>-dashes </B><I>dashList</I></A><DD>
Sets the dash style of the focus outline. When a tab has the widget's
focus, it is drawn with a dashed outline around its label.
<I>DashList</I> is a list of up
to 11 numbers that alternately represent the lengths of the dashes
and gaps on the cross hair lines. Each number must be between 1 and
255. If <I>dashList</I> is <B>""</B>, the outline will be a solid
line. The default value is <B>5 2</B>.
<P><DT><A NAME="M62"><B>-endimage </B><I>imageName</I></A><DD>
Specify an image to be drawn after tabs (ie. on the right if -side = top).
This is used by
a binding looking for <I>endimage</I> from the <B>nearest</B> subcommand.
<P><DT><A NAME="M63"><B>-font </B><I>fontName</I></A><DD>
Sets the default font for the text in tab labels. Individual tabs may
override this by setting the tab's <B>-font</B> option. The default value is
<B>*-Helvetica-Bold-R-Normal-*-12-120-*</B>.
<P><DT><A NAME="M64"><B>-foreground </B><I>color</I></A><DD>
Sets the default color of tab labels. Individual tabs may
override this option by setting the tab's <B>-foreground</B> option.
The default value is <B>black</B>.
<P><DT><A NAME="M65"><B>-gap </B><I>size</I></A><DD>
Sets the gap (in pixels) between tabs. The default value is <B>2</B>.
<P><DT><A NAME="M66"><B>-gapleft </B><I>size</I></A><DD>
Sets a gap (in pixels) to leave between the text and -leftimage.
The default value is <B>2</B>.
<P><DT><A NAME="M67"><B>-height </B><I>pixels</I></A><DD>
Specifies the requested height of widget. If <I>pixels</I> is
0, then the height of the widget will be calculated based on
the size the tabs and their pages.
The default is <B>0</B>.
<P><DT><A NAME="M68"><B>-highlightbackground </B><I>color</I></A><DD>
Sets the color to display in the traversal highlight region when
the tabset does not have the input focus.
<P><DT><A NAME="M69"><B>-highlightcolor </B><I>color</I></A><DD>
Sets the color to use for the traversal highlight rectangle that is
drawn around the widget when it has the input focus.
The default is <B>black</B>.
<P><DT><A NAME="M70"><B>-highlightthickness </B><I>pixels</I></A><DD>
Sets the width of the highlight rectangle to draw around the outside of
the widget when it has the input focus. <I>Pixels</I> is a non-negative
value and may have any of the forms acceptable to <B><A HREF="../TkLib/GetPixels.htm">Tk_GetPixels</A></B>.
If the value is zero, no focus highlight is drawn around the widget.
The default is <B>2</B>.
<P><DT><A NAME="M71"><B>-outerpad </B><I>pixels</I></A><DD>
Padding around the exterior of the tabset and folder.
<P><DT><A NAME="M72"><B>-pageheight </B><I>pixels</I></A><DD>
Sets the requested height of the page. The page is the area under the
tab used to display the page contents. If <I>pixels</I> is <B>0</B>,
the maximum height of all embedded tab windows is used. The default
is <B>0</B>.
<P><DT><A NAME="M73"><B>-pagewidth </B><I>pixels</I></A><DD>
Sets the requested width of the page. The page is the area under the
tab used to display the page contents. If <I>pixels</I> is <B>0</B>,
the maximum width of all embedded tab windows is used. The default
is <B>0</B>.
<P><DT><A NAME="M74"><B>-perforationcommand</B> <I>string</I></A><DD>
Specifies a Tcl script to be invoked to tear off the current
page in the tabset. This command is typically invoked when
left mouse button is released over the tab perforation. The default
action is to tear-off the page and place it into a new toplevel
window.
<P><DT><A NAME="M75"><B>-relief </B><I>relief</I></A><DD>
Specifies the 3-D effect for the tabset widget. <I>Relief</I>
specifies how the tabset should appear relative to widget that
it is packed into; for example, <B>raised</B> means the tabset should
appear to protrude. The default is <B>sunken</B>.
<P><DT><A NAME="M76"><B>-rotate </B><I>theta</I></A><DD>
Specifies the degrees to rotate text in tab labels.
<I>Theta</I> is a real value representing the number of degrees
to rotate the tick labels. The default is <B>0.0</B> degrees.
<P><DT><A NAME="M77"><B>-samewidth </B><I>boolean</I></A><DD>
Indicates if each tab should be the same width. If true, each tab will
be as wide as the widest tab. The default is <B>no</B>.
<P><DT><A NAME="M78"><B>-scrollcommand </B><I>string</I></A><DD>
Specifies the prefix for a command for communicating with
scrollbars. Whenever the view in the widget's window
changes, the widget will generate a Tcl command by concatenating the
scroll command and two numbers. If this option is not specified, then
no command will be executed.
<P><DT><A NAME="M79"><B>-scrollincrement </B><I>pixels</I></A><DD>
Sets the smallest number of pixels to scroll the tabs.
If <I>pixels</I> is greater than 0, this sets the units for
scrolling (e.g., when you the change the view by clicking
on the left and right arrows of a scrollbar).
<P><DT><A NAME="M80"><B>-selectbackground </B><I>color</I></A><DD>
Sets the color to use when displaying background of the selected
tab. Individual tabs can override this option by setting the tab's
<B>-selectbackground</B> option.
<P><DT><A NAME="M81"><B>-selectcommand </B><I>string</I></A><DD>
Specifies a default Tcl script to be associated with tabs. This
command is typically invoked when left mouse button is released over
the tab. Individual tabs may override this with the tab's
<B>-command</B> option. The default value is <B>""</B>.
<P><DT><A NAME="M82"><B>-selectforeground </B><I>color</I>\fB</A><DD>
Sets the default color of the selected tab's text label.
Individual tabs can override this option by setting the tab's
<B>-selectforeground</B> option. The default value is <B>black</B>.
<P><DT><A NAME="M83"><B>-selectpad </B><I>pixels</I>\fB</A><DD>
Specifies extra padding to be displayed around the selected tab.
The default value is <B>3</B>.
<P><DT><A NAME="M84"><B>-side </B><I>side</I>\fB</A><DD>
Specifies the side of the widget to place tabs. The following
values are valid for <I>side</I>. The default value is <B>top</B>.
<P>
<DL class="widget options">
<DT><A NAME="M85"><B>top</B></A><DD>
Tabs are drawn along the top.
<P><DT><A NAME="M86"><B>left</B></A><DD>
Tabs are drawn along the left side.
<P><DT><A NAME="M87"><B>right</B></A><DD>
Tabs are drawn along the right side.
<P><DT><A NAME="M88"><B>both</B></A><DD>
Tabs are drawn along the bottom side.
<P></DL>
<P><DT><A NAME="M89"><B>-slant </B><I>slant</I></A><DD>
Specifies if the tabs should be slanted 45 degrees on the left and/or
right sides. The following values are valid for <I>slant</I>. The default
is <B>none</B>.
<P>
<DL class="widget options">
<DT><A NAME="M90"><B>none</B></A><DD>
Tabs are drawn as a rectangle.
<P><DT><A NAME="M91"><B>left</B></A><DD>
The left side of the tab is slanted.
<P><DT><A NAME="M92"><B>right</B></A><DD>
The right side of the tab is slanted.
<P><DT><A NAME="M93"><B>both</B></A><DD>
Boths sides of the tab are slanted.
<P></DL>
<P><DT><A NAME="M94"><B>-startimage </B><I>imageName</I></A><DD>
Specify an image to be drawn before tabs (ie. on the left if -side = top).
This is used by
a binding looking for <I>startimage</I> from the <B>nearest</B> subcommand.
<P><DT><A NAME="M95"><B>-tabbackground </B><I>color</I></A><DD>
Sets the default background color of tabs.
Individual tabs can override this option by setting the tab's
<B>-background</B> option.
<P><DT><A NAME="M96"><B>-tabborderwidth </B><I>pixels</I></A><DD>
Sets the width of the 3-D border around the outside edge of the tab. The
<B>-tabrelief</B> option determines how the border is to be drawn. The
default is <B>2</B>.
<P><DT><A NAME="M97"><B>-tabforeground </B><I>color</I></A><DD>
Specifies the color to use when displaying a tab's label.
Individual tabs can override this option by setting the tab's
<B>-foreground</B> option.
<P><DT><A NAME="M98"><B>-tabrelief </B><I>relief</I></A><DD>
Specifies the 3-D effect for both tabs and folders. <I>Relief</I>
specifies how the tabs should appear relative to background of the
widget; for example, <B>raised</B> means the tab should
appear to protrude. The default is <B>raised</B>.
<P><DT><A NAME="M99"><B>-takefocus</B> <I>focus</I></A><DD>
Provides information used when moving the focus from window to window
via keyboard traversal (e.g., Tab and Shift-Tab). If <I>focus</I> is
<B>0</B>, this means that this window should be skipped entirely during
keyboard traversal. <B>1</B> means that the this window should always
receive the input focus. An empty value means that the traversal
scripts decide whether to focus on the window.
The default is <B>1</B>.
<P><DT><A NAME="M100"><B>-tearoff </B><I>boolean</I></A><DD>
Display tearoff.
<P><DT><A NAME="M101"><B>-transient </B><I>boolean</I></A><DD>
Tearoff window should be transient.
<P><DT><A NAME="M102"><B>-textside </B><I>side</I>\fB</A><DD>
If both images and text are specified for a tab, this option determines on
which side of the tab the text is to be displayed. The
valid sides are <B>left</B>, <B>right</B>, <B>top</B>, and
<B>bottom</B>. The default value is <B>left</B>.
<P><DT><A NAME="M103"><B>-tiers </B><I>number</I>\fB</A><DD>
Specifies the maximum number of tiers to use to display the tabs.
The default value is <B>1</B>.
<P><DT><A NAME="M104"><B>-tile </B><I>image</I></A><DD>
Specifies a tiled background for the widget. If <I>image</I> isn't
<B>""</B>, the background is tiled using <I>image</I>.
Otherwise, the normal background color is drawn (see the
<B>-background</B> option). <I>Image</I> must be an image created
using the Tk <B><A HREF="../TkCmd/image.htm">image</A></B> command. The default is <B>""</B>.
<P><DT><A NAME="M105"><B>-width </B><I>pixels</I></A><DD>
Specifies the requested width of the widget. If <I>pixels</I> is
0, then the width of the widget will be calculated based on
the size the tabs and their pages.
The default is <B>0</B>.
<P></DL>
<H3><A NAME="M106">TAB OPTIONS</A></H3>
In addition to the <B>configure</B> operation, widget configuration
options may also be set by the Tk <B><A HREF="../TkCmd/option.htm">option</A></B> command. The class
resource name is <B>Tab</B>.
<PRE>option add *Tabset.Tab.Foreground white
option add *Tabset.name.Background blue</PRE>
The following widget options are available:
<P>
<DL class="tab options">
<DT><A NAME="M107"><B>-activebackground </B><I>color</I></A><DD>
Sets the active background color for <I>nameOrIndex</I>. A tab is active
when the mouse is positioned over it or set by the <B>activate</B>
operation. This overrides the widget's <B>-activebackground</B>
option.
<P><DT><A NAME="M108"><B>-activeforeground </B><I>color</I></A><DD>
Sets the default active foreground color <I>nameOrIndex</I>. A tab is "active"
when the mouse is positioned over it or set by the <B>activate</B>
operation. Individual tabs may override this option by setting the
tab's <B>-activeforeground</B> option.
<P><DT><A NAME="M109"><B>-anchor </B><I>anchor</I></A><DD>
Anchors the tab's embedded widget to a particular edge of the folder.
This option has effect only if the space in the folder surrounding the
embedded widget is larger than the widget itself. <I>Anchor</I> specifies
how the widget will be positioned in the extra space. For example, if
<I>anchor</I> is <B>center</B> then the window is centered in the folder
; if <I>anchor</I> is <B>w</B> then the window will
be aligned with the leftmost edge of the folder. The default value is
<B>center</B>.
<P><DT><A NAME="M110"><B>-background </B><I>color</I></A><DD>
Sets the background color for <I>nameOrIndex</I>. Setting this option overrides the
widget's <B>-tabbackground</B> option.
<P><DT><A NAME="M111"><B>-bindtags </B><I>tagList</I></A><DD>
Specifies the binding tags for this tab. <I>TagList</I> is a list of
binding tag names. The tags and their order will determine how
commands for events in tabs are invoked. Each tag in the list matching
the event sequence will have its Tcl command executed. Implicitly the
name of the tab is always the first tag in the list. The default value is
<B>all</B>.
<P><DT><A NAME="M112"><B>-command </B><I>string</I></A><DD>
Specifies a Tcl script to be associated with <I>nameOrIndex</I>. This
command is typically invoked when left mouse button is released over
the tab. Setting this option overrides the widget's
<B>-selectcommand</B> option.
<P><DT><A NAME="M113"><B>-data </B><I>string</I></A><DD>
Specifies a string to be associated with <I>nameOrIndex</I>.
This value isn't used in the widget code. It may be used in Tcl bindings
to associate extra data (other than the image or text) with the
tab. The default value is <B>""</B>.
<P><DT><A NAME="M114"><B>-fill </B><I>fill</I></A><DD>
If the space in the folder surrounding the tab's embedded widget is
larger than the widget, then <I>fill</I> indicates if the embedded widget
should be stretched to occupy the extra space. <I>Fill</I> is either
<B>none</B>,
<B>x</B>, <B>y</B>, <B>both</B>. For example, if <I>fill</I> is <B>x</B>,
then the widget is stretched horizontally. If <I>fill</I> is <B>y</B>,
the widget is stretched vertically. The default is <B>none</B>.
<P><DT><A NAME="M115"><B>-font </B><I>fontName</I></A><DD>
Sets the font for the text in tab labels. If <I>fontName</I> is not
the empty string, this overrides the tabset's <B>-font</B> option.
The default value is <B>""</B>.
<P><DT><A NAME="M116"><B>-foreground </B><I>color</I></A><DD>
Sets the color of the label for <I>nameOrIndex</I>. If <I>color</I>
is not the empty string, this overrides the widget's <B>-tabforeground</B>
option. The default value is <B>""</B>.
<P><DT><A NAME="M117"><B>-image </B><I>imageName</I></A><DD>
Specifies the image to be drawn in label for <I>nameOrIndex</I>.
If <I>image</I> is <B>""</B>, no image will be drawn. Both text and
images may be displayed at the same time in tab labels.
The default value is <B>""</B>.
<P><DT><A NAME="M118"><B>-leftimage </B><I>imageName</I></A><DD>
Specify a second image to be drawn to the left before text/image when
the widgets -textside = right.
This image might represent a close icon when used with
a binding that looks for <I>icon2</I> from the <B>nearest</B> subcommand.
<P><DT><A NAME="M119"><B>-ipadx </B><I>pad</I></A><DD>
Sets the padding to the left and right of the label.
<I>Pad</I> can be a list of one or two screen distances. If <I>pad</I>
has two elements, the left side of the label is padded by the first
distance and the right side by the second. If <I>pad</I> has just one
distance, both the left and right sides are padded evenly. The
default value is <B>0</B>.
<P><DT><A NAME="M120"><B>-ipady </B><I>pad</I></A><DD>
Sets the padding to the top and bottom of the label.
<I>Pad</I> can be a list of one or two screen distances. If <I>pad</I>
has two elements, the top of the label is padded by the first
distance and the bottom by the second. If <I>pad</I> has just one
distance, both the top and bottom sides are padded evenly. The
default value is <B>0</B>.
<P><DT><A NAME="M121"><B>-padx </B><I>pad</I></A><DD>
Sets the padding around the left and right of the embedded widget, if
one exists.
<I>Pad</I> can be a list of one or two screen distances. If <I>pad</I>
has two elements, the left side of the widget is padded by the first
distance and the right side by the second. If <I>pad</I> has just one
distance, both the left and right sides are padded evenly. The
default value is <B>0</B>.
<P><DT><A NAME="M122"><B>-pady </B><I>pad</I></A><DD>
Sets the padding around the top and bottom of the embedded widget, if
one exists.
<I>Pad</I> can be a list of one or two screen distances. If <I>pad</I>
has two elements, the top of the widget is padded by the first
distance and the bottom by the second. If <I>pad</I> has just one
distance, both the top and bottom sides are padded evenly. The
default value is <B>0</B>.
<P><DT><A NAME="M123"><B>-selectbackground </B><I>color</I></A><DD>
Sets the color to use when displaying background of the selected
tab. If <I>color</I> is not the empty string, this overrides the
widget's <B>-selectbackground</B> option. The default value is
<B>""</B>.
<P><DT><A NAME="M124"><B>-shadow </B><I>color</I></A><DD>
Sets the shadow color for the text in the tab's label. Drop shadows
are useful when both the foreground and background of the tab
have similar color intensities.
If <I>color</I> is the empty string, no shadow is drawn.
The default value is <B>""</B>.
<P><DT><A NAME="M125"><B>-state </B><I>state</I></A><DD>
Sets the state of the tab. If <I>state</I> is <B>disable</B> the
text of the tab is drawn as engraved and operations on the tab
(such as <B>invoke</B> and <B>tab tearoff</B>) are ignored.
The default is <B>normal</B>.
<P><DT><A NAME="M126"><B>-stipple </B><I>bitmap</I></A><DD>
Specifies a stipple pattern to use for the background of the folder
when the window is torn off.
<I>Bitmap</I> specifies a bitmap to use as the stipple
pattern. The default is <B>BLT</B>.
<P><DT><A NAME="M127"><B>-text </B><I>text</I></A><DD>
Specifies the text of the tab's label. The exact way the text is
drawn may be affected by other options such as <B>-state</B> or
<B>-rotate</B>.
<P><DT><A NAME="M128"><B>-underline </B><I>num</I></A><DD>
Character to underline in text. Default is -1.
<P><DT><A NAME="M129"><B>-window </B><I>pathName</I></A><DD>
Specifies the widget to be embedded into the tab. <I>PathName</I> must
be a child of the <B>tabset</B> widget. The tabset will "pack" and
manage the size and placement of <I>pathName</I>.
The default value is <B>""</B>.
<P><DT><A NAME="M130"><B>-windowheight </B><I>pixels</I></A><DD>
Sets the requested height of the page. The page is the area under the
tab used to display the page contents. If <I>pixels</I> is <B>0</B>,
the maximum height of all embedded tab windows is used. The default
is <B>0</B>.
<P><DT><A NAME="M131"><B>-windowwidth </B><I>pixels</I></A><DD>
Sets the requested width of the page. The page is the area under the
tab used to display the page contents. If <I>pixels</I> is <B>0</B>,
the maximum width of all embedded tab windows is used. The default
is <B>0</B>.
<P></DL>
<H3><A NAME="M132">DEFAULT BINDINGS</A></H3>
BLT automatically generates class bindings that supply tabsets their
default behaviors. The following event sequences are set by default
for tabsets (via the class bind tag <B>Tabset</B>):
<P>
<DL class="default bindings">
<DT><A NAME="M133"><B><ButtonPress-2></B></A><DD>
<P><DT><A NAME="M134"><B><B2-Motion></B></A><DD>
<P><DT><A NAME="M135"><B><ButtonRelease-2></B></A><DD>
Mouse button 2 may be used for scanning.
If it is pressed and dragged over the tabset, the contents of
the tabset drag at high speed in the direction the mouse moves.
<P><DT><A NAME="M136"><B><KeyPress-Up></B></A><DD>
<P><DT><A NAME="M137"><B><KeyPress-Down></B></A><DD>
The up and down arrow keys move the focus to the tab immediately above
or below the current focus tab. The tab with focus is drawn
with the a dashed outline around the tab label.
<P><DT><A NAME="M138"><B><KeyPress-Left></B></A><DD>
<P><DT><A NAME="M139"><B><KeyPress-Right></B></A><DD>
The left and right arrow keys move the focus to the tab immediately to the left
or right of the current focus tab. The tab with focus is drawn
with the a dashed outline around the tab label.
<P><DT><A NAME="M140"><B><KeyPress-space></B></A><DD>
<P><DT><A NAME="M141"><B><KeyPress-Return></B></A><DD>
The space and return keys select the current tab given focus.
When a folder is selected, it's command is invoked and the
embedded widget is mapped.
<P></DL>
<P>
Each tab, by default, also has a set of bindings (via the tag
<B>all</B>). These bindings may be reset using the tabset's
<B><A HREF="../TkCmd/bind.htm">bind</A></B> operation.
<P>
<DL class="default bindings">
<DT><A NAME="M142"><B><Enter></B></A><DD>
<P><DT><A NAME="M143"><B><Leave></B></A><DD>
When the mouse pointer enters a tab, it is activated (i.e. drawn in
its active colors) and when the pointer leaves, it is redrawn in
its normal colors.
<P><DT><A NAME="M144"><B><ButtonRelease-1></B></A><DD>
Clicking with the left mouse button on a tab causes the tab to be
selected and its Tcl script (see the <B>-command</B> or
<B>-selectcommand</B> options) to be invoked. The folder and any embedded
widget (if one is specified) is automatically mapped.
<P><DT><A NAME="M145"><B><ButtonRelease-3></B></A><DD>
<P><DT><A NAME="M146"><B><Control-ButtonRelease-1></B></A><DD>
Clicking on the right mouse button (or the left mouse button with the
Control key held down) tears off the current page into its own toplevel
widget. The embedded widget is re-packed into a new toplevel and
an outline of the widget is drawn in the folder. Clicking again
(toggling) will reverse this operation and replace the page back in
the folder.
<P></DL>
<H3><A NAME="M147">BIND TAGS</A></H3>
You can bind commands to tabs that are triggered when a particular
event sequence occurs in them, much like canvas items in Tk's
canvas widget. Not all event sequences are valid. The only binding
events that may be specified are those related to the mouse and
keyboard (such as <B>Enter</B>, <B>Leave</B>, <B>ButtonPress</B>,
<B>Motion</B>, and <B>KeyPress</B>).
<P>
It is possible for multiple bindings to match a particular event.
This could occur, for example, if one binding is associated with the
tab name and another is associated with the tab's tags
(see the <B>-bindtags</B> option). When this occurs, all the
matching bindings are invoked. A binding associated with the tab
name is invoked first, followed by one binding for each of the tab's
bindtags. If there are multiple matching bindings for a single tag,
then only the most specific binding is invoked. A continue command
in a binding script terminates that script, and a break command
terminates that script and skips any remaining scripts for the event,
just as for the bind command.
<P>
The <B>-bindtags</B> option for tabs controls addition tag names that
can be matched. Implicitly the first tag for each tab is its name.
Setting the value of the <B>-bindtags</B> option doesn't change this.
<P>
Note that the <<TabsetTearoff>> virtual event is generated on tearoff.
and the <<TabsetSelect>> virtual event is generated on selection.
<H3><A NAME="M148">EXAMPLE</A></H3>
You create a tabset widget with the <B>tabset</B> command.
<PRE># Create a new tabset
tabset .ts -relief sunken -borderwidth 2</PRE>
A new Tcl command <B>.ts</B> is also created. This command can be
used to query and modify the tabset. For example, to change the
default font used by all the tab labels, you use the new command and
the tabset's <B>configure</B> operation.
<PRE># Change the default font.
.ts configure -font "fixed"</PRE>
You can then add folders using the <B>insert</B> operation.
<PRE># Create a new folder "f1"
.ts insert 0 "f1"</PRE>
This inserts the new tab named "f1" into the tabset. The index
<B>0</B> indicates location to insert the new tab. You can also use
the index <B>end</B> to append a tab to the end of the tabset. By
default, the text of the tab is the name of the tab. You can change
this by configuring the <B>-text</B> option.
<PRE># Change the label of "f1"
.ts tab configure "f1" -text "Tab #1"</PRE>
The <B>insert</B> operation lets you add one or more folders at a time.
<PRE>.ts insert end "f2" -text "Tab #2" "f3" "f4"</PRE>
The tab on each folder contains a label. A label may display both
an image and a text string. You can reconfigure the tab's attributes
(foreground/background colors, font, rotation, etc) using the <B>tab
configure</B> operation.
<PRE># Add an image to the label of "f1"
set image [image create photo -file stopsign.gif]
.ts tab configure "f1" -image $image
.ts tab configure "f2" -rotate 90</PRE>
Each folder may contain an embedded widget to represent its contents.
The widget to be embedded must be a child of the tabset widget. Using
the <B>-window</B> option, you specify the name of widget to be
embedded. But don't pack the widget, the tabset takes care of placing
and arranging the widget for you.
<PRE>graph .ts.graph
.ts tab configure "f1" -window ".ts.graph" \
-fill both -padx 0.25i -pady 0.25i</PRE>
The size of the folder is determined the sizes of the Tk widgets
embedded inside each folder. The folder will be as wide as the widest
widget in any folder. The tallest determines the height. You can use
the tab's <B>-pagewidth</B> and <B>-pageheight</B> options override this.
<P>
Other options control how the widget appears in the folder. The
<B>-fill</B> option says that you wish to have the widget stretch to
fill the available space in the folder.
<PRE>.ts tab configure "f1" -fill both -padx 0.25i -pady 0.25i</PRE>
<P>
Now when you click the left mouse button on "f1", the
graph will be displayed in the folder. It will be automatically
hidden when another folder is selected. If you click on the right
mouse button, the embedded widget will be moved into a toplevel widget
of its own. Clicking again on the right mouse button puts it back into
the folder.
<P>
If you want to share a page between two different folders, the
<B>-command</B> option lets you specify a Tcl command to be invoked
whenever the folder is selected. You can reset the <B>-window</B>
option for the tab whenever it's clicked.
<PRE>.ts tab configure "f2" -command {
.ts tab configure "f2" -window ".ts.graph"
}
.ts tab configure "f1" -command {
.ts tab configure "f1" -window ".ts.graph"
}</PRE>
If you have many folders, you may wish to stack tabs in multiple
tiers. The tabset's <B>-tiers</B> option requests a maximum
number of tiers. The default is one tier.
<PRE>.ts configure -tiers 2</PRE>
If the tabs can fit in less tiers, the widget will use that many.
Whenever there are more tabs than can be displayed in the maximum number
of tiers, the tabset will automatically let you scroll the tabs. You
can even attach a scrollbar to the tabset.
<PRE>.ts configure -scrollcommand { .sbar set } -scrollincrement 20
.sbar configure -orient horizontal -command { .ts view }</PRE>
By default tabs are along the top of the tabset from left to right.
But tabs can be placed on any side of the tabset using the <B>-side</B>
option.
<PRE># Arrange tabs along the right side of the tabset.
.ts configure -side right -rotate 270</PRE>
<H3><A NAME="M149">KEYWORDS</A></H3>
<A href="../Keywords/T.htm#tabset">tabset</A>, <A href="../Keywords/W.htm#widget">widget</A>
<div class="copy">Copyright © 1995-1997 Roger E. Critchlow Jr.
</div>
</BODY></HTML>
|