1/* 2 * Copyright 2011-2014 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * John Scipione, jscipione@gmail.com 7 * 8 * Corresponds to: 9 * headers/os/interface/View.h hrev47274 10 * src/kits/interface/View.cpp hrev47274 11 */ 12 13 14/*! 15 \file View.h 16 \ingroup interface 17 \ingroup libbe 18 \brief BView class definition and support data structures. 19 20 \since BeOS R5 21*/ 22 23 24// mouse buttons 25 26 27/*! 28 \var B_PRIMARY_MOUSE_BUTTON 29 \brief Primary mouse button mask parameter. 30 31 \since BeOS R3 32*/ 33 34 35/*! 36 \var B_SECONDARY_MOUSE_BUTTON 37 \brief Secondary mouse button mask parameter. 38 39 \since BeOS R3 40*/ 41 42 43/*! 44 \var B_TERTIARY_MOUSE_BUTTON 45 \brief Tertiary mouse button mask parameter. 46 47 \since BeOS R3 48*/ 49 50 51// mouse transit 52 53 54/*! 55 \var B_ENTERED_VIEW 56 \brief Mouse transit entered view. 57 58 \since BeOS R3 59*/ 60 61 62/*! 63 \var B_INSIDE_VIEW 64 \brief Mouse transit inside view. 65 66 \since BeOS R3 67*/ 68 69 70/*! 71 \var B_EXITED_VIEW 72 \brief Mouse transit exited view. 73 74 \since BeOS R3 75*/ 76 77 78/*! 79 \var B_OUTSIDE_VIEW 80 \brief Mouse transit outside view. 81 82 \since BeOS R5 83*/ 84 85 86// event mask 87 88 89/*! 90 \var B_POINTER_EVENTS 91 \brief Mouse pointer events mask parameter. 92 93 \since BeOS R5 94*/ 95 96 97/*! 98 \var B_KEYBOARD_EVENTS 99 \brief Keyboard events mask parameter. 100 101 \since BeOS R5 102*/ 103 104 105// event mask options 106 107 108/*! 109 \var B_LOCK_WINDOW_FOCUS 110 \brief Prevents the attached window from losing its focused state while 111 the mouse is held down. 112 113 \since BeOS R5 114*/ 115 116 117/*! 118 \var B_SUSPEND_VIEW_FOCUS 119 \brief Events normally sent to the focus view are suppressed. 120 121 \since BeOS R5 122*/ 123 124 125/*! 126 \var B_NO_POINTER_HISTORY 127 \brief Send only the most recent MouseMoved() event to the view. 128 129 \note New in Haiku: unless this flag is specified, both BWindow and 130 BView::GetMouse() will filter out older mouse moved messages. 131 132 \since BeOS R5 133*/ 134 135 136/*! 137 \var B_FULL_POINTER_HISTORY 138 \brief Send all MouseMoved() events to the view. 139 140 \since Haiku R1 141*/ 142 143 144// event tracking 145 146 147/*! 148 \var B_TRACK_WHOLE_RECT 149 \brief The whole rectangle moves with the cursor. 150 151 \since BeOS R3 152*/ 153 154 155/*! 156 \var B_TRACK_RECT_CORNER 157 \brief The left top corner is fixed while the right and bottom edges 158 move with the cursor. 159 160 \since BeOS R3 161*/ 162 163 164// set font mask 165 166 167/*! 168 \var B_FONT_FAMILY_AND_STYLE 169 \brief Font family and style mask parameter. 170 171 \since BeOS R3 172*/ 173 174 175/*! 176 \var B_FONT_SIZE 177 \brief Font size mask parameter. 178 179 \since BeOS R3 180*/ 181 182 183/*! 184 \var B_FONT_SHEAR 185 \brief Font shear mask parameter. 186 187 \since BeOS R3 188*/ 189 190 191/*! 192 \var B_FONT_ROTATION 193 \brief Font rotation mask parameter. 194 195 \since BeOS R3 196*/ 197 198 199/*! 200 \var B_FONT_SPACING 201 \brief Font spacing mask parameter. 202 203 \since BeOS R3 204*/ 205 206 207/*! 208 \var B_FONT_ENCODING 209 \brief Font encoding mask parameter. 210 211 \since BeOS R3 212*/ 213 214 215/*! 216 \var B_FONT_FACE 217 \brief Font face mask parameter. 218 219 \since BeOS R3 220*/ 221 222 223/*! 224 \var B_FONT_FLAGS 225 \brief Font flags mask parameter. 226 227 \since BeOS R3 228*/ 229 230 231/*! 232 \var B_FONT_FALSE_BOLD_WIDTH 233 \brief Font false bold width mask parameter. 234 235 \since Haiku R1 236*/ 237 238 239/*! 240 \var B_FONT_ALL 241 \brief Font all properties mask parameter. 242 243 \since BeOS R3 244*/ 245 246 247// view flags 248 249 250/*! 251 \var B_FULL_UPDATE_ON_RESIZE 252 \brief Redraw the entire view on resize. 253 254 \since BeOS R3 255*/ 256 257 258/*! 259 \var _B_RESERVED1_ 260 \brief Reserved for future use. 261 262 \since Haiku R1 263*/ 264 265 266/*! 267 \var B_WILL_DRAW 268 \brief Indicates that the view will do it's own drawing. 269 270 \since BeOS R3 271*/ 272 273 274/*! 275 \var B_PULSE_NEEDED 276 \brief Indicates that the view accepts Pulse() messages. 277 278 \since BeOS R3 279*/ 280 281 282/*! 283 \var B_NAVIGABLE_JUMP 284 \brief Indicates this is the default keyboard navigation view. 285 286 \since BeOS R3 287*/ 288 289/*! 290 \var B_FRAME_EVENTS 291 \brief View responds to frame move and resize events. 292 293 \since BeOS R3 294*/ 295 296 297/*! 298 \var B_NAVIGABLE 299 \brief The view is able to receive focus for keyboard navigation. 300 Typically focus is indicated by drawing a blue rectangle around the view. 301 302 \since BeOS R3 303*/ 304 305 306/*! 307 \var B_SUBPIXEL_PRECISE 308 \brief The view draws with sub-pixel precision. 309 310 \since Haiku R1 311*/ 312 313 314/*! 315 \var B_DRAW_ON_CHILDREN 316 \brief Indicates that the view responds to the DrawAfterChildren() hook method. 317 318 \since BeOS R5 319*/ 320 321 322/*! 323 \var B_INPUT_METHOD_AWARE 324 \brief Allows the view to use input method add-ons to gain access to the 325 input methods needed for Japanese and other languages. 326 327 \since Haiku R1 328*/ 329 330 331/*! 332 \var _B_RESERVED7_ 333 \brief Reserved for future use. 334 335 \since Haiku R1 336*/ 337 338 339/*! 340 \var B_SUPPORTS_LAYOUT 341 \brief The view supports the layout APIs, i.e. it doesn't require an 342 frame rectangle to be specified. 343 344 \since Haiku R1 345*/ 346 347 348/*! 349 \var B_INVALIDATE_AFTER_LAYOUT 350 \brief Indicates that the view should be redraw after being added to 351 a layout. 352 353 \since Haiku R1 354*/ 355 356 357// resize mask variables, internal variables but are in a public header. 358 359 360/*! 361 \var _RESIZE_MASK_ 362 \brief Resize mask. Do not use. 363 364 \since Haiku R1 365*/ 366 367 368/*! 369 \var _VIEW_TOP_ 370 \brief View top mask variable. Do not use. 371 372 \since Haiku R1 373*/ 374 375 376/*! 377 \var _VIEW_LEFT_ 378 \brief View left mask variable. Do not use. 379 380 \since Haiku R1 381*/ 382 383 384/*! 385 \var _VIEW_BOTTOM_ 386 \brief View bottom mask variable. Do not use. 387 388 \since Haiku R1 389*/ 390 391 392/*! 393 \var _VIEW_RIGHT_ 394 \brief View right mask variable. Do not use. 395 396 \since Haiku R1 397*/ 398 399 400/*! 401 \var _VIEW_CENTER_ 402 \brief View center mask variable. Do not use. 403 404 \since Haiku R1 405*/ 406 407 408/*! 409 \fn inline uint32 _rule_(uint32 r1, uint32 r2, uint32 r3, uint32 r4) 410 \brief Internal function, do not use. 411 412 \since Haiku R1 413*/ 414 415 416// resize mask 417 418 419/*! 420 \var B_FOLLOW_NONE 421 \brief Follow none resize mask parameter. Equivalent to 422 \c B_FOLLOW_LEFT | \c B_FOLLOW_TOP. The view maintains its position 423 in its parent's coordinate system but not in the screen coordinate 424 system. 425 426 \since BeOS R3 427*/ 428 429 430/*! 431 \var B_FOLLOW_ALL_SIDES 432 \brief Follow all sides resize mask parameter. Equivalent to 433 \c B_FOLLOW_LEFT_RIGHT | \c B_FOLLOW_TOP_BOTTOM. The view will be resized 434 with its parent view both horizontally and vertically. 435 436 \since BeOS R3 437*/ 438 439 440/*! 441 \var B_FOLLOW_ALL 442 \brief Equivalent to \c B_FOLLOW_ALL_SIDES. 443 444 \since BeOS R3 445*/ 446 447 448// horizontal resize mask 449 450 451/*! 452 \var B_FOLLOW_LEFT 453 \brief The margin between the left side of the view and the left side 454 of its parent remains constant. 455 456 \since BeOS R3 457*/ 458 459 460/*! 461 \var B_FOLLOW_RIGHT 462 \brief The margin between the right side of the view and the right side 463 of its parent remains constant. 464 465 \since BeOS R3 466*/ 467 468 469/*! 470 \var B_FOLLOW_LEFT_RIGHT 471 \brief The margin between the left and right sides of the view and the left 472 and right sides of its parent both remain constant. 473 474 \since BeOS R3 475*/ 476 477 478/*! 479 \var B_FOLLOW_H_CENTER 480 \brief The view maintains a constant relationship to the horizontal center 481 of its parent view. 482 483 \since BeOS R3 484*/ 485 486 487// vertical resize mask 488 489 490/*! 491 \var B_FOLLOW_TOP 492 \brief The margin between the top of the view and the top of its parent 493 remains constant. 494 495 \since BeOS R3 496*/ 497 498 499/*! 500 \var B_FOLLOW_BOTTOM 501 \brief The margin between the bottom of the view and the bottom of its 502 parent remains constant. 503 504 \since BeOS R3 505*/ 506 507 508/*! 509 \var B_FOLLOW_TOP_BOTTOM 510 \brief The margin between the top and bottom sides of the view and the 511 top and bottom sides of its parent both remain constant. 512 513 \since BeOS R3 514*/ 515 516 517/*! 518 \var B_FOLLOW_V_CENTER 519 \brief The view maintains a constant relationship to the vertical center 520 of its parent view. 521 522 \since BeOS R3 523*/ 524 525 526/*! 527 \class BView 528 \ingroup interface 529 \ingroup libbe 530 \brief View base class. 531 532 A BView is a rectangular area within a window that responds to mouse clicks 533 and key presses, and acts as a surface for you to draw on. 534 535 Most Interface Kit classes, with the notable exception of BWindow inherit from 536 BView. Some of the time you might use a BView object as is, but most of the 537 time you subclass BView to do something unique. 538 539 To create a subclass of BView you generally override one or more of BView's 540 hook methods to respond to user events such as MouseDown() or FrameMoved(). 541 By default a BView does nothing in it's hook methods unless otherwise stated, 542 it's up to you to define what happens. To override the look of a BView you 543 should override the Draw() or DrawAfterChildren() methods. See the section on 544 Hook Methods below for more details. 545 546 When a BView object is first created it has no parent or child views. How you 547 add a view to the view hierarchy depends on if you want to use a standard 548 view with a defined frame rectangle or to use the Layout APIs to position and 549 size your view instead. 550 551 If you create a standard view you need to add it to a window or another view 552 using the AddChild() method, if you create a layout view you need to add your 553 view to a layout using BLayout::AddView() or by adding it to a layout builder. 554 555 Views are not very interesting until they, or one of their parents, are 556 attached to a window as many of BView's methods depend on a connection to the 557 App Server to do their work. In order to prevent multiple views from altering 558 the window simultaneously though locking is required. To perform an action 559 while the window is locked you issue the following code: 560 561\code 562if (Window()->LockLooper()) { 563 ... 564 Window()->UnlockLooper() 565} 566\endcode 567 568 Whenever App Server calls a hook method it automatically locks the BWindow for 569 you. 570 571 Only one view attached to a window is able to receive keyboard events at a 572 time. The view that is able to receive keyboard events such as KeyDown() is 573 called the "focus view". MakeFocus() gives or removes focus from a view. 574 Call IsFocus() to determine whether or not the view is the window's current 575 focus view. 576 577 When a view has focus an indicator should be drawn to inform the user. Typically 578 the view is surrounded by a blue rectangle to indicate that it is the window's 579 focus view. The color can be queried using the keyboard_navigation_color() 580 function in InterfaceDefs.h 581 582 Each view has it's own coordinate system with the origin point (0.0, 0.0) 583 located at the top left corner. You can convert a BPoint or BRect to or from 584 the view's coordinate system to the coordinate system of it's parent, or 585 of the screen's coordinate system. See the section on Coordinate Conversion 586 Methods for more details. 587 588 The Application Server clips a BView to the region where it's permitted to 589 draw which is never larger than the view's bound rectangle. A view can never 590 draw outside its bounds nor can it draw outside of the bounds rectangle of any 591 parent view. 592 593 You may limit the clipping region further by passing a BRegion object to 594 ConstrainClippingRegion(). You can obtain the current clipping region by 595 calling GetClippingRegion(). 596 597 Each view has a ViewColor() that fills the frame rectangle before the 598 view does any drawing of its own. The default view color is white, you may 599 change the view color by calling SetViewColor(). A commonly used view color 600 is \c B_PANEL_BACKGROUND_COLOR which is a grey color used as the view color 601 of many Interface Kit classes. If you set the view color to 602 \c B_TRANSPARENT_COLOR then the Application Server won't erase the clipping 603 region of the view before updating, this should only be used if the view 604 erases itself by drawing on every pixel in the clipping region. 605 606 If you want to set the view color of a view to be the same as its parent you 607 need to set it within the AttachedToWindow() method of the view like so: 608 609\code 610SetViewColor(Parent()->ViewColor()); 611\endcode 612 613 \since BeOS R3 614*/ 615 616 617/*! 618 \fn BView::BView(const char* name, uint32 flags, BLayout* layout) 619 \brief Layout constructor. 620 621 To be used as part of a BLayout. You may use the Layout Methods found below 622 to set the size and alignment constraints of the view. 623 624 \c B_SUPPORTS_LAYOUT is automatically set to the view. The view flags can be 625 set after the view has been constructed by calling the SetFlags() methods. 626 627 \param name The name of the view, can be \c NULL. 628 \param flags The view flags, a mask of one or more of the following: 629 - \c B_FULL_UPDATE_ON_RESIZE Redraw the entire view on resize. 630 - \c B_WILL_DRAW Indicates that the view will do it's own drawing. 631 - \c B_PULSE_NEEDED The view accepts Pulse() messages. 632 - \c B_NAVIGABLE_JUMP Default for keyboard navigation. 633 - \c B_FRAME_EVENTS Responds to move and resize events. 634 - \c B_NAVIGABLE Able to receive keyboard navigation focus. 635 - \c B_SUBPIXEL_PRECISE Draws with sub-pixel precision. 636 - \c B_DRAW_ON_CHILDREN Responds to DrawAfterChildren(). 637 - \c B_INPUT_METHOD_AWARE Allows access input method add-ons. 638 - \c B_SUPPORTS_LAYOUT Supports the layout APIs, i.e. it doesn't 639 use a frame rectangle. 640 - \c B_INVALIDATE_AFTER_LAYOUT Is redraw after added to a layout. 641 \param layout A \a layout to set the view to. 642 643 \since Haiku R1 644*/ 645 646 647/*! 648 \fn BView::BView(BRect frame, const char* name, uint32 resizingMode, 649 uint32 flags) 650 \brief Standard constructor. 651 652 A newly constructed BView object has no parent, you must assign it one by 653 passing it into the AddChild() method of another view or window. Once the 654 view or a parent view has been attached to a window the view becomes part of 655 that window's view hierarchy. 656 657 When the BView object is added as a child the \a frame values are interpreted 658 in the parent's coordinate system. The frame rectangle should be specified in 659 integral values to align on pixel boundaries, decimal values will be rounded. 660 661 The resizing mode flags and view flags can be set after the view has been 662 constructed by calling the SetResizingMode() and SetFlags() methods. 663 664 \param frame The \a frame rectangle of the view. 665 \param name The name of the view, can be \c NULL. 666 \param resizingMode Defines the view's behavior when its parent is resized. 667 \n\n It combines one of the following horizontal resizing constants: 668 \li \c B_FOLLOW_TOP The margin between the top of the view and the top 669 of its parent remains constant. 670 \li \c B_FOLLOW_BOTTOM The margin between the bottom of the view and 671 the bottom of its parent remains constant. 672 \li \c B_FOLLOW_TOP_BOTTOM The margin between the top and bottom sides 673 of the view and the top and bottom sides of the parent both remain 674 constant. 675 \li \c B_FOLLOW_V_CENTER Maintains a constant relationship to the 676 vertical center of the parent view. 677 678 with one of the following vertical resizing constants: 679 \li \c B_FOLLOW_LEFT The margin between the left side of the view and 680 the left side of its parent remains constant. 681 \li \c B_FOLLOW_RIGHT The margin between the right side of the view and 682 the right side of the parent remains constant. 683 \li \c B_FOLLOW_LEFT_RIGHT The margin between the left and right sides 684 of the view and the left and right sides of its parent both remain 685 constant. 686 \li \c B_FOLLOW_H_CENTER The view maintains a constant relationship to 687 the horizontal center of the parent view. 688 689 or use one of the following combined horizontal/vertical constants: 690 \li \c B_FOLLOW_NONE Equivalent to \c B_FOLLOW_LEFT | \c B_FOLLOW_TOP. 691 \li \c B_FOLLOW_ALL_SIDES Equivalent to 692 \c B_FOLLOW_LEFT_RIGHT | \c B_FOLLOW_TOP_BOTTOM. 693 \param flags The view flags, a mask of one or more of the following: 694 - \c B_FULL_UPDATE_ON_RESIZE Redraw the entire view on resize. 695 - \c B_WILL_DRAW Indicates that the view will do it's own drawing. 696 - \c B_PULSE_NEEDED The view accepts Pulse() messages. 697 - \c B_NAVIGABLE_JUMP Default for keyboard navigation. 698 - \c B_FRAME_EVENTS Responds to move and resize events. 699 - \c B_NAVIGABLE Able to receive keyboard navigation focus. 700 - \c B_SUBPIXEL_PRECISE Draws with sub-pixel precision. 701 - \c B_DRAW_ON_CHILDREN Responds to DrawAfterChildren(). 702 - \c B_INPUT_METHOD_AWARE Allows access input method add-ons. 703 - \c B_SUPPORTS_LAYOUT Supports the layout APIs, i.e. it doesn't 704 use a frame rectangle. 705 - \c B_INVALIDATE_AFTER_LAYOUT Is redraw after added to a layout. 706 707 \since BeOS R3 708*/ 709 710 711/*! 712 \fn BView::BView(BMessage* archive) 713 \brief Archive constructor. 714 715 \param archive The message data to construct the view from. 716 717 \since BeOS R3 718*/ 719 720 721/*! 722 \fn BView::~BView() 723 \brief Destructor method. 724 725 Deletes the view and all children freeing any memory used. 726 727 \since BeOS R3 728*/ 729 730 731/*! 732 \name Archiving 733*/ 734 735 736//! @{ 737 738 739/*! 740 \fn BArchivable* BView::Instantiate(BMessage* data) 741 \brief Creates a new BView object from the \a data message. 742 743 \returns A newly created BView object or \c NULL if the message doesn't 744 contain an archived BView. 745 746 \since BeOS R3 747*/ 748 749 750/*! 751 \fn status_t BView::Archive(BMessage* data, bool deep) const 752 \brief Archives the object into the \a data message. 753 754 \param data A pointer to the BMessage object to archive the object into. 755 \param deep Whether or not to archive child views as well. 756 757 \return A status code, \c B_OK if everything went well or an error code 758 otherwise. 759 \retval B_OK The object was archived successfully. 760 \retval B_NO_MEMORY Ran out of memory while archiving the object. 761 762 \since BeOS R3 763*/ 764 765 766//! @} 767 768 769/*! 770 \name Hook Methods 771*/ 772 773 774//! @{ 775 776 777/*! 778 \fn status_t BView::AllUnarchived(const BMessage* from) 779 \brief Hook method called when all views have been unarchived. 780 781 \since BeOS R3 782*/ 783 784 785/*! 786 \fn status_t BView::AllArchived(BMessage* into) const 787 \brief Hook method called when all views have been archived. 788 789 \since BeOS R3 790*/ 791 792 793/*! 794 \fn void BView::AllAttached() 795 \brief Similar to AttachedToWindow() but this method is triggered after 796 all child views have already been attached to a window. 797 798 \since BeOS R3 799*/ 800 801 802/*! 803 \fn void BView::DetachedFromWindow() 804 \brief Hook method called when the object is detached from a window. 805 806 \since BeOS R3 807*/ 808 809 810/*! 811 \fn void BView::AttachedToWindow() 812 \brief Hook method called when the object is attached to a window. 813 814 \since BeOS R3 815*/ 816 817 818/*! 819 \fn void BView::AllDetached() 820 \brief Similar to AttachedToWindow() but this method is triggered after 821 all child views have already been detached from a window. 822 823 \since BeOS R3 824*/ 825 826 827/*! 828 \fn void BView::Draw(BRect updateRect) 829 \brief Draws the area of the view that intersects \a updateRect. 830 831 Derived classes should override this method to draw their view. 832 833 \remark This is an hook method called by the Interface Kit, you don't have to 834 call it yourself. If you need to forcefully redraw the view consider 835 calling Invalidate() instead. 836 837 \param updateRect The rectangular area to be drawn. 838 839 \since BeOS R3 840*/ 841 842 843/*! 844 \fn void BView::DrawAfterChildren(BRect updateRect) 845 \brief Perform any drawing that needs to be done after child view have 846 already been drawn. 847 848 \param updateRect The rectangular area to drawn in. 849 850 \since BeOS R5 851*/ 852 853 854/*! 855 \fn void BView::FrameMoved(BPoint newPosition) 856 \brief Hook method called when the view is moved. 857 858 \param newPosition The point of the top left corner of the frame 859 that the view has been moved to. 860 861 \since BeOS R3 862*/ 863 864 865/*! 866 \fn void BView::FrameResized(float newWidth, float newHeight) 867 \brief Hook method called when the view is resized. 868 869 \param newWidth The new width of the view. 870 \param newHeight The new height of the view. 871 872 \since BeOS R3 873*/ 874 875 876/*! 877 \fn void BView::KeyDown(const char* bytes, int32 numBytes) 878 \brief Hook method called when a keyboard key is pressed. 879 880 \param bytes The bytes of the key combination pressed. 881 \param numBytes The number of bytes in \a bytes. 882 883 \since BeOS R3 884*/ 885 886 887/*! 888 \fn void BView::KeyUp(const char* bytes, int32 numBytes) 889 \brief Hook method called when a keyboard key is released. 890 891 \param bytes The bytes of the key combination pressed. 892 \param numBytes The number of bytes in \a bytes. 893 894 \since BeOS R3 895*/ 896 897 898/*! 899 \fn void BView::LayoutInvalidated(bool descendants) 900 \brief Hook method called when the layout is invalidated. 901 902 \param descendants Whether or not child views have also been invalidated. 903 904 \since Haiku R1 905*/ 906 907 908/*! 909 \fn void BView::MessageReceived(BMessage* message) 910 \brief Handle \a message received by the associated looper. 911 912 \param message The \a message received by the associated looper. 913 914 \see BHandler::MessageReceived() 915 916 \since BeOS R3 917*/ 918 919 920/*! 921 \fn void BView::MouseDown(BPoint where) 922 \brief Hook method called when a mouse button is pressed. 923 924 \param where The point on the screen where to mouse pointer is when 925 the mouse button is pressed. 926 927 \since BeOS R3 928*/ 929 930 931/*! 932 \fn void BView::MouseUp(BPoint where) 933 \brief Hook method called when a mouse button is released. 934 935 \param where The point on the screen where to mouse pointer is when 936 the mouse button is released. 937 938 \since BeOS R3 939*/ 940 941 942/*! 943 \fn void BView::MouseMoved(BPoint where, uint32 code, 944 const BMessage* dragMessage) 945 \brief Hook method called when the mouse is moved. 946 947 \param where The new location of the mouse in the view's coordinate system. 948 \param code One of the following: 949 - \c B_ENTERED_VIEW The cursor has just entered the view. 950 - \c B_INSIDE_VIEW The cursor is inside the view. 951 - \c B_EXITED_VIEW The cursor has left the view's bounds. This only gets sent 952 if the scope of the mouse events that the view can receive has been 953 expanded by SetEventMask() or SetMouseEventMask(). 954 - \c B_OUTSIDE_VIEW The cursor is outside the view. This only gets sent if the 955 scope of the mouse events that the view can receive has been expanded by 956 SetEventMask() or SetMouseEventMask(). 957 \param dragMessage If a drag-and-drop operation is taking place this is a 958 pointer to a BMessage that holds the drag information, otherwise the 959 pointer is \c NULL. 960 961 \sa SetEventMask(), SetMouseEventMask() 962 \sa DragMessage() 963 964 \since BeOS R3 965*/ 966 967 968/*! 969 \fn void BView::Pulse() 970 \brief Hook method called when the view receives a \c B_PULSE 971 message. 972 973 An action is performed each time the App Server calls the Pulse() method. 974 The pulse rate is set by SetPulseRate(). You can implement Pulse() to do 975 anything you want. The default version does nothing. The pulse granularity 976 is no better than once per 100,000 microseconds. 977 978 \sa SetPulseRate() 979 980 \since BeOS R3 981*/ 982 983 984/*! 985 \fn void BView::TargetedByScrollView(BScrollView* scrollView) 986 \brief Hook method called when the view becomes the target of 987 \a scrollView. 988 989 \param scrollView The BScrollView object that has targeted the view. 990 991 \since Haiku R1 992*/ 993 994 995/*! 996 \fn void BView::WindowActivated(bool active) 997 \brief Hook method called when the attached window is activated or 998 deactivated. 999 1000 \param active \c true when the window becomes activated, \c false when the 1001 window becomes deactivated. 1002 1003 \since BeOS R3 1004*/ 1005 1006 1007//! @} 1008 1009 1010/*! 1011 \fn BRect BView::Bounds() const 1012 \brief Returns the view's frame rectangle in the view's coordinate system. 1013 1014 \return The view's bounding rectangle in the view's coordinate system. 1015 1016 \since BeOS R3 1017*/ 1018 1019 1020/*! 1021 \fn BRect BView::Frame() const 1022 \brief Returns the view's frame rectangle in the parent's coordinate system. 1023 1024 \returns The view's frame rectangle in the parent's coordinate system. 1025 1026 \since BeOS R3 1027*/ 1028 1029 1030/*! 1031 \name Coordinate Conversions 1032*/ 1033 1034 1035//! @{ 1036 1037 1038/*! 1039 \fn void BView::ConvertToParent(BPoint* point) const 1040 \brief Convert \a point to the parent's coordinate system in place. 1041 1042 \param point A pointer to a BPoint object to convert. 1043 1044 \since BeOS R3 1045*/ 1046 1047 1048/*! 1049 \fn BPoint BView::ConvertToParent(BPoint point) const 1050 \brief Returns \a point converted to the parent's coordinate system. 1051 1052 \param point A BPoint object to convert. 1053 1054 \return A new BPoint object in the parent's coordinate system. 1055 1056 \since BeOS R3 1057*/ 1058 1059 1060/*! 1061 \fn void BView::ConvertFromParent(BPoint* point) const 1062 \brief Convert \a point from the parent's coordinate system to the 1063 view's coordinate system in place. 1064 1065 \param point A pointer to a BPoint object to convert. 1066 1067 \since BeOS R3 1068*/ 1069 1070 1071/*! 1072 \fn BPoint BView::ConvertFromParent(BPoint point) const 1073 \brief Returns \a point converted from the parent's coordinate system to 1074 the view's coordinate system. 1075 1076 \param point A BPoint object to convert. 1077 1078 \return A new BPoint object in the view's coordinate system. 1079 1080 \since BeOS R3 1081*/ 1082 1083 1084/*! 1085 \fn void BView::ConvertToParent(BRect* rect) const 1086 \brief Convert \a rect to the parent's coordinate system in place. 1087 1088 \param rect A pointer to a BRect object to convert. 1089 1090 \since BeOS R3 1091*/ 1092 1093 1094/*! 1095 \fn BRect BView::ConvertToParent(BRect rect) const 1096 \brief Returns \a rect converted to the parent's coordinate system. 1097 1098 \param rect A BRect object to convert. 1099 1100 \return A new BRect object in the parent's coordinate system. 1101 1102 \since BeOS R3 1103*/ 1104 1105 1106/*! 1107 \fn void BView::ConvertFromParent(BRect* rect) const 1108 \brief Convert \a rect from the parent's coordinate system to the 1109 view's coordinate system in place. 1110 1111 \param rect A pointer to a BRect object to convert. 1112 1113 \since BeOS R3 1114*/ 1115 1116 1117/*! 1118 \fn BRect BView::ConvertFromParent(BRect rect) const 1119 \brief Returns \a rect converted from the parent's coordinate system to the 1120 view's coordinate system. 1121 1122 \param rect A BRect object to convert. 1123 1124 \return A new BRect object in the view's coordinate system. 1125 1126 \since BeOS R3 1127*/ 1128 1129 1130/*! 1131 \fn void BView::ConvertToScreen(BPoint* point) const 1132 \brief Convert \a point to the screen's coordinate system in place. 1133 1134 \param point A pointer to a BPoint object to convert. 1135 1136 \since BeOS R3 1137*/ 1138 1139 1140/*! 1141 \fn BPoint BView::ConvertToScreen(BPoint point) const 1142 \brief Returns \a point converted to the screen's coordinate system. 1143 1144 \param point A BPoint object to convert. 1145 1146 \return A new BPoint object in the screen's coordinate system. 1147 1148 \since BeOS R3 1149*/ 1150 1151 1152/*! 1153 \fn void BView::ConvertFromScreen(BPoint* point) const 1154 \brief Convert \a point from the screen's coordinate system to the 1155 view's coordinate system in place. 1156 1157 \param point A pointer to a BPoint object to convert. 1158 1159 \since BeOS R3 1160*/ 1161 1162 1163/*! 1164 \fn BPoint BView::ConvertFromScreen(BPoint point) const 1165 \brief Returns \a point converted from the screen's coordinate system to 1166 the view's coordinate system. 1167 1168 \param point A BPoint object to convert. 1169 1170 \return A new BPoint object in the view's coordinate system. 1171 1172 \since BeOS R3 1173*/ 1174 1175 1176/*! 1177 \fn void BView::ConvertToScreen(BRect* rect) const 1178 \brief Convert \a rect to the screen's coordinate system in place. 1179 1180 \param rect A pointer to a BRect object to convert. 1181 1182 \since BeOS R3 1183*/ 1184 1185 1186/*! 1187 \fn BRect BView::ConvertToScreen(BRect rect) const 1188 \brief Returns \a rect converted to the screen's coordinate system. 1189 1190 \param rect A BRect object to convert. 1191 1192 \return A new BRect object in the screen's coordinate system. 1193 1194 \since BeOS R3 1195*/ 1196 1197 1198/*! 1199 \fn void BView::ConvertFromScreen(BRect* rect) const 1200 \brief Convert \a rect from the screen's coordinate system to the 1201 view's coordinate system in place. 1202 1203 \param rect A pointer to a BRect object to convert. 1204 1205 \since BeOS R3 1206*/ 1207 1208 1209/*! 1210 \fn BRect BView::ConvertFromScreen(BRect rect) const 1211 \brief Returns \a rect converted from the screen's coordinate system to the 1212 view's coordinate system. 1213 1214 \param rect A BRect object to convert. 1215 1216 \return A new BRect object in the view's coordinate system. 1217 1218 \since BeOS R3 1219*/ 1220 1221 1222//! @} 1223 1224 1225/*! 1226 \fn uint32 BView::Flags() const 1227 \brief Return the view flags set in the constructor or by SetFlags(). 1228 1229 \return The view flags as a uint32 mask. 1230 1231 \sa SetFlags() 1232 1233 \since BeOS R3 1234*/ 1235 1236 1237/*! 1238 \fn void BView::SetFlags(uint32 flags) 1239 \brief Sets the view flags to the \a flags mask. 1240 1241 \param flags The view flags to set as a uint32 mask. 1242 1243 \since BeOS R3 1244*/ 1245 1246 1247//! @} 1248 1249 1250/*! 1251 \fn void BView::Hide() 1252 \brief Hides the view without removing it from the view hierarchy. 1253 1254 Calls to Hide() and Show() are cumulative. A visible view becomes hidden 1255 once the number of Hide() calls exceeds the number of Show() calls. 1256 1257 \sa Show() 1258 \sa BWindow::Hide() 1259 \sa IsHidden() 1260 1261 \since BeOS R3 1262*/ 1263 1264 1265/*! 1266 \fn void BView::Show() 1267 \brief Shows the view making it visible. 1268 1269 Calls to Hide() and Show() are cumulative. A hidden view becomes visible 1270 again once the number of Show() calls matches the number of Hide() calls. 1271 1272 \sa Hide() 1273 \sa BWindow::Show() 1274 \sa IsHidden() 1275 1276 \since BeOS R3 1277*/ 1278 1279 1280/*! 1281 \fn bool BView::IsFocus() const 1282 \brief Returns whether or not the view is the window's current focus view. 1283 1284 The focus view changes as the user moves from one view to another either 1285 by pushing the tab key or by clicking a new view with the mouse. The change 1286 can be made programmatically via the MakeFocus() method. 1287 1288 \returns \c true if the view is the current focus view, \c false otherwise. 1289 1290 \sa MakeFocus() 1291 \sa BWindow::CurrentFocus() 1292 1293 \since BeOS R3 1294*/ 1295 1296 1297/*! 1298 \fn bool BView::IsHidden(const BView* lookingFrom) const 1299 \brief Returns whether or not the view is hidden from the perspective of 1300 \a lookingFrom. 1301 1302 A view is considered hidden if it, any of it's parent views, or the window 1303 it is attached to has had the Hide() method called on it. This method 1304 allows you to determine the hidden status of a view from a different point 1305 on the view hierarchy. 1306 1307 \param lookingFrom The view used as a base when determining the hidden 1308 status of the BView object. 1309 1310 \return \c true if the view was hidden via the Hide() method, \c false 1311 otherwise. 1312 1313 \since Haiku R1 1314*/ 1315 1316 1317/*! 1318 \fn bool BView::IsHidden() const 1319 \brief Returns whether or not the view is hidden. 1320 1321 A view can be hidden either by calling Hide() on the view, calling Hide() 1322 on a parent view or calling Hide() on the window that the view is attached 1323 to. When a BWindow or BView is hidden, all its descendants are also hidden. 1324 1325 This method only returns whether the view or an ancestor view has had the 1326 Hide() method called on it, it doesn't consider if the view is obscured 1327 by another view or is off-screen. A BView is not hidden by default. 1328 1329 \return \c true if the view was hidden via the Hide() method, \c false 1330 otherwise. 1331 1332 \since BeOS R3 1333*/ 1334 1335 1336/*! 1337 \fn bool BView::IsPrinting() const 1338 \brief Returns whether or not the view is drawing to a printer. 1339 1340 This method should only be called from the Draw() or DrawAfterChildren() 1341 methods. If called from any other method this method returns \c false. 1342 1343 The view may choose different fonts, images, or colors when drawing to a 1344 printer vs. when drawing to the screen. 1345 1346 \return Returns \c true if drawing to a printer, \c false otherwise. 1347 1348 \since BeOS R3 1349*/ 1350 1351 1352/*! 1353 \fn BPoint BView::LeftTop() const 1354 \brief Returns the left top corner point. 1355 1356 \return The left top corner of the view as a BPoint object. 1357 1358 \since BeOS R3 1359*/ 1360 1361 1362/*! 1363 \fn void BView::SetResizingMode(uint32 mode) 1364 \brief Sets the resizing mode of the view according to the \a mode mask. 1365 1366 The resizing mode is first set in the BView constructor. 1367 1368 \sa SetFlags() 1369 1370 \since BeOS R3 1371*/ 1372 1373 1374/*! 1375 \fn uint32 BView::ResizingMode() const 1376 \brief Returns the resizing mode flags mask set in the constructor or by 1377 SetResizingMode(). 1378 1379 \returns the current resizing mode flags as a uint32 mask. 1380 1381 \sa SetResizingMode() 1382 1383 \since BeOS R3 1384*/ 1385 1386 1387/*! 1388 \fn void BView::SetViewCursor(const BCursor* cursor, bool sync) 1389 \brief Assigns \a cursor to the view. 1390 1391 This cursor will be displayed when the mouse is positioned inside the view. 1392 1393 \param cursor The BCursor object to assign to the view. 1394 \param sync If \c true App Server is synchronized immediately forcing the 1395 change to occur. If \c false, the change will be put in the queue and 1396 will take effect when the pending requests are processed. 1397 1398 \since BeOS R5 1399*/ 1400 1401 1402/*! 1403 \fn void BView::Flush() const 1404 \brief Flushes the attached window's connection to App Server. 1405 1406 \note If the view isn't attached to a window, Flush() does nothing. 1407 1408 \since BeOS R3 1409*/ 1410 1411 1412/*! 1413 \fn void BView::Sync() const 1414 \brief Synchronizes the attached window's connection to App Server. 1415 1416 \warning If the view isn't attached to a window, Sync() might crash the 1417 application. 1418 1419 \since BeOS R3 1420*/ 1421 1422 1423/*! 1424 \fn BWindow* BView::Window() const 1425 \brief Returns the window the view is attached to. 1426 1427 \return The window the view is attached to or \c NULL if the view isn't 1428 attached to a window. 1429 1430 \since BeOS R3 1431*/ 1432 1433 1434/*! 1435 \fn void BView::GetPreferredSize(float* _width, float* _height) 1436 \brief Fill out the preferred width and height of the view 1437 into the \a _width and \a _height parameters. 1438 1439 Derived classes should override this method to set the preferred 1440 size of object. 1441 1442 \remark Either the \a _width or \a _height parameter may be set to \c NULL 1443 if you only want to get the other one. 1444 1445 \param[out] _width Pointer to a float to store the width of the view. 1446 \param[out] _height Pointer to a float to store the height of the view. 1447 1448 \since BeOS R3 1449*/ 1450 1451 1452/*! 1453 \fn void BView::ResizeToPreferred() 1454 \brief Resizes the view to its preferred size keeping the position of the 1455 left top corner constant. 1456 1457 \warning It is not recommended to use this method for views that are part 1458 of a BLayout. 1459 1460 \since BeOS R3 1461*/ 1462 1463 1464/*! 1465 \name Input Related 1466*/ 1467 1468 1469//! @{ 1470 1471 1472/*! 1473 \fn void BView::BeginRectTracking(BRect startRect, uint32 style) 1474 \brief Displays an outline rectangle on the view and initiates tracking. 1475 1476 This method is typically called from the MouseDown() while EndRectTracking() 1477 is typically called from the MouseUp method(). 1478 1479 \param startRect The initial frame in the view's coordinate system. 1480 \param style This parameter is set to one of the following: 1481 - \c B_TRACK_WHOLE_RECT The position of the rect changes with the cursor 1482 while its size remains the same. 1483 - \c B_TRACK_RECT_CORNER The left top corner is fixed while the right and 1484 bottom edges move with the cursor. 1485 1486 \since BeOS R3 1487*/ 1488 1489 1490/*! 1491 \fn void BView::EndRectTracking() 1492 \brief Ends tracking removing the outline rectangle from the view. 1493 1494 BeginRectTracking() is typically called from the MouseDown() while this 1495 method is typically called from the MouseUp() method. 1496 1497 \since BeOS R3 1498*/ 1499 1500 1501/*! 1502 \fn void BView::DragMessage(BMessage* message, BRect dragRect, 1503 BHandler* replyTo) 1504 \brief Initiates a drag-and-drop session. 1505 1506 \warning This method only works if the BView objects are attached to a 1507 window. 1508 1509 \param message Contains data to be dragged and dropped on the destination 1510 view. The caller retains responsibility for this object. 1511 \param dragRect An outline rectangle used in place of a bitmap image set in 1512 the view's coordinate system. 1513 \param replyTo The target set to handle the message sent in reply to the 1514 dragged message. If \c NULL the reply is instead directed to the 1515 BView object that initiated the drag-and-drop session. 1516 1517 \since BeOS R3 1518*/ 1519 1520 1521/*! 1522 \fn void BView::DragMessage(BMessage* message, BBitmap* image, 1523 BPoint offset, BHandler* replyTo) 1524 \brief Initiates a drag-and-drop session of an \a image. 1525 1526 \warning This method only works if the BView objects are attached to a 1527 window. 1528 1529 \param message Contains data to be dragged and dropped on the destination 1530 view. The caller retains responsibility for this object. 1531 \param image Bitmap image dragged by the user. The memory used by the bitmap 1532 is freed automatically when the message is dropped. 1533 \param offset The offset to the hotspot within the image in the bitmap's 1534 coordinate system. 1535 \param replyTo The target set to handle the message sent in reply to the 1536 dragged message. If \c NULL the reply is instead directed to the 1537 BView object that initiated the drag-and-drop session. 1538 1539 \since BeOS R3 1540*/ 1541 1542 1543/*! 1544 \fn void BView::DragMessage(BMessage* message, BBitmap* image, 1545 drawing_mode dragMode, BPoint offset, BHandler* replyTo) 1546 \brief Initiates a drag-and-drop session of an \a image with drawing_mode 1547 set by \a dragMode. 1548 1549 \warning This method only works if the BView objects are attached to a 1550 window. 1551 1552 \param message Contains data to be dragged and dropped on the destination 1553 view. The caller retains responsibility for this object. 1554 \param image Bitmap image dragged by the user. The memory used by the bitmap 1555 is freed automatically when the message is dropped. 1556 \param dragMode Sets the drawing_mode used to draw the dragged image. Set to 1557 \c B_OP_ALPHA to drag-and-drop partially transparent images. 1558 \param offset The offset to the hotspot within the image in the bitmap's 1559 coordinate system. 1560 \param replyTo The target set to handle the message sent in reply to the 1561 dragged message. If \c NULL the reply is instead directed to the 1562 BView object that initiated the drag-and-drop session. 1563 1564 \since BeOS R5 1565*/ 1566 1567 1568/*! 1569 \fn void BView::GetMouse(BPoint* _location, uint32* _buttons, 1570 bool checkMessageQueue) 1571 \brief Fills out the cursor location and the current state of the mouse 1572 buttons. 1573 1574 The cursor doesn't have to be located within the view for this method to work, 1575 however, the view must be attached to a window. Don't use this method to track 1576 the mouse in your derived view, implement MouseMoved() instead. 1577 1578 \param[out] _location Filled out with the cursor location in the view's 1579 coordinate system. 1580 \param[out] _buttons Filled out with a mask of the following values: 1581 - \c B_PRIMARY_MOUSE_BUTTON 1582 - \c B_SECONDARY_MOUSE_BUTTON 1583 - \c B_TERTIARY_MOUSE_BUTTON 1584 \param checkMessageQueue If \c true pull from any pending MouseMoved() or 1585 MouseUp() events in the message queue top down before filling out 1586 the current mouse cursor state. 1587 1588 \since BeOS R3 1589*/ 1590 1591 1592/*! 1593 \fn void BView::MakeFocus(bool focus) 1594 \brief Makes the view the current focus view of the window or gives up 1595 being the window's focus view. 1596 1597 The focus view handles selections and KeyDown events when the the attached 1598 window is active. There can be only one focus view at a time per window. 1599 1600 When called with \a focus set to \c true this method first calls 1601 MakeFocus() on the previously focused view with \a focus set to 1602 \c false. 1603 1604 The focus doesn't automatically change when MouseDown() is called so calling 1605 MakeFocus() is the only way to make a view the focus view of a window. 1606 Classes derived from BView that can display the current selection, or that 1607 can accept pasted data should call MakeFocus() in their MouseDown() method 1608 to update the focus view of the window on click. 1609 1610 If the view isn't attached to a window this method has no effect. 1611 1612 \param focus \a true to set focus, \a false to remove it. 1613 1614 \since BeOS R3 1615*/ 1616 1617 1618/*! 1619 \fn BScrollBar* BView::ScrollBar(orientation posture) const 1620 \brief Returns the BScrollBar object that has the BView set as its target. 1621 1622 \param posture Either \c B_VERTICAL to get the vertical scroll bar or 1623 \c B_HORIZONTAL to get the horizontal scroll bar. 1624 1625 \returns the Scrollbar object requested or \c NULL if none found. 1626 1627 \see BScrollBar::SetTarget() 1628 1629 \since BeOS R3 1630*/ 1631 1632 1633/*! 1634 \fn void BView::ScrollBy(float deltaX, float deltaY) 1635 \brief Scroll the view by \a deltaX horizontally and \a deltaY vertically. 1636 1637 \param deltaX The amount to scroll horizontally. 1638 \param deltaY The amount to scroll vertically. 1639 1640 \since BeOS R3 1641*/ 1642 1643 1644/*! 1645 \fn void BView::ScrollTo(BPoint where) 1646 \brief Scroll the view to the point specified by \a where. 1647 1648 \param where The location to scroll the view to. 1649 1650 \since BeOS R3 1651*/ 1652 1653 1654/*! 1655 \fn void BView::ScrollWithMouseWheelDelta(BScrollBar* scrollBar, 1656 float delta) 1657 \brief Handle the scroll wheel changing over scrollbars. 1658 1659 - Extract the scrollbar change based on the mouse wheel \a delta into a 1660 protected method of BView. 1661 - The method is called from the MessageReceived() method of BScrollBar. 1662 1663 With this change it is now a bit easier to scroll horizontally around the 1664 system by putting the mouse cursor over a horizontal scrollbar and using 1665 the wheel. 1666 1667 \since Haiku R1 1668*/ 1669 1670 1671/*! 1672 \fn status_t BView::SetEventMask(uint32 mask, uint32 options) 1673 \brief Sets whether or not the view can accept mouse and keyboard 1674 events when not in focus. 1675 1676 If \a mask includes \c B_POINTER_EVENTS then the view will receive mouse 1677 events even when the mouse isn't over the view and if it includes 1678 \c B_KEYBOARD_EVENTS the view will receive keyboard events even if it 1679 isn't in focus. 1680 1681 The \a options mask options are as follows: 1682 - \c B_NO_POINTER_HISTORY Tells App Server to only send the most recent 1683 MouseMoved() event to the view sacrificing some granularity. 1684 - \c B_FULL_POINTER_HISTORY Tells App Server to send all MouseMoved() 1685 events to the view. 1686 1687 \param mask The \a mask of \c B_POINTER_EVENTS and \c B_KEYBOARD_EVENTS 1688 to set. 1689 \param options Sets other event-handling options. 1690 1691 \return \c B_OK if everything went fine or an error code, usually 1692 \c B_ERROR if something went wrong. 1693 1694 \since BeOS R5 1695*/ 1696 1697 1698/*! 1699 \fn uint32 BView::EventMask() 1700 \brief Returns the current event mask. 1701 1702 \return The current event mask as a uint32. 1703 1704 \since BeOS R5 1705*/ 1706 1707 1708/*! 1709 \fn status_t BView::SetMouseEventMask(uint32 mask, uint32 options) 1710 \brief Sets whether or not the view can accept mouse and keyboard 1711 events when not in focus from within MouseDown() until the 1712 following MouseUp() event. 1713 1714 The \a options mask options are as follows: 1715 - \c B_NO_POINTER_HISTORY Tells App Server to send only the most recent 1716 MouseMoved() event to the view sacrificing mouse movement granularity. 1717 - \c B_FULL_POINTER_HISTORY Tells App Server to send all MouseMoved() 1718 events to the view. 1719 - \c B_SUSPEND_VIEW_FOCUS Events normally sent to the focus view are 1720 suppressed. While the mouse is held down, the keyboard is ignored. 1721 The view receiving the MouseDown() messages doesn't have to be the 1722 focus view to suppress focused messages. 1723 - \c B_LOCK_WINDOW_FOCUS Prevents the attached window from losing its 1724 focused state while the mouse is held down, even if the mouse leaves 1725 the bounds of the window. 1726 1727 \param mask The \a mask of \c B_POINTER_EVENTS and \c B_KEYBOARD_EVENTS 1728 to set. 1729 \param options Sets other event-handling options. 1730 1731 \return \c B_OK if everything went fine or an error code, usually 1732 \c B_ERROR if something went wrong. 1733 1734 \since BeOS R5 1735*/ 1736 1737 1738//! @} 1739 1740 1741/*! 1742 \name Graphics State 1743*/ 1744 1745 1746//! @{ 1747 1748 1749/*! 1750 \fn void BView::PushState() 1751 \brief Saves the drawing state to the stack. 1752 1753 The drawing state contains the following elements: 1754 - local and global origins 1755 - local and global scales 1756 - local and global clipping regions 1757 - the current drawing mode 1758 - pen size and location 1759 - the font context 1760 - foreground and background color 1761 - line cap and join modes 1762 - miter limit 1763 - stipple pattern 1764 1765 A new state context is created after PushState() is called with a local scale 1766 at 0, a local origin at (0, 0), and no clipping region. 1767 1768 \since BeOS R3 1769*/ 1770 1771 1772/*! 1773 \fn void BView::PopState() 1774 \brief Restores the drawing state from the stack. 1775 1776 \since BeOS R3 1777*/ 1778 1779 1780/*! 1781 \fn void BView::SetOrigin(BPoint where) 1782 \brief Sets the origin in the view's coordinate system. 1783 1784 \param where The point to set the origin to. 1785 1786 \since BeOS R3 1787*/ 1788 1789 1790/*! 1791 \fn void BView::SetOrigin(float x, float y) 1792 \brief Sets the origin in the view's coordinate system. 1793 1794 \param x The x-coordinate to set the origin to. 1795 \param y The y-coordinate to set the origin to. 1796 1797 \since BeOS R3 1798*/ 1799 1800 1801/*! 1802 \fn BPoint BView::Origin() const 1803 \brief Returns the origin point in the view's coordinate system. 1804 1805 \return The local origin point in the view's coordinate system. 1806 1807 \since BeOS R3 1808*/ 1809 1810 1811/*! 1812 \fn void BView::SetScale(float scale) const 1813 \brief Sets the scale of the coordinate system the view uses for drawing. 1814 1815 The default scale is 1.0. A \a scale value lower than 1.0 reduces the size of 1816 the drawing coordinate system, a \a scale value greater than 1.0 magnifies 1817 the coordinate system; for example, a \a scale value of 0.5 cuts the drawing 1818 drawing area in half moving the drawing closer to the origin while a \a scale 1819 value of 2.0 doubles the drawing area and moving it away from the origin. 1820 1821 Updating the \a scale of view won't update previously drawn elements. 1822 1823 SetScale() calls are not commutative unless you call them across different 1824 drawing states as the following: 1825 1826\code 1827 view->SetScale(2); 1828 view->SetScale(2); 1829 // view's scale is 2 1830 1831 view2->SetScale(2); 1832 view2->PushState(); 1833 view2->SetScale(2); 1834 // view2's scale is 4 1835\endcode 1836 1837 \param scale The scale factor to set. 1838 1839 \since BeOS R3 1840*/ 1841 1842 1843/*! 1844 \fn float BView::Scale() const 1845 \brief Return the current drawing scale. 1846 1847 \return The current drawing scale. 1848 1849 \since BeOS R3 1850*/ 1851 1852 1853/*! 1854 \fn void BView::SetLineMode(cap_mode lineCap, join_mode lineJoin, 1855 float miterLimit) 1856 \brief Set line mode to use PostScript-style line cap and join modes. 1857 1858 \a lineCap determines the shape of the endpoints of stroked paths while 1859 \a lineJoin determines the shape of the corners where two lines meet. 1860 1861 The default miter limit is 10.0 which gives an angle of 11.478341°. 1862 1863 \param lineCap One of the following: 1864 - \c B_ROUND_CAP A semicircle with diameter of line width is drawn at the 1865 endpoint. 1866 - \c B_BUTT_CAP A straight edge is drawn without extending beyond the endpoint. 1867 - \c B_SQUARE_CAP A straight edge is drawn extending past the endpoint by half 1868 the line width. 1869 \param lineJoin One of the following: 1870 - \c B_ROUND_JOIN Same as \c B_ROUND_CAP but for a join. 1871 - \c B_MITER_JOIN The lines are extended until they meet. If angle that they 1872 meet at is greater than the 2*arcsin(1/\a miterLimit) than a bevel join 1873 is used instead. 1874 - \c B_BEVEL_JOIN The area between the caps is filled with a triangle. 1875 - \c B_BUTT_JOIN Same as \c B_BUTT_CAP but for a join. 1876 - \c B_SQUARE_JOIN Same as \c B_SQUARE_CAP but for a join. 1877 \param miterLimit Sets the cut off angle before a miter join becomes a bevel 1878 join calculated by 2*arcsin(1/\a miterLimit). 1879 1880 \since BeOS R3 1881*/ 1882 1883 1884/*! 1885 \fn join_mode BView::LineJoinMode() const 1886 \brief Returns the current line join mode. 1887 1888 \return The current line join mode set to the view. 1889 1890 \since BeOS R3 1891*/ 1892 1893 1894/*! 1895 \fn cap_mode BView::LineCapMode() const 1896 \brief Returns the current line cap mode. 1897 1898 \return The current line cap mode set to the view. 1899 1900 \since BeOS R3 1901*/ 1902 1903 1904/*! 1905 \fn float BView::LineMiterLimit() const 1906 \brief Returns the miter limit used for \c B_MITER_JOIN join mode. 1907 1908 \return The current miter limit set to the view. 1909 1910 \since BeOS R3 1911*/ 1912 1913 1914/*! 1915 \fn void BView::SetDrawingMode(drawing_mode mode) 1916 \brief Sets the drawing mode of the view. 1917 1918 The default drawing mode is \c B_OP_COPY. 1919 1920 \param mode Set to one of the following: 1921 - \c B_OP_COPY 1922 - \c B_OP_OVER 1923 - \c B_OP_ERASE 1924 - \c B_OP_INVERT 1925 - \c B_OP_SELECT 1926 - \c B_OP_ALPHA 1927 - \c B_OP_MIN 1928 - \c B_OP_MAX 1929 - \c B_OP_ADD 1930 - \c B_OP_SUBTRACT 1931 - \c B_OP_BLEND 1932 1933 \since BeOS R3 1934*/ 1935 1936 1937/*! 1938 \fn drawing_mode BView::DrawingMode() const 1939 \brief Return the current drawing_mode. 1940 1941 \return The current drawing_mode. 1942 1943 \since BeOS R3 1944*/ 1945 1946 1947/*! 1948 \fn void BView::SetBlendingMode(source_alpha srcAlpha, 1949 alpha_function alphaFunc) 1950 \brief Set the blending mode which controls how transparency is used. 1951 1952 \param srcAlpha Set to one of the following: 1953 - \c B_CONSTANT_ALPHA Use the high color's alpha channel. 1954 - \c B_PIXEL_ALPHA Use the alpha value of each pixel when drawing a bitmap. 1955 \param alphaFunc Set to one of the following: 1956 - \c B_ALPHA_OVERLAY Used for drawing a image with transparency over an opaque 1957 background. 1958 - \c B_ALPHA_COMPOSITE Used to composite two or more transparent images 1959 together offscreen to produce a new image drawn using 1960 \c B_ALPHA_OVERLAY mode. 1961 1962 \since BeOS R5 1963*/ 1964 1965 1966/*! 1967 \fn void BView::GetBlendingMode(source_alpha* srcAlpha, 1968 alpha_function* alphaFunc) const 1969 \brief Fill out \a srcAlpha and \a alphaFunc with the alpha mode and 1970 alpha function of the view. 1971 1972 \param[out] srcAlpha The alpha mode to fill out. 1973 \param[out] alphaFunc The alpha function to fill out. 1974 1975 \since BeOS R5 1976*/ 1977 1978 1979/*! 1980 \fn void BView::MovePenTo(BPoint point) 1981 \brief Move the pen to \a point in the view's coordinate system. 1982 1983 \param point the location to move the pen to. 1984 1985 \since BeOS R3 1986*/ 1987 1988 1989/*! 1990 \fn void BView::MovePenTo(float x, float y) 1991 \brief Move the pen to the point specified by \a x and \a y in the view's 1992 coordinate system. 1993 1994 \param x The horizontal coordinate to move the pen to. 1995 \param y The vertical coordinate to move the pen to. 1996 1997 \since BeOS R3 1998*/ 1999 2000 2001/*! 2002 \fn void BView::MovePenBy(float x, float y) 2003 \brief Move the pen by \a x pixels horizontally and \a y pixels vertically. 2004 2005 \param x The number of pixels to move the pen horizontally. 2006 \param y The number of pixels to move the pen vertically. 2007 2008 \since BeOS R3 2009*/ 2010 2011 2012/*! 2013 \fn BPoint BView::PenLocation() const 2014 \brief Return the current pen location as a BPoint object. 2015 2016 \return The current pen location in the view's coordinate system. 2017 2018 \sa MovePenTo(BPoint) 2019 \sa MovePenTo(float, float) 2020 \sa MovePenBy(float, float) 2021 2022 \since BeOS R3 2023*/ 2024 2025 2026/*! 2027 \fn void BView::SetPenSize(float size) 2028 \brief Set the pen size to \a size. 2029 2030 \param size The pen size to set. 2031 2032 \since BeOS R3 2033*/ 2034 2035 2036/*! 2037 \fn float BView::PenSize() const 2038 \brief Return the current pen size. 2039 2040 \return The current pen size as a float. 2041 2042 \sa SetPenSize() 2043 2044 \since BeOS R3 2045*/ 2046 2047 2048/*! 2049 \fn void BView::SetHighColor(rgb_color color) 2050 \brief Set the high color of the view. 2051 2052 \param color The color to set. 2053 2054 \since BeOS R3 2055*/ 2056 2057 2058/*! 2059 \fn void BView::SetHighColor(uchar red, uchar green, uchar blue, 2060 uchar alpha) 2061 \brief Set the high color of the view. 2062 2063 \param red The \a red component of the high color. 2064 \param green The \a green component of the high color. 2065 \param blue The \a blue component of the high color. 2066 \param alpha The \a alpha component of the high color. 2067 2068 \since BeOS R3 2069*/ 2070 2071 2072/*! 2073 \fn rgb_color BView::HighColor() const 2074 \brief Return the current high color. 2075 2076 \return The current high color as an rgb_color struct. 2077 2078 \sa SetHighColor(rgb_color) 2079 \sa SetHighColor(uchar, uchar, uchar, uchar) 2080 2081 \since BeOS R3 2082*/ 2083 2084 2085/*! 2086 \fn void BView::SetLowColor(rgb_color color) 2087 \brief Set the low color of the view. 2088 2089 \param color The color to set. 2090 2091 \since BeOS R3 2092*/ 2093 2094 2095/*! 2096 \fn void BView::SetLowColor(uchar red, uchar green, uchar blue, uchar alpha) 2097 \brief Set the low color of the view. 2098 2099 \param red The \a red component of the low color. 2100 \param green The \a green component of the low color. 2101 \param blue The \a blue component of the low color. 2102 \param alpha The \a alpha component of the low color. 2103 2104 \since BeOS R3 2105*/ 2106 2107 2108/*! 2109 \fn rgb_color BView::LowColor() const 2110 \brief Return the current low color. 2111 2112 \return The current low color as an rgb_color struct. 2113 2114 \sa SetLowColor(rgb_color) 2115 \sa SetLowColor(uchar, uchar, uchar, uchar) 2116 2117 \since BeOS R3 2118*/ 2119 2120 2121/*! 2122 \fn void BView::SetViewColor(rgb_color color) 2123 \brief Set the view color of the view. 2124 2125 \param color The color to set. 2126 2127 \since BeOS R3 2128*/ 2129 2130 2131/*! 2132 \fn void BView::SetViewColor(uchar red, uchar green, uchar blue, 2133 uchar alpha) 2134 \brief Set the view color of the view. 2135 2136 \param red The \a red component of the view color. 2137 \param green The \a green component of the view color. 2138 \param blue The \a blue component of the view color. 2139 \param alpha The \a alpha component of the view color. 2140 2141 \since BeOS R3 2142*/ 2143 2144 2145/*! 2146 \fn rgb_color BView::ViewColor() const 2147 \brief Return the current view color. 2148 2149 \return The current view color as an rgb_color struct. 2150 2151 \sa SetViewColor(rgb_color) 2152 \sa SetViewColor(uchar, uchar, uchar, uchar) 2153 2154 \since BeOS R3 2155*/ 2156 2157 2158/*! 2159 \fn void BView::ForceFontAliasing(bool enable) 2160 \brief Turn anti-aliasing on and off when printing. 2161 2162 Typically want to turn font anti-aliasing off when printing by passing 2163 \c true to this method and then turn it on again by passing in \c false. 2164 2165 This method does not affect characters drawn to the screen. 2166 2167 \param enable If \c true turn off anti-aliasing, if \c false turn on 2168 anti-aliasing. 2169 2170 \since BeOS R5 2171*/ 2172 2173 2174/*! 2175 \fn void BView::SetFont(const BFont* font, uint32 mask) 2176 \brief Set the font of the view. 2177 2178 By passing \c B_FONT_ALL to the \a mask parameter as is the default all 2179 font properties from \a font are set on the view. 2180 2181 \param font A pointer to a const BFont object to set on the view. 2182 \param mask A mask to determine what font properties to set, either pass 2183 in \c B_FONT_ALL to set all font properties or create a mask 2184 containing one or more of the following values to set: 2185 - \c B_FONT_FAMILY_AND_STYLE 2186 - \c B_FONT_SPACING 2187 - \c B_FONT_SIZE 2188 - \c B_FONT_ENCODING 2189 - \c B_FONT_SHEAR 2190 - \c B_FONT_FACE 2191 - \c B_FONT_ROTATION 2192 - \c B_FONT_FLAGS 2193 2194 \see BFont for more details. 2195 2196 \since BeOS R3 2197*/ 2198 2199 2200/*! 2201 \fn void BView::GetFont(BFont* font) const 2202 \brief Fill out \a font with the font set to the view. 2203 2204 \param[out] font The BFont object to fill out. 2205 2206 \since BeOS R3 2207*/ 2208 2209 2210/*! 2211 \fn void BView::GetFontHeight(font_height* height) const 2212 \brief Fill out the font_height struct with the view font. 2213 2214 \param[out] height The font_height struct to fill out. 2215 2216 \since BeOS R3 2217*/ 2218 2219 2220/*! 2221 \fn void BView::SetFontSize(float size) 2222 \brief Set the size of the view's font to \a size. 2223 2224 \param size The font size to set to the view in points. 2225 2226 \since BeOS R3 2227*/ 2228 2229 2230/*! 2231 \fn float BView::StringWidth(const char* string) const 2232 \brief Return the width of \a string set in the font of the view. 2233 2234 \param string The \a string to get the width of. 2235 2236 \return The width of the string in the view's font as a float. 2237 2238 \since BeOS R3 2239*/ 2240 2241 2242/*! 2243 \fn float BView::StringWidth(const char* string, int32 length) const 2244 \brief Return the width of \a string set in the font of the view up to 2245 \a length characters. 2246 2247 \param string The \a string to get the width of. 2248 \param length The maximum number of characters in \a string to consider. 2249 2250 \return The width of the string in the view's font as a float. 2251 2252 \since BeOS R3 2253*/ 2254 2255 2256/*! 2257 \fn void BView::GetStringWidths(char* stringArray[], int32 lengthArray[], 2258 int32 numStrings, float widthArray[]) const 2259 \brief Fill out widths of the strings in \a stringArray set in the font 2260 of the view into \a widthArray. 2261 2262 \param stringArray The array of strings to get the lengths of. 2263 \param lengthArray The number of characters of the strings in \a stringArray 2264 to consider. 2265 \param numStrings The number of strings in \a stringArray. 2266 \param widthArray The array to store the widths of the strings in 2267 \a stringArray. 2268 2269 \since BeOS R3 2270*/ 2271 2272 2273/*! 2274 \fn void BView::TruncateString(BString* string, uint32 mode, float width) const 2275 \brief Truncate \a string with truncation mode \a mode so that it is no wider 2276 than \a width set in the view's font. 2277 2278 When the string is truncated the missing characters are replaced by a 2279 horizontal ellipses. 2280 2281 \param string The string to truncate in place. 2282 \param mode The truncation mode to use, one of the following: 2283 - \c B_TRUNCATE_BEGINNING Truncate from the beginning of the string. 2284 - \c B_TRUNCATE_MIDDLE Truncate from the middle of the string. 2285 - \c B_TRUNCATE_END Truncate from the end of the string. 2286 - \c B_TRUNCATE_SMART Truncate from anywhere based on the string content. 2287 Not currently implemented. 2288 \param width The maximum width to truncate the string to. 2289 2290 \since BeOS R5 2291*/ 2292 2293 2294/*! 2295 \fn void BView::ClipToPicture(BPicture* picture, BPoint where, bool sync) 2296 \brief Intersects the current clipping region of the view with the pixels 2297 of \a picture. 2298 2299 BPicture instances are resolution independent, \a picture is effectively 2300 drawn at the view's resolution and the bitmap produced is used to modify the 2301 clipping region. 2302 2303 The pixels that are at least partially opaque are the ones drawn by 2304 \a picture. 2305 2306 \param picture The BPicture object to intersect with. 2307 \param where Offset in the view's coordinate system. 2308 \param sync If \c false, this method will execute asynchronously. 2309 2310 \since BeOS R5 2311*/ 2312 2313 2314/*! 2315 \fn void BView::ClipToInversePicture(BPicture* picture, BPoint where, 2316 bool sync) 2317 \brief Intersects the current clipping region of the view with the pixels 2318 outside of \a picture. 2319 2320 \param picture The BPicture object to intersect with. 2321 \param where Offset in the view's coordinate system. 2322 \param sync If \c false, this method will execute asynchronously. 2323 2324 \see ClipToPicture() 2325 2326 \since BeOS R5 2327*/ 2328 2329 2330/*! 2331 \fn void BView::GetClippingRegion(BRegion* region) const 2332 \brief Fill out \a region with the view's clipping region. 2333 2334 \param[out] region The BRegion object to fill out. 2335 2336 Get the current clipping region, which is an intersection of the view 2337 visible region on screen (which depends on the view bounds, any child view 2338 hiding parts of it, and overlapping windows) and the constrained clipping 2339 regions set by calls to ConstrainClippingRegion() in the current stack of 2340 drawing states. 2341 2342 \since BeOS R3 2343*/ 2344 2345 2346/*! 2347 \fn void BView::ConstrainClippingRegion(BRegion* region) 2348 \brief Set the clipping region the \a region restricting the area that the 2349 view can draw in. 2350 2351 The Application Server keeps track of the clipping region for each view 2352 attached to a window so that the view can't draw outside of it, 2353 consequently this method works only for views that are attached to a window. 2354 2355 The default clipping region contains the visible area of the view. By 2356 passing a region to this method the clipping area is further restricted. 2357 Passing in \c NULL resets the clipping region back to the default. 2358 2359 Calls to ConstrainClippingRegion() are not cumulative, each time this 2360 method is called it replaces the old clipping region. However, clipping 2361 regions from previous states are intersected to compute the effective 2362 clipping. 2363 2364 Region-based clipping is not affected by the view transform. If you need to 2365 constrain drawing to a transformed region, use ClipToPicture() and 2366 FillRegion() instead. 2367 2368 \param region The region to set the clipping region to or \c NULL 2369 to reset to default. 2370 2371 \since BeOS R3 2372*/ 2373 2374 2375//! @} 2376 2377 2378/*! 2379 \name Drawing Related 2380 2381 The view must be attached to the window for these methods to work unless 2382 otherwise stated. Notes on specific methods are provided below: 2383 2384 DrawBitmap() 2385 2386 If the the image is bigger than the destination rectangle, it is scaled to fit. 2387 2388 The asynchronous versions pass the image to Application Server and return 2389 immediately. 2390 2391 This can be more efficient in some cases for example to draw several bitmaps 2392 at once and then call Sync() to tell Application Server to wait for them all 2393 to finish drawing rather than waiting for each one to draw. 2394 2395 DrawPicture() 2396 2397 The asynchronous versions pass the picture to Application Server and return 2398 immediately. 2399 2400 This can be more efficient in some cases for example to draw several pictures 2401 at once and then call Sync() to tell Application Server to wait for them all 2402 to finish drawing rather than waiting for each one to draw. 2403 2404 DrawPicture() doesn't alter the graphics state of the view nor do changes to 2405 the graphics state of the view alter the BPicture object. What the picture 2406 will look like depends on the graphics parameters that were in effect when the 2407 picture was recorded. 2408 2409 DrawString() 2410 2411 The \a string is drawn in the view's current font and is modified by 2412 the other parameters of the font such as it's direction (left-to-right or 2413 right-to-left), rotation, spacing, shear, etc. The \a string is always drawn 2414 left to right even if it's text direction is set to right-to-left mode. 2415 2416 Drawing a string is fastest in \c B_OP_COPY mode and anti-aliasing can 2417 produce undesirable effects when a string is draw in other modes, especially 2418 if the string is drawn in the same location repeatedly. 2419 2420 DrawString() doesn't erase before drawing. 2421*/ 2422 2423 2424//! @{ 2425 2426 2427/*! 2428 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect bitmapRect, 2429 BRect viewRect, uint32 options) 2430 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2431 2432 \param bitmap The bitmap to draw onto the view. 2433 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2434 coordinate system. 2435 \param viewRect The area in the view's coordinate system to draw the 2436 bitmap in. 2437 \param options ?? 2438 2439 \since Haiku R1 2440*/ 2441 2442 2443/*! 2444 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect bitmapRect, 2445 BRect viewRect) 2446 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2447 2448 \param bitmap The bitmap to draw onto the view. 2449 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2450 coordinate system. 2451 \param viewRect The area in the view's coordinate system to draw the 2452 bitmap in. 2453 2454 \since BeOS R3 2455*/ 2456 2457 2458/*! 2459 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect viewRect) 2460 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2461 2462 \param bitmap The bitmap to draw onto the view. 2463 \param viewRect The area in the view's coordinate system to draw the 2464 bitmap in. 2465 2466 \since BeOS R3 2467*/ 2468 2469 2470/*! 2471 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BPoint where) 2472 \brief Draws \a bitmap on the view offset by \a where asynchronously. 2473 2474 \param bitmap The bitmap to draw onto the view. 2475 \param where The location to draw the bitmap in the view's coordinate system. 2476 2477 \since BeOS R3 2478*/ 2479 2480 2481/*! 2482 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap) 2483 \brief Draws \a bitmap on the view asynchronously. 2484 2485 \param bitmap The bitmap to draw onto the view. 2486 2487 \since BeOS R3 2488*/ 2489 2490 2491/*! 2492 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect bitmapRect, 2493 BRect viewRect, uint32 options) 2494 \brief brief Draws \a bitmap on the view within \a viewRect. 2495 2496 \param bitmap The bitmap to draw onto the view. 2497 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2498 coordinate system. 2499 \param viewRect The area in the view's coordinate system to draw the 2500 bitmap in. 2501 \param options ?? 2502 2503 \since Haiku R1 2504*/ 2505 2506 2507/*! 2508 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect bitmapRect, 2509 BRect viewRect) 2510 \brief Draws \a bitmap on the view within \a viewRect. 2511 2512 \param bitmap The bitmap to draw onto the view. 2513 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2514 coordinate system. 2515 \param viewRect The area in the view's coordinate system to draw the 2516 bitmap in. 2517 2518 \since BeOS R3 2519*/ 2520 2521 2522/*! 2523 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect viewRect) 2524 \brief Draws \a bitmap on the view within \a viewRect. 2525 2526 \param bitmap The bitmap to draw onto the view. 2527 \param viewRect The area in the view's coordinate system to draw the 2528 bitmap in. 2529 2530 \since BeOS R3 2531*/ 2532 2533 2534/*! 2535 \fn void BView::DrawBitmap(const BBitmap* bitmap, BPoint where) 2536 \brief Draws \a bitmap on the view offset by \a where. 2537 2538 \param bitmap The bitmap to draw onto the view. 2539 \param where The location to draw the bitmap in the view's coordinate system. 2540 2541 \since BeOS R3 2542*/ 2543 2544 2545/*! 2546 \fn void BView::DrawBitmap(const BBitmap* bitmap) 2547 \brief Draws \a bitmap on the view. 2548 2549 \param bitmap The bitmap to draw onto the view. 2550 2551 \since BeOS R3 2552*/ 2553 2554 2555/*! 2556 \fn void BView::DrawChar(char c) 2557 \brief Draws character \a c onto to the view at the current pen position. 2558 2559 The character is drawn in the view's current font. 2560 2561 \param c The character to draw. 2562 2563 \since BeOS R3 2564*/ 2565 2566 2567/*! 2568 \fn void BView::DrawChar(char c, BPoint location) 2569 \brief Draws character \a c at the specified \a location in the view. 2570 2571 The character is drawn in the view's current font. 2572 2573 \param c The character to draw. 2574 \param location The location in the view to draw the character. 2575 2576 \since BeOS R3 2577*/ 2578 2579 2580/*! 2581 \fn void BView::DrawString(const char* string, escapement_delta* delta) 2582 \brief Draw \a string onto the view at the current pen position. 2583 2584 \param string The string to draw. 2585 \param delta Adds additional width to each character according to the 2586 following fields: 2587 - nonspace(float) The amount of width to add to characters with visible 2588 glyphs. 2589 - space(float) The amount of width to add to characters with escapements 2590 but don't have visible glyphs. 2591 2592 \since BeOS R3 2593*/ 2594 2595 2596/*! 2597 \fn void BView::DrawString(const char* string, BPoint location, 2598 escapement_delta* delta) 2599 \brief Draw \a string onto the view at the specified \a location in the view. 2600 2601 \param string The string to draw. 2602 \param location The location in the view to draw the string. 2603 \param delta Adds additional width to each character according to the 2604 following fields: 2605 - nonspace(float) The amount of width to add to characters with visible 2606 glyphs. 2607 - space(float) The amount of width to add to characters with escapements 2608 but don't have visible glyphs. 2609 2610 \since BeOS R3 2611*/ 2612 2613 2614/*! 2615 \fn void BView::DrawString(const char* string, int32 length, 2616 escapement_delta* delta) 2617 \brief Draw \a string up to \a length characters onto the view at the current 2618 pen position. 2619 2620 \param string The string to draw. 2621 \param length The maximum number of characters in \a string to draw. 2622 \param delta Adds additional width to each character according to the 2623 following fields: 2624 - nonspace(float) The amount of width to add to characters with visible 2625 glyphs. 2626 - space(float) The amount of width to add to characters with escapements 2627 but don't have visible glyphs. 2628 2629 \since BeOS R3 2630*/ 2631 2632 2633/*! 2634 \fn void BView::DrawString(const char* string, int32 length, BPoint location, 2635 escapement_delta* delta) 2636 \brief Draw \a string up to \a length characters onto the view at the 2637 specified \a location in the view. 2638 2639 \param string The string to draw. 2640 \param length The maximum number of characters in \a string to draw. 2641 \param location The location in the view to draw the string. 2642 \param delta Adds additional width to each character according to the 2643 following fields: 2644 - nonspace(float) The amount of width to add to characters with visible 2645 glyphs. 2646 - space(float) The amount of width to add to characters with escapements 2647 but don't have visible glyphs. 2648 2649 \since BeOS R3 2650*/ 2651 2652 2653/*! 2654 \fn void BView::DrawString(const char* string, const BPoint* locations, 2655 int32 locationCount) 2656 \brief Draw \a string \a locationCount times at the specified \a locations. 2657 2658 \param string The string to draw. 2659 \param locations A pointer to an array of BPoint objects to draw the string. 2660 \param locationCount The number of elements in \a locations. 2661 2662 \since Haiku R1 2663*/ 2664 2665 2666/*! 2667 \fn void BView::DrawString(const char* string, int32 length, 2668 const BPoint* locations, int32 locationCount) 2669 \brief Draw \a string up to \a length characters \a locationCount times at the 2670 specified \a locations. 2671 2672 \param string The string to draw. 2673 \param length The maximum number of characters in \a string to draw. 2674 \param locations A pointer to an array of BPoint objects to draw the string. 2675 \param locationCount The number of elements in \a locations. 2676 2677 \since Haiku R1 2678*/ 2679 2680 2681/*! 2682 \fn void BView::StrokeEllipse(BPoint center, float xRadius, float yRadius, 2683 ::pattern pattern) 2684 \brief Stroke the outline of an ellipse starting at \a center with a 2685 horizontal radius of \a xRadius and a vertical radius of \a yRadius. 2686 2687 \param center The center point. 2688 \param xRadius The horizontal radius. 2689 \param yRadius The vertical radius. 2690 \param pattern One of the following: 2691 - \c B_SOLID_HIGH 2692 - \c B_SOLID_LOW 2693 - \c B_MIXED_COLORS 2694 2695 \since BeOS R3 2696*/ 2697 2698 2699/*! 2700 \fn void BView::StrokeEllipse(BRect rect, ::pattern pattern) 2701 \brief Stroke the outline of an ellipse inscribed within \a rect. 2702 2703 \param rect The area within which to inscribe the shape. 2704 \param pattern One of the following: 2705 - \c B_SOLID_HIGH 2706 - \c B_SOLID_LOW 2707 - \c B_MIXED_COLORS 2708 2709 \since BeOS R3 2710*/ 2711 2712 2713/*! 2714 \fn void BView::FillEllipse(BPoint center, float xRadius, float yRadius, 2715 ::pattern pattern) 2716 \brief Fill an ellipse starting at \a center with a horizontal radius 2717 of \a xRadius and a vertical radius of \a yRadius. 2718 2719 \param center The center point. 2720 \param xRadius The horizontal radius. 2721 \param yRadius The vertical radius. 2722 \param pattern One of the following: 2723 - \c B_SOLID_HIGH 2724 - \c B_SOLID_LOW 2725 - \c B_MIXED_COLORS 2726 2727 \since BeOS R3 2728*/ 2729 2730 2731/*! 2732 \fn void BView::FillEllipse(BRect rect, ::pattern pattern) 2733 \brief Fill an ellipse inscribed within \a rect. 2734 2735 \param rect The area within which to inscribe the shape. 2736 \param pattern One of the following: 2737 - \c B_SOLID_HIGH 2738 - \c B_SOLID_LOW 2739 - \c B_MIXED_COLORS 2740 2741 \since BeOS R3 2742*/ 2743 2744 2745/*! 2746 \fn void BView::FillEllipse(BPoint center, float xRadius, float yRadius, 2747 const BGradient& gradient) 2748 \brief Fill an ellipse with the specified \a gradient pattern starting at 2749 \a center with a horizontal radius of \a xRadius and a vertical radius 2750 of \a yRadius. 2751 2752 \param center The center point. 2753 \param xRadius The horizontal radius. 2754 \param yRadius The vertical radius. 2755 \param gradient The gradient pattern to fill the ellipse with. 2756 2757 \since Haiku R1 2758*/ 2759 2760 2761/*! 2762 \fn void BView::FillEllipse(BRect rect, const BGradient& gradient) 2763 \brief Fill an ellipse with the specified \a gradient pattern inscribed within 2764 \a rect. 2765 2766 \param rect The area within which to inscribe the shape. 2767 \param gradient The gradient pattern to fill the ellipse with. 2768 2769 \since Haiku R1 2770*/ 2771 2772 2773/*! 2774 \fn void BView::StrokeArc(BPoint center, float xRadius, float yRadius, 2775 float startAngle, float arcAngle, ::pattern pattern) 2776 \brief Stroke the outline of an arc starting at \a center with a 2777 horizontal radius of \a xRadius and a vertical radius of \a yRadius 2778 starting at \a startAngle and drawing \a arcAngle degrees. 2779 2780 \param center The center point. 2781 \param xRadius The horizontal radius. 2782 \param yRadius The vertical radius. 2783 \param startAngle The angle to begin drawing at. 2784 \param arcAngle The number of degrees of the arc to draw. 2785 \param pattern One of the following: 2786 - \c B_SOLID_HIGH 2787 - \c B_SOLID_LOW 2788 - \c B_MIXED_COLORS 2789 2790 \since BeOS R3 2791*/ 2792 2793 2794/*! 2795 \fn void BView::StrokeArc(BRect rect, float startAngle, float arcAngle, 2796 ::pattern pattern) 2797 \brief Stroke the outline of an arc inscribed within \a rect starting at 2798 \a startAngle and drawing \a arcAngle degrees. 2799 2800 \param rect The area within which to inscribe the shape. 2801 \param startAngle The angle to begin drawing at. 2802 \param arcAngle The number of degrees of the arc to draw. 2803 \param pattern One of the following: 2804 - \c B_SOLID_HIGH 2805 - \c B_SOLID_LOW 2806 - \c B_MIXED_COLORS 2807 2808 \since BeOS R3 2809*/ 2810 2811 2812/*! 2813 \fn void BView::FillArc(BPoint center, float xRadius, float yRadius, 2814 float startAngle, float arcAngle, ::pattern pattern) 2815 \brief Fill an arc starting at \a center with a horizontal radius of 2816 \a xRadius and a vertical radius of \a yRadius starting at 2817 \a startAngle and drawing \a arcAngle degrees. 2818 2819 \param center The center point. 2820 \param xRadius The horizontal radius. 2821 \param yRadius The vertical radius. 2822 \param startAngle The angle to begin drawing at. 2823 \param arcAngle The number of degrees of the arc to draw. 2824 \param pattern One of the following: 2825 - \c B_SOLID_HIGH 2826 - \c B_SOLID_LOW 2827 - \c B_MIXED_COLORS 2828 2829 \since BeOS R3 2830*/ 2831 2832 2833/*! 2834 \fn void BView::FillArc(BPoint center, float xRadius, float yRadius, 2835 float startAngle, float arcAngle, const BGradient& gradient) 2836 \brief Fill an arc with the specified \a gradient pattern starting at 2837 \a center with a horizontal radius of \a xRadius and a vertical 2838 radius of \a yRadius starting at \a startAngle and drawing 2839 \a arcAngle degrees. 2840 2841 \param center The center point. 2842 \param xRadius The horizontal radius. 2843 \param yRadius The vertical radius. 2844 \param startAngle The angle to begin drawing at. 2845 \param arcAngle The number of degrees of the arc to draw. 2846 \param gradient The gradient pattern to fill the arc with. 2847 2848 \since Haiku R1 2849*/ 2850 2851 2852/*! 2853 \fn void BView::FillArc(BRect rect, float startAngle, float arcAngle, 2854 ::pattern pattern) 2855 \brief Fill an arc inscribed within \a rect starting at startAngle and 2856 drawing \a arcAngle degrees. 2857 2858 \param rect The area within which to inscribe the shape. 2859 \param startAngle The angle to begin drawing at. 2860 \param arcAngle The number of degrees of the arc to draw. 2861 \param pattern One of the following: 2862 - \c B_SOLID_HIGH 2863 - \c B_SOLID_LOW 2864 - \c B_MIXED_COLORS 2865 2866 \since BeOS R3 2867*/ 2868 2869 2870/*! 2871 \fn void BView::FillArc(BRect rect, float startAngle, float arcAngle, 2872 const BGradient& gradient) 2873 \brief Fill an arc with the specified \a gradient pattern inscribed within 2874 \a rect starting at startAngle and drawing \a arcAngle degrees. 2875 2876 \param rect The area within which to inscribe the shape. 2877 \param startAngle The angle to begin drawing at. 2878 \param arcAngle The number of degrees of the arc to draw. 2879 \param gradient The gradient pattern to fill the arc with. 2880 2881 \since Haiku R1 2882*/ 2883 2884 2885/*! 2886 \fn void BView::StrokeBezier(BPoint* controlPoints, ::pattern pattern) 2887 \brief Stroke a bezier curve. 2888 2889 \param controlPoints The list of points that form the bezier curve. 2890 \param pattern One of the following: 2891 - \c B_SOLID_HIGH 2892 - \c B_SOLID_LOW 2893 - \c B_MIXED_COLORS 2894 2895 \since BeOS R3 2896*/ 2897 2898 2899/*! 2900 \fn void BView::FillBezier(BPoint* controlPoints, ::pattern pattern) 2901 \brief Fill a bezier curve. 2902 2903 \param controlPoints The list of points that form the bezier curve. 2904 \param pattern One of the following: 2905 - \c B_SOLID_HIGH 2906 - \c B_SOLID_LOW 2907 - \c B_MIXED_COLORS 2908 2909 \since BeOS R3 2910*/ 2911 2912 2913/*! 2914 \fn void BView::FillBezier(BPoint* controlPoints, const BGradient& gradient) 2915 2916 \brief Fill a bezier curve. 2917 2918 \param controlPoints The list of points that form the bezier curve. 2919 \param gradient The gradient pattern to fill the bezier curve with. 2920 2921 \since Haiku R1 2922*/ 2923 2924 2925/*! 2926 \fn void BView::StrokePolygon(const BPolygon* polygon, bool closed, 2927 ::pattern pattern) 2928 \brief Stroke a polygon shape. 2929 2930 \param polygon The polygon shape to stroke. 2931 \param closed Whether or not the last line of the polygon should intersect 2932 with the initial point. 2933 \param pattern One of the following: 2934 - \c B_SOLID_HIGH 2935 - \c B_SOLID_LOW 2936 - \c B_MIXED_COLORS 2937 2938 \since BeOS R3 2939*/ 2940 2941 2942/*! 2943 \fn void BView::StrokePolygon(const BPoint* pointArray, int32 numPoints, 2944 bool closed, ::pattern pattern) 2945 \brief Stroke a polygon shape made up of points specified by \a pointArray. 2946 2947 \param pointArray An array of points that specify the vertices of the 2948 polygon. 2949 \param numPoints The number of points in \a pointArray. 2950 \param closed Whether or not the last line of the polygon should intersect 2951 with the initial point. 2952 \param pattern One of the following: 2953 - \c B_SOLID_HIGH 2954 - \c B_SOLID_LOW 2955 - \c B_MIXED_COLORS 2956 2957 \since BeOS R3 2958*/ 2959 2960 2961/*! 2962 \fn void BView::StrokePolygon(const BPoint* pointArray, int32 numPoints, 2963 BRect bounds, bool closed, ::pattern pattern) 2964 \brief Stroke a polygon shape made up of points specified by \a pointArray 2965 inscribed by \a bounds. 2966 2967 \param pointArray An array of points that specify the vertices of the 2968 polygon. 2969 \param numPoints The number of points in \a pointArray. 2970 \param bounds The smallest rectangle that encloses the points in 2971 \a pointArray. 2972 \param closed Whether or not the last line of the polygon should intersect 2973 with the initial point. 2974 \param pattern One of the following: 2975 - \c B_SOLID_HIGH 2976 - \c B_SOLID_LOW 2977 - \c B_MIXED_COLORS 2978 2979 \since BeOS R3 2980*/ 2981 2982 2983/*! 2984 \fn void BView::FillPolygon(const BPolygon* polygon, ::pattern pattern) 2985 \brief Fill a polygon shape. 2986 2987 \param polygon The polygon shape to fill. 2988 \param pattern One of the following: 2989 - \c B_SOLID_HIGH 2990 - \c B_SOLID_LOW 2991 - \c B_MIXED_COLORS 2992 2993 \since BeOS R3 2994*/ 2995 2996 2997/*! 2998 \fn void BView::FillPolygon(const BPolygon* polygon, 2999 const BGradient& gradient) 3000 \brief Fill a polygon shape with the specified \a gradient pattern. 3001 3002 \param polygon The polygon shape to fill. 3003 \param gradient The gradient pattern to fill the polygon with. 3004 3005 \since Haiku R1 3006*/ 3007 3008 3009/*! 3010 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3011 ::pattern pattern) 3012 \brief Fill a polygon shape made up of points specified by \a pointArray. 3013 3014 \param pointArray An array of points that specify the vertices of the polygon. 3015 \param numPoints The number of points in \a pointArray. 3016 \param pattern One of the following: 3017 - \c B_SOLID_HIGH 3018 - \c B_SOLID_LOW 3019 - \c B_MIXED_COLORS 3020 3021 \since BeOS R3 3022*/ 3023 3024 3025/*! 3026 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3027 const BGradient& gradient) 3028 \brief Fill a polygon shape made up of points specified by \a pointArray 3029 with the specified \a gradient pattern. 3030 3031 \param pointArray An array of points that specify the vertices of the 3032 polygon. 3033 \param numPoints The number of points in \a pointArray. 3034 \param gradient The gradient pattern to fill the polygon with. 3035 3036 \since Haiku R1 3037*/ 3038 3039 3040/*! 3041 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3042 BRect bounds, ::pattern pattern) 3043 \brief Fill a polygon shape made up of points specified by \a pointArray 3044 inscribed by \a bounds. 3045 3046 \param pointArray An array of points that specify the vertices of the 3047 polygon. 3048 \param numPoints The number of points in \a pointArray. 3049 \param bounds The smallest rectangle that encloses the points in 3050 \a pointArray. 3051 \param pattern One of the following: 3052 - \c B_SOLID_HIGH 3053 - \c B_SOLID_LOW 3054 - \c B_MIXED_COLORS 3055 3056 \since BeOS R3 3057*/ 3058 3059 3060/*! 3061 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3062 BRect bounds, const BGradient& gradient) 3063 \brief Fill a polygon shape made up of points specified by \a pointArray 3064 inscribed by \a bounds with the specified \a gradient pattern. 3065 3066 \param pointArray An array of points that specify the vertices of the 3067 polygon. 3068 \param numPoints The number of points in \a pointArray. 3069 \param bounds The smallest rectangle that encloses the points in 3070 \a pointArray. 3071 \param gradient The gradient pattern to fill the polygon with. 3072 3073 \since Haiku R1 3074*/ 3075 3076 3077/*! 3078 \fn void BView::StrokeRect(BRect rect, ::pattern pattern) 3079 \brief Stroke the rectangle specified by \a rect. 3080 3081 \param rect The rectangular area to stroke. 3082 \param pattern One of the following: 3083 - \c B_SOLID_HIGH 3084 - \c B_SOLID_LOW 3085 - \c B_MIXED_COLORS 3086 3087 \since BeOS R3 3088*/ 3089 3090 3091/*! 3092 \fn void BView::FillRect(BRect rect, ::pattern pattern) 3093 \brief Fill the rectangle specified by \a rect. 3094 3095 \param rect The rectangular area to fill. 3096 \param pattern One of the following: 3097 - \c B_SOLID_HIGH 3098 - \c B_SOLID_LOW 3099 - \c B_MIXED_COLORS 3100 3101 \since BeOS R3 3102*/ 3103 3104 3105/*! 3106 \fn void BView::FillRect(BRect rect, const BGradient& gradient) 3107 \brief Fill the rectangle specified by \a rect with the specified 3108 \a gradient pattern. 3109 3110 \param rect The rectangular area to fill. 3111 \param gradient The gradient pattern to fill the rectangle with. 3112 3113 \since Haiku R1 3114*/ 3115 3116 3117/*! 3118 \fn void BView::StrokeRoundRect(BRect rect, float xRadius, float yRadius, 3119 ::pattern pattern) 3120 \brief Stroke the rounded rectangle with horizontal radius \a xRadius and 3121 vertical radius \a yRadius. 3122 3123 \param rect The rectangular area to stroke the round rect within. 3124 \param xRadius The horizontal radius. 3125 \param yRadius The vertical radius. 3126 \param pattern One of the following: 3127 - \c B_SOLID_HIGH 3128 - \c B_SOLID_LOW 3129 - \c B_MIXED_COLORS 3130 3131 \since BeOS R3 3132*/ 3133 3134 3135/*! 3136 \fn void BView::FillRoundRect(BRect rect, float xRadius, float yRadius, 3137 ::pattern pattern) 3138 \brief Fill the rounded rectangle with horizontal radius \a xRadius and 3139 vertical radius \a yRadius. 3140 3141 \param rect The rectangular area to fill the round rect within. 3142 \param xRadius The horizontal radius. 3143 \param yRadius The vertical radius. 3144 \param pattern One of the following: 3145 - \c B_SOLID_HIGH 3146 - \c B_SOLID_LOW 3147 - \c B_MIXED_COLORS 3148 3149 \since BeOS R3 3150*/ 3151 3152 3153/*! 3154 \fn void BView::FillRoundRect(BRect rect, float xRadius, float yRadius, 3155 const BGradient& gradient) 3156 \brief Fill the rounded rectangle with horizontal radius \a xRadius and 3157 vertical radius \a yRadius with the specified \a gradient pattern. 3158 3159 \param rect The rectangular area to fill the round rect within. 3160 \param xRadius The horizontal radius. 3161 \param yRadius The vertical radius. 3162 \param gradient The gradient pattern to fill the round rect with. 3163 3164 \since Haiku R1 3165*/ 3166 3167 3168/*! 3169 \fn void BView::FillRegion(BRegion* region, ::pattern pattern) 3170 \brief Fill \a region. 3171 3172 \param region The \a region to fill. 3173 \param pattern One of the following: 3174 - \c B_SOLID_HIGH 3175 - \c B_SOLID_LOW 3176 - \c B_MIXED_COLORS 3177 3178 \since BeOS R3 3179*/ 3180 3181 3182/*! 3183 \fn void BView::FillRegion(BRegion* region, const BGradient& gradient) 3184 \brief Fill \a region with the specified \a gradient pattern. 3185 3186 \param region The \a region to fill. 3187 \param gradient The gradient pattern to fill the \a region with. 3188 3189 \since Haiku R1 3190*/ 3191 3192 3193/*! 3194 \fn void BView::StrokeTriangle(BPoint point1, BPoint point2, BPoint point3, 3195 BRect bounds, ::pattern pattern) 3196 \brief Stroke the triangle specified by points \a point1, \a point2, and 3197 \a point3 and enclosed by \a bounds. 3198 3199 \param point1 The first point of the triangle. 3200 \param point2 The second point of the triangle. 3201 \param point3 The third point of the triangle. 3202 \param bounds The rectangular area that encloses the triangle. 3203 \param pattern One of the following: 3204 - \c B_SOLID_HIGH 3205 - \c B_SOLID_LOW 3206 - \c B_MIXED_COLORS 3207 3208 \since BeOS R3 3209*/ 3210 3211 3212/*! 3213 \fn void BView::StrokeTriangle(BPoint point1, BPoint point2, BPoint point3, 3214 ::pattern pattern) 3215 \brief Stroke the triangle specified by points \a point1, \a point2, 3216 and \a point3. 3217 3218 \param point1 The first point of the triangle. 3219 \param point2 The second point of the triangle. 3220 \param point3 The third point of the triangle. 3221 \param pattern One of the following: 3222 - \c B_SOLID_HIGH 3223 - \c B_SOLID_LOW 3224 - \c B_MIXED_COLORS 3225 3226 \since BeOS R3 3227*/ 3228 3229 3230/*! 3231 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3232 ::pattern pattern) 3233 \brief Fill the triangle specified by points \a point1, \a point2, 3234 and \a point3. 3235 3236 \param point1 The first point of the triangle. 3237 \param point2 The second point of the triangle. 3238 \param point3 The third point of the triangle. 3239 \param pattern One of the following: 3240 - \c B_SOLID_HIGH 3241 - \c B_SOLID_LOW 3242 - \c B_MIXED_COLORS 3243 3244 \since BeOS R3 3245*/ 3246 3247 3248/*! 3249 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3250 const BGradient& gradient) 3251 \brief Fill the triangle specified by points \a point1, \a point2, 3252 and \a point3 with the specified \a gradient pattern. 3253 3254 \param point1 The first point of the triangle. 3255 \param point2 The second point of the triangle. 3256 \param point3 The third point of the triangle. 3257 \param gradient The gradient pattern to fill the triangle with. 3258 3259 \since Haiku R1 3260*/ 3261 3262 3263/*! 3264 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3265 BRect bounds, ::pattern pattern) 3266 \brief Fill the triangle specified by points \a point1, \a point2, 3267 and \a point3 and enclosed by \a bounds. 3268 3269 \param point1 The first point of the triangle. 3270 \param point2 The second point of the triangle. 3271 \param point3 The third point of the triangle. 3272 \param bounds The rectangular area that encloses the triangle. 3273 \param pattern One of the following: 3274 - \c B_SOLID_HIGH 3275 - \c B_SOLID_LOW 3276 - \c B_MIXED_COLORS 3277 3278 \since BeOS R3 3279*/ 3280 3281 3282/*! 3283 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3284 BRect bounds, const BGradient& gradient) 3285 \brief Fill the triangle specified by points \a point1, \a point2, 3286 and \a point3 and enclosed by \a bounds with the specified 3287 \a gradient pattern. 3288 3289 \param point1 The first point of the triangle. 3290 \param point2 The second point of the triangle. 3291 \param point3 The third point of the triangle. 3292 \param bounds The rectangular area that encloses the triangle. 3293 \param gradient The gradient pattern to fill the triangle with. 3294 3295 \since Haiku R1 3296*/ 3297 3298 3299/*! 3300 \fn void BView::StrokeLine(BPoint toPoint, ::pattern pattern) 3301 \brief Stroke a line from the current pen location to the point \a toPoint. 3302 3303 \param toPoint The end point of the line. 3304 \param pattern One of the following: 3305 - \c B_SOLID_HIGH 3306 - \c B_SOLID_LOW 3307 - \c B_MIXED_COLORS 3308 3309 \since BeOS R3 3310*/ 3311 3312 3313/*! 3314 \fn void BView::StrokeLine(BPoint start, BPoint end, ::pattern pattern) 3315 \brief Stroke a line from point \a start to point \a end. 3316 3317 \param start The start point of the line. 3318 \param end The end point of the line. 3319 \param pattern One of the following: 3320 - \c B_SOLID_HIGH 3321 - \c B_SOLID_LOW 3322 - \c B_MIXED_COLORS 3323 3324 \since BeOS R3 3325*/ 3326 3327 3328/*! 3329 \fn void BView::StrokeShape(BShape* shape, ::pattern pattern) 3330 \brief Stroke \a shape. 3331 3332 \param shape The \a shape to stroke. 3333 \param pattern One of the following: 3334 - \c B_SOLID_HIGH 3335 - \c B_SOLID_LOW 3336 - \c B_MIXED_COLORS 3337 3338 \since BeOS R5 3339*/ 3340 3341 3342/*! 3343 \fn void BView::FillShape(BShape* shape, ::pattern pattern) 3344 \brief Fill \a shape. 3345 3346 \param shape The \a shape to fill. 3347 \param pattern One of the following: 3348 - \c B_SOLID_HIGH 3349 - \c B_SOLID_LOW 3350 - \c B_MIXED_COLORS 3351 3352 \since BeOS R5 3353*/ 3354 3355 3356/*! 3357 \fn void BView::FillShape(BShape* shape, const BGradient& gradient) 3358 \brief Fill \a shape with the specified \a gradient pattern. 3359 3360 \param shape The \a shape to fill. 3361 \param gradient The gradient pattern to fill the \a shape with. 3362 3363 \since Haiku R1 3364*/ 3365 3366 3367/*! 3368 \fn void BView::BeginLineArray(int32 count) 3369 \brief Begin a line array of up to \a count lines. 3370 3371 This is a more efficient way of drawing a large number of lines than calling 3372 StrokeLine() repeatedly. First call BeginLineArray() to begin drawing lines, 3373 then call AddLine() for each line you wish to draw, and finally call 3374 EndLineArray() to finish the line array and draw the lines. 3375 3376 These methods don't move the current pen location or change the high or low 3377 colors of the view. \a count should be close to the number of lines you wish 3378 to draw and should be below 256 to draw efficiently. 3379 3380 \param count The maximum number of lines in the line array to draw. 3381 3382 \see StrokeLine() 3383 3384 \since BeOS R3 3385*/ 3386 3387 3388/*! 3389 \fn void BView::AddLine(BPoint start, BPoint end, rgb_color color); 3390 \brief Add a line to the line array from point \a pt0 to point \a pt1. 3391 3392 \param start The \a start point of the line. 3393 \param end The \a end point of the line. 3394 \param color The line \a color. 3395 3396 \since BeOS R3 3397*/ 3398 3399 3400/*! 3401 \fn void BView::EndLineArray() 3402 \brief End the line array drawing the lines. 3403 3404 \since BeOS R3 3405*/ 3406 3407 3408/*! 3409 \fn void BView::SetDiskMode(char* filename, long offset) 3410 \brief Unimplemented. 3411 3412 \since Haiku R1 3413*/ 3414 3415 3416/*! 3417 \fn void BView::BeginPicture(BPicture* picture) 3418 \brief Begins sending drawing instructions to \a picture. 3419 3420 The \a BPicture object is cleared and any successive drawing instructions sent 3421 to the view are redirected to \a picture until EndPicture() is called. To 3422 append drawing instructions to a BPicture object without clearing it first 3423 call AppendToPicture() instead. 3424 3425 The view doesn't display anything to the screen while it's recording to \a 3426 picture. Use the DrawPicture() method to render the \a picture. 3427 3428 Only drawing instructions performed directly on the view, not it's child views 3429 are send to the BPicture object and BPicture captures only primitive graphics 3430 operations. The view must be attached to a window for the drawing instruction 3431 to be recorded. Drawing instructions are recorded even if the view is hidden or 3432 resides outside the clipping region or the window is off-screen. 3433 3434 \param picture The BPicture object to record drawing instructions to. 3435 3436 \since BeOS R3 3437*/ 3438 3439 3440/*! 3441 \fn void BView::AppendToPicture(BPicture* picture) 3442 \brief Appends drawing instructions to \a picture without clearing it first. 3443 3444 \param picture The BPicture object to record drawing instructions to. 3445 3446 \since BeOS R3 3447*/ 3448 3449 3450/*! 3451 \fn BPicture* BView::EndPicture() 3452 \brief Ends the drawing instruction recording session and returns the 3453 BPicture object passed to BeginPicture() or AppendToPicture(). 3454 3455 \return The BPicture object passed to BeginPicture() or AppendToPicture(). 3456 3457 \since BeOS R3 3458*/ 3459 3460 3461/*! 3462 \fn void BView::SetViewBitmap(const BBitmap* bitmap, BRect srcRect, 3463 BRect dstRect, uint32 followFlags, uint32 options) 3464 \brief Sets the background \a bitmap of the view. 3465 3466 All drawing to the view occurs over \a bitmap. Any visible regions not 3467 covered by \a bitmap are filled with the current background color. 3468 3469 Once \a bitmap has been passed in and this method returns the caller may 3470 safely delete the object. 3471 3472 \param bitmap The background bitmap to set to the view. 3473 \param srcRect Specifies the area of \a bitmap to use. 3474 \param dstRect Specifies the area of the view to set \a bitmap to. 3475 \param followFlags Specifies the as the view is resized. See the BView 3476 constructor for more details. 3477 \param options Specifies additional view options. The only option currently 3478 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3479 3480 \since BeOS R4 3481*/ 3482 3483 3484/*! 3485 \fn void BView::SetViewBitmap(const BBitmap* bitmap, uint32 followFlags, 3486 uint32 options) 3487 \brief Sets the background \a bitmap of the view. 3488 3489 All drawing to the view occurs over \a bitmap. Any visible regions not 3490 covered by \a bitmap are filled with the current background color. 3491 3492 Once \a bitmap has been passed in and this method returns the caller may 3493 safely delete the object. 3494 3495 \param bitmap The background bitmap to set to the view. 3496 \param followFlags Specifies the as the view is resized. See the BView 3497 constructor for more details. 3498 \param options Specifies additional view options. The only option currently 3499 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3500 3501 \since BeOS R4 3502*/ 3503 3504 3505/*! 3506 \fn void BView::ClearViewBitmap() 3507 \brief Clears the background bitmap of the view if it has one. 3508 3509 \since BeOS R4 3510*/ 3511 3512 3513/*! 3514 \fn status_t BView::SetViewOverlay(const BBitmap* overlay, BRect srcRect, 3515 BRect dstRect, rgb_color* colorKey, uint32 followFlags, uint32 options) 3516 \brief Sets the \a overlay bitmap of the view. 3517 3518 \a colorKey specifies which color pixels in \a overlay are treated as transparent 3519 allowing the pixels of the view to show through. 3520 3521 Once \a overlay has been passed in and this method returns the caller may 3522 safely delete the object. 3523 3524 \param overlay The overlay bitmap to set to the view. 3525 \param srcRect Specifies the area of \a overlay to use. 3526 \param dstRect Specifies the area of the view to set \a overlay to. 3527 \param colorKey The color in \a overlay to treat as transparent. 3528 \param followFlags Specifies the as the view is resized. See the BView 3529 constructor for more details. 3530 \param options Specifies additional view options. The only option currently 3531 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3532 3533 \since BeOS R5 3534*/ 3535 3536 3537/*! 3538 \fn status_t BView::SetViewOverlay(const BBitmap* overlay, 3539 rgb_color* colorKey, uint32 followFlags, uint32 options) 3540 \brief Sets the \a overlay bitmap of the view. 3541 3542 \a colorKey specifies which color pixels in \a overlay are treated as transparent 3543 allowing the pixels of the view to show through. 3544 3545 Once \a overlay has been passed in and this method returns the caller may 3546 safely delete the object. 3547 3548 \param overlay The overlay bitmap to set to the view. 3549 \param colorKey The color in \a overlay to treat as transparent. 3550 \param followFlags Specifies the as the view is resized. See the BView 3551 constructor for more details. 3552 \param options Specifies additional view options. The only option currently 3553 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3554 3555 \since BeOS R5 3556*/ 3557 3558 3559/*! 3560 \fn void BView::ClearViewOverlay() 3561 \brief Clears the overlay bitmap of the view if it has one. 3562 3563 \since BeOS R5 3564*/ 3565 3566 3567/*! 3568 \fn void BView::CopyBits(BRect src, BRect dst) 3569 \brief Copy the bits from the \a src rectangle to the \a dst rectangle in the 3570 view's coordinate system. 3571 3572 If the rectangles are of different sizes than \a src is scaled to fit. \a src 3573 is clipped if a part of \a dst lies outside of the visible region of the view. 3574 Only the visible portions of \a src are copied. 3575 3576 The view must be attached to a window for this method to work. 3577 3578 \param src The source rectangle to copy bits from. 3579 \param dst The destination rectangle to copy bits to. 3580 3581 \since BeOS R3 3582*/ 3583 3584 3585/*! 3586 \fn void BView::DrawPicture(const BPicture* picture) 3587 \brief Draws the \a picture at the view's current pen position. 3588 3589 \param picture The BPicture object to draw. 3590 3591 \since BeOS R3 3592*/ 3593 3594 3595/*! 3596 \fn void BView::DrawPicture(const BPicture* picture, BPoint where) 3597 \brief Draws the \a picture at the location in the view specified by \a where. 3598 3599 \param picture The BPicture object to draw. 3600 \param where The point on the view to draw \a picture. 3601 3602 \since BeOS R3 3603*/ 3604 3605 3606/*! 3607 \fn void BView::DrawPicture(const char* filename, long offset, BPoint where) 3608 \brief Draws the \a picture from the file specified by \a filename offset by 3609 \a offset bytes at the location in the view specified by \a where. 3610 3611 \param filename The filename of the file containing the picture to draw. 3612 \param where The point on the view to draw the picture. 3613 \param offset The number of bytes to offset in the file to find the picture. 3614 3615 \since BeOS R4 3616*/ 3617 3618 3619/*! 3620 \fn void BView::DrawPictureAsync(const BPicture* picture) 3621 \brief Draws the \a picture at the view's current pen position. 3622 3623 \param picture The BPicture object to draw. 3624 3625 \since BeOS R5 3626*/ 3627 3628 3629/*! 3630 \fn void BView::DrawPictureAsync(const BPicture* picture, BPoint where) 3631 \brief Draws the \a picture at the location in the view specified by 3632 \a where. 3633 3634 \param picture The BPicture object to draw. 3635 \param where The point on the view to draw \a picture. 3636 3637 \since BeOS R5 3638*/ 3639 3640 3641/*! 3642 \fn void BView::DrawPictureAsync(const char* filename, long offset, 3643 BPoint where) 3644 \brief Draws the \a picture from the file specified by \a filename offset 3645 by \a offset bytes at the location in the view specified by 3646 \a where. 3647 3648 \param filename The filename of the file containing the picture to draw. 3649 \param where The point on the view to draw the picture. 3650 \param offset The number of bytes to offset in the file to find the 3651 picture. 3652 3653 \since BeOS R5 3654*/ 3655 3656 3657/*! 3658 \fn void BView::Invalidate(BRect invalRect) 3659 \brief Sends a message to App Server to redraw the portion of the view 3660 specified by \a invalRect. 3661 3662 \param invalRect The rectangular area of the view to redraw. 3663 3664 \since BeOS R3 3665*/ 3666 3667 3668/*! 3669 \fn void BView::Invalidate(const BRegion* region) 3670 \brief Sends a message to App Server to redraw the portion of the view 3671 specified by \a region. 3672 3673 \param region The region of the view to redraw. 3674 3675 \since Haiku R1 3676*/ 3677 3678 3679/*! 3680 \fn void BView::Invalidate() 3681 \brief Sends a message to App Server to redraw the view. 3682 3683 \since BeOS R3 3684*/ 3685 3686 3687/*! 3688 \fn void BView::InvertRect(BRect rect) 3689 \brief Inverts the colors within \a rect. 3690 3691 This method is often used to draw a highlighted selection in a view. 3692 3693 \param rect The rectangular area in the view to invert the colors of. 3694 3695 \since BeOS R3 3696*/ 3697 3698 3699//! @} 3700 3701 3702/*! 3703 \name View Hierarchy 3704*/ 3705 3706 3707//! @{ 3708 3709 3710/*! 3711 \fn void BView::AddChild(BView* child, BView* before) 3712 \brief Adds \a child to the view hierarchy immediately before \a before. 3713 3714 A view may only have one parent at a time so \a child must not have already 3715 been added to the view hierarchy. If \a before is \c NULL then \a child is added 3716 to the end of the tree. If the view is attached to a window \a child and all 3717 of its descendent views also become attached to the window invoking an 3718 AttachedToWindow() method on each view. 3719 3720 \param child The child view to add. 3721 \param before The sibling view to add \a child before. 3722 3723 \since BeOS R3 3724*/ 3725 3726 3727/*! 3728 \fn bool BView::AddChild(BLayoutItem* child) 3729 \brief Add the \a child layout item to the view hierarchy. 3730 3731 \param child The child layout item to add. 3732 \return Whether or not \a child was added to the view layout hierarchy. 3733 3734 \since Haiku R1 3735*/ 3736 3737 3738/*! 3739 \fn bool BView::RemoveChild(BView* child) 3740 \brief Removes \a child from the view hierarchy. 3741 3742 \param child The child view to remove. 3743 \return Whether or not \a child was removed from the view hierarchy. 3744 3745 \since BeOS R3 3746*/ 3747 3748 3749/*! 3750 \fn int32 BView::CountChildren() const 3751 \brief Returns the number of child views that this view has. 3752 3753 \return The number of child views. 3754 3755 \since BeOS R3 3756*/ 3757 3758 3759/*! 3760 \fn BView* BView::ChildAt(int32 index) const 3761 \brief Returns a pointer to the child view found at \a index. 3762 3763 \param index The index of the child view to return a pointer of. 3764 3765 \return A pointer to the child view at \a index or \c NULL if not found. 3766 3767 \since BeOS R3 3768*/ 3769 3770 3771/*! 3772 \fn BView* BView::NextSibling() const 3773 \brief Returns a pointer to the next sibling view. 3774 3775 \return A pointer to the next sibling view or \a NULL if not found. 3776 3777 \since BeOS R3 3778*/ 3779 3780 3781/*! 3782 \fn BView* BView::PreviousSibling() const 3783 \brief Returns a pointer to the previous sibling view. 3784 3785 \return A pointer to the previous sibling view or \a NULL if not found. 3786 3787 \since BeOS R3 3788*/ 3789 3790 3791/*! 3792 \fn bool BView::RemoveSelf() 3793 \brief Removes the view and all child views from the view hierarchy. 3794 3795 \returns Whether or not the view was removed from the view hierarchy. 3796 3797 \since BeOS R3 3798*/ 3799 3800 3801/*! 3802 \fn BView* BView::Parent() const 3803 \brief Returns a pointer to the view's parent. 3804 3805 \return A pointer to the parent view or \c NULL if not attached. 3806 3807 \since BeOS R3 3808*/ 3809 3810 3811/*! 3812 \fn BView* BView::FindView(const char* name) const 3813 \brief Returns the view in the view hierarchy with the specified \a name. 3814 3815 \return The view in the view hierarchy with the specified \a name or \c NULL 3816 if not found. 3817 3818 \since BeOS R3 3819*/ 3820 3821 3822//! @} 3823 3824 3825/*! 3826 \name View Frame Alteration 3827 3828 As a view's frame rectangle must be aligned to pixel values all parameters are 3829 rounded to the nearest integer. If the view isn't attached these methods alter the 3830 frame rectangle without triggering FrameMoved(), FrameResized() or Invalidate(). 3831*/ 3832 3833 3834//! @{ 3835 3836 3837/*! 3838 \fn void BView::MoveBy(float deltaX, float deltaY) 3839 \brief Moves the view \a deltaX pixels horizontally and \a deltaY pixels 3840 vertically in the parent view's coordinate system. 3841 3842 \param deltaX The number of pixels to move the view horizontally. 3843 \param deltaY The number of pixels to move the view vertically. 3844 3845 \since BeOS R3 3846*/ 3847 3848 3849/*! 3850 \fn void BView::MoveTo(BPoint where) 3851 \brief Move the view to the location specified by \a where in the parent 3852 view's coordinate system. 3853 3854 \param where The location to move the view to. 3855 3856 \since BeOS R3 3857*/ 3858 3859 3860/*! 3861 \fn void BView::MoveTo(float x, float y) 3862 \brief Move the view to the coordinates specified by \a x in the horizontal 3863 dimension and \a y in the vertical dimension in the parent view's 3864 coordinate system. 3865 3866 \param x The horizontal coordinate to move the view to. 3867 \param y The vertical coordinate to move the view to. 3868 3869 \since BeOS R3 3870*/ 3871 3872 3873/*! 3874 \fn void BView::ResizeBy(float deltaWidth, float deltaHeight) 3875 \brief Resize the view by \a deltaWidth horizontally and \a deltaHeight 3876 vertically without moving the top left corner of the view. 3877 3878 \param deltaWidth The number of pixels to resize the view by horizontally. 3879 \param deltaHeight The number of pixels to resize the view by vertically. 3880 3881 \since BeOS R3 3882*/ 3883 3884 3885/*! 3886 \fn void BView::ResizeTo(float width, float height) 3887 \brief Resize the view to the specified \a width and \a height. 3888 3889 \param width The width to resize the view to. 3890 \param height The height to resize the view to. 3891 3892 \since BeOS R3 3893*/ 3894 3895 3896/*! 3897 \fn void BView::ResizeTo(BSize size) 3898 \brief Resize the view to the dimension specified by \a size. 3899 3900 \param size The \a size to resize the view to. 3901 3902 \since Haiku R1 3903*/ 3904 3905 3906//! @} 3907 3908 3909/*! 3910 \fn status_t BView::GetSupportedSuites(BMessage* data) 3911 \copydoc BHandler::GetSupportedSuites() 3912*/ 3913 3914 3915/*! 3916 \fn BHandler* BView::ResolveSpecifier(BMessage* message, int32 index, 3917 BMessage* specifier, int32 what, const char* property) 3918 \copydoc BHandler::ResolveSpecifier() 3919*/ 3920 3921 3922/*! 3923 \fn status_t BView::Perform(perform_code code, void* _data) 3924 \brief Perform some action. (Internal Method) 3925 3926 The following perform codes are recognized: 3927 - \c PERFORM_CODE_MIN_SIZE: 3928 - \c PERFORM_CODE_MAX_SIZE: 3929 - \c PERFORM_CODE_PREFERRED_SIZE: 3930 - \c PERFORM_CODE_LAYOUT_ALIGNMENT: 3931 - \c PERFORM_CODE_HAS_HEIGHT_FOR_WIDTH: 3932 - \c PERFORM_CODE_GET_HEIGHT_FOR_WIDTH: 3933 - \c PERFORM_CODE_SET_LAYOUT: 3934 - \c PERFORM_CODE_INVALIDATE_LAYOUT: 3935 - \c PERFORM_CODE_DO_LAYOUT: 3936 - \c PERFORM_CODE_GET_TOOL_TIP_AT: 3937 - \c PERFORM_CODE_ALL_UNARCHIVED: 3938 - \c PERFORM_CODE_ALL_ARCHIVED: 3939 3940 \param code The perform code. 3941 \param _data A pointer to store some data. 3942 3943 \returns A status code. 3944 3945 \since Haiku R1 3946*/ 3947 3948 3949/*! 3950 \name Layouting 3951 3952 \note These methods were not available in BeOS R5. 3953*/ 3954 3955 3956//! @{ 3957 3958 3959/*! 3960 \fn BSize BView::MinSize() 3961 \brief Return the minimum size of the view. 3962 3963 \remark This is only meaningful if the view is part of a BLayout. 3964 3965 \return The minimum size of the view as a BSize. 3966 3967 \sa BAbstractLayout::MinSize() 3968 3969 \since Haiku R1 3970*/ 3971 3972 3973/*! 3974 \fn BSize BView::MaxSize() 3975 \brief Return the maximum size of the view. 3976 3977 \remark This is only meaningful if the view is part of a BLayout. 3978 3979 \return The maximum size of the view as a BSize. 3980 3981 \sa BAbstractLayout::MaxSize() 3982 3983 \since Haiku R1 3984*/ 3985 3986 3987/*! 3988 \fn BSize BView::PreferredSize() 3989 \brief Return the preferred size of the view. 3990 3991 \remark This is only meaningful if the view is part of a BLayout. 3992 3993 \return The preferred size of the view as a BSize. 3994 3995 \sa BAbstractLayout::PreferredSize() 3996 3997 \since Haiku R1 3998*/ 3999 4000 4001/*! 4002 \fn void BView::SetExplicitMinSize(BSize size) 4003 \brief Set this view's min size, to be used by MinSize(). 4004 4005 \remark This is only meaningful if the view is part of a BLayout. 4006 4007 \sa BAbstractLayout::SetExplicitMinSize() 4008 4009 \since Haiku R1 4010*/ 4011 4012 4013/*! 4014 \fn void BView::SetExplicitMaxSize(BSize size) 4015 \brief Set this view's max size, to be used by MaxSize(). 4016 4017 \remark This is only meaningful if the view is part of a BLayout. 4018 4019 \sa BAbstractLayout::SetExplicitMaxSize() 4020 4021 \since Haiku R1 4022*/ 4023 4024 4025/*! 4026 \fn void BView::SetExplicitPreferredSize(BSize size) 4027 \brief Set this view's preferred size, to be used by PreferredSize(). 4028 4029 \remark This is only meaningful if the view is part of a BLayout. 4030 4031 \sa BAbstractLayout::SetExplicitPreferredSize() 4032 4033 \since Haiku R1 4034*/ 4035 4036 4037/*! 4038 \fn void BView::SetExplicitAlignment(BAlignment alignment) 4039 \brief Set this view's alignment, to be used by Alignment(). 4040 4041 \remark This is only meaningful if the view is part of a BLayout. 4042 4043 \sa BAbstractLayout::SetExplicitAlignment() 4044 4045 \since Haiku R1 4046*/ 4047 4048 4049/*! 4050 \fn void BView::SetLayout(BLayout* layout) 4051 \brief Sets the \a layout of the view. 4052 4053 \param layout The \a layout to set. 4054 4055 \since Haiku R1 4056*/ 4057 4058 4059/*! 4060 \fn BLayout* BView::GetLayout() const 4061 \brief Get the layout of the view. 4062 4063 \remark This is only meaningful if the view is part of a BLayout. 4064 4065 \returns The layout of the view. 4066 4067 \since Haiku R1 4068*/ 4069 4070 4071/*! 4072 \fn void BView::InvalidateLayout(bool descendants) 4073 \brief Invalidate layout. 4074 4075 \remark This is only meaningful if the view is part of a BLayout. 4076 4077 \param descendants Also invalidate its children views. 4078 4079 \since Haiku R1 4080*/ 4081 4082 4083/*! 4084 \fn void BView::EnableLayoutInvalidation() 4085 \brief Enable layout invalidation. 4086 4087 \remark This is only meaningful if the view is part of a BLayout. 4088 4089 \since Haiku R1 4090*/ 4091 4092 4093/*! 4094 \fn void BView::DisableLayoutInvalidation() 4095 \brief Disable layout invalidation. 4096 4097 \remark This is only meaningful if the view is part of a BLayout. 4098 4099 \since Haiku R1 4100*/ 4101 4102 4103/*! 4104 \fn bool BView::IsLayoutInvalidationDisabled() 4105 \brief Returns whether or not layout invalidation is disabled. 4106 4107 \remark This is only meaningful if the view is part of a BLayout. 4108 4109 \return \c true of layout invalidation is disabled, \c false otherwise. 4110 4111 \since Haiku R1 4112*/ 4113 4114 4115/*! 4116 \fn bool BView::IsLayoutValid() const 4117 \brief Returns whether or not the layout is valid. 4118 4119 \remark This is only meaningful if the view is part of a BLayout. 4120 4121 \brief Returns \c true if the layout is valid, \c false otherwise. 4122 4123 \since Haiku R1 4124*/ 4125 4126 4127/*! 4128 \fn void BView::ResetLayoutInvalidation() 4129 \brief Service call for BView derived classes re-enabling 4130 InvalidateLayout() notifications. 4131 4132 BLayout and BView will avoid calling InvalidateLayout on views that have 4133 already been invalidated, but if the view caches internal layout information 4134 which it updates in methods other than DoLayout(), it has to invoke this 4135 method, when it has done so, since otherwise the information might become 4136 obsolete without the layout noticing. 4137 4138 This is only meaningful if the view is part of a BLayout. 4139 4140 \since Haiku R1 4141*/ 4142 4143 4144/*! 4145 \fn void BView::Layout(bool force) 4146 \brief Layout the view. 4147 4148 \remark This is only meaningful if the view is part of a BLayout. 4149 4150 \param force If \c true layout even if valid. 4151 4152 \since Haiku R1 4153*/ 4154 4155 4156/*! 4157 \fn void BView::Relayout() 4158 \brief Relayout the view. 4159 4160 \remark This is only meaningful if the view is part of a BLayout. 4161 4162 \since Haiku R1 4163*/ 4164 4165 4166/*! 4167 \fn void BView::DoLayout() 4168 \brief Layout view within the layout context. 4169 4170 \remark This is only meaningful if the view is part of a BLayout. 4171 4172 \since Haiku R1 4173*/ 4174 4175 4176//! @} 4177 4178 4179/*! 4180 \name Tool Tips 4181 4182 \note These methods were not available in BeOS R5. 4183*/ 4184 4185 4186//! @{ 4187 4188 4189/*! 4190 \fn void BView::SetToolTip(const char* text) 4191 \brief Set the tool tip of the view to \a text. 4192 4193 \param text The \a text to set the view to or \c NULL or blank to unset. 4194 4195 \since Haiku R1 4196*/ 4197 4198 4199/*! 4200 \fn void BView::SetToolTip(BToolTip* tip) 4201 \brief Set the tool tip of the view to the \a tip object. 4202 4203 \param tip The tool tip object to set the view to or \c NULL to unset. 4204 4205 \since Haiku R1 4206*/ 4207 4208 4209/*! 4210 \fn BToolTip* BView::ToolTip() const 4211 \brief Return the tool tip set to the view or \c NULL if not set. 4212 4213 \return The BToolTip object set to the view. 4214 4215 \since Haiku R1 4216*/ 4217 4218 4219/*! 4220 \fn void BView::ShowToolTip(BToolTip* tip) 4221 \brief Show the tool tip at the current mouse position. 4222 4223 \param tip The BToolTip object to show. 4224 4225 \since Haiku R1 4226*/ 4227 4228 4229/*! 4230 \fn void BView::HideToolTip() 4231 \brief Hide the view's tool tip. 4232 4233 \since Haiku R1 4234*/ 4235 4236 4237/*! 4238 \fn bool BView::GetToolTipAt(BPoint point, BToolTip** _tip) 4239 \brief Point \a _tip with the view's tool tip. 4240 4241 \param point Currently unused. 4242 \param _tip A pointer to a pointer to a BToolTip object to set. 4243 4244 \since Haiku R1 4245*/ 4246 4247 4248//! @} 4249