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 Haiku R1 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 Haiku R1 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 \a width of the view. 870 \param newHeight The new \a 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 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 of 1458 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 This method only works if the BView objects are attached to a window. 1507 1508 \param message Contains data to be dragged and dropped on the destination 1509 view. The caller retains responsibility for this object. 1510 \param dragRect An outline rectangle used in place of a bitmap image set in 1511 the view's coordinate system. 1512 \param replyTo The target set to handle the message sent in reply to the 1513 dragged message. If \c NULL the reply is instead directed to the 1514 BView object that initiated the drag-and-drop session. 1515 1516 \since BeOS R3 1517*/ 1518 1519 1520/*! 1521 \fn void BView::DragMessage(BMessage* message, BBitmap* image, 1522 BPoint offset, BHandler* replyTo) 1523 \brief Initiates a drag-and-drop session of an \a image. 1524 1525 This method only works if the BView objects are attached to a window. 1526 1527 \param message Contains data to be dragged and dropped on the destination 1528 view. The caller retains responsibility for this object. 1529 \param image Bitmap image dragged by the user. The memory used by the bitmap 1530 is freed automatically when the message is dropped. 1531 \param offset The offset to the hotspot within the image in the bitmap's 1532 coordinate system. 1533 \param replyTo The target set to handle the message sent in reply to the 1534 dragged message. If \c NULL the reply is instead directed to the 1535 BView object that initiated the drag-and-drop session. 1536 1537 \since BeOS R3 1538*/ 1539 1540 1541/*! 1542 \fn void BView::DragMessage(BMessage* message, BBitmap* image, 1543 drawing_mode dragMode, BPoint offset, BHandler* replyTo) 1544 \brief Initiates a drag-and-drop session of an \a image with drawing_mode 1545 set by \a dragMode. 1546 1547 This method only works if the BView objects are attached to a window. 1548 1549 \param message Contains data to be dragged and dropped on the destination 1550 view. The caller retains responsibility for this object. 1551 \param image Bitmap image dragged by the user. The memory used by the bitmap 1552 is freed automatically when the message is dropped. 1553 \param dragMode Sets the drawing_mode used to draw the dragged image. Set to 1554 \c B_OP_ALPHA to drag-and-drop partially transparent images. 1555 \param offset The offset to the hotspot within the image in the bitmap's 1556 coordinate system. 1557 \param replyTo The target set to handle the message sent in reply to the 1558 dragged message. If \c NULL the reply is instead directed to the 1559 BView object that initiated the drag-and-drop session. 1560 1561 \since BeOS R5 1562*/ 1563 1564 1565/*! 1566 \fn void BView::GetMouse(BPoint* _location, uint32* _buttons, 1567 bool checkMessageQueue) 1568 \brief Fills out the cursor location and the current state of the mouse 1569 buttons. 1570 1571 The cursor doesn't have to be located within the view for this method to work, 1572 however, the view must be attached to a window. Don't use this method to track 1573 the mouse in your derived view, implement MouseMoved() instead. 1574 1575 \param[out] _location Filled out with the cursor location in the view's 1576 coordinate system. 1577 \param[out] _buttons Filled out with a mask of the following values: 1578 - \c B_PRIMARY_MOUSE_BUTTON 1579 - \c B_SECONDARY_MOUSE_BUTTON 1580 - \c B_TERTIARY_MOUSE_BUTTON 1581 \param checkMessageQueue If \c true pull from any pending MouseMoved() or 1582 MouseUp() events in the message queue top down before filling out 1583 the current mouse cursor state. 1584 1585 \since BeOS R3 1586*/ 1587 1588 1589/*! 1590 \fn void BView::MakeFocus(bool focus) 1591 \brief Makes the view the current focus view of the window or gives up 1592 being the window's focus view. 1593 1594 The focus view handles selections and KeyDown events when the the attached 1595 window is active. There can be only one focus view at a time per window. 1596 1597 When called with \a focus set to \c true this method first calls 1598 MakeFocus() on the previously focused view with \a focus set to 1599 \c false. 1600 1601 The focus doesn't automatically change when MouseDown() is called so calling 1602 MakeFocus() is the only way to make a view the focus view of a window. 1603 Classes derived from BView that can display the current selection, or that 1604 can accept pasted data should call MakeFocus() in their MouseDown() method 1605 to update the focus view of the window on click. 1606 1607 If the view isn't attached to a window this method has no effect. 1608 1609 \param focus \a true to set focus, \a false to remove it. 1610 1611 \since BeOS R3 1612*/ 1613 1614 1615/*! 1616 \fn BScrollBar* BView::ScrollBar(orientation posture) const 1617 \brief Returns the BScrollBar object that has the BView set as its target. 1618 1619 \param posture Either \c B_VERTICAL to get the vertical scroll bar or 1620 \c B_HORIZONTAL to get the horizontal scroll bar. 1621 1622 \returns the Scrollbar object requested or \c NULL if none found. 1623 1624 \see BScrollBar::SetTarget() 1625 1626 \since BeOS R3 1627*/ 1628 1629 1630/*! 1631 \fn void BView::ScrollBy(float deltaX, float deltaY) 1632 \brief Scroll the view by \a deltaX horizontally and \a deltaY vertically. 1633 1634 \param deltaX The amount to scroll horizontally. 1635 \param deltaY The amount to scroll vertically. 1636 1637 \since BeOS R3 1638*/ 1639 1640 1641/*! 1642 \fn void BView::ScrollTo(BPoint where) 1643 \brief Scroll the view to the point specified by \a where. 1644 1645 \param where The location to scroll the view to. 1646 1647 \since BeOS R3 1648*/ 1649 1650 1651/*! 1652 \fn void BView::ScrollWithMouseWheelDelta(BScrollBar* scrollBar, 1653 float delta) 1654 \brief Handle the scroll wheel changing over scrollbars. 1655 1656 - Extract the scrollbar change based on the mouse wheel \a delta into a 1657 protected method of BView. 1658 - The method is called from the MessageReceived() method of BScrollBar. 1659 1660 With this change it is now a bit easier to scroll horizontally around the 1661 system by putting the mouse cursor over a horizontal scrollbar and using 1662 the wheel. 1663 1664 \since Haiku R1 1665*/ 1666 1667 1668/*! 1669 \fn status_t BView::SetEventMask(uint32 mask, uint32 options) 1670 \brief Sets whether or not the view can accept mouse and keyboard 1671 events when not in focus. 1672 1673 If \a mask includes \c B_POINTER_EVENTS then the view will receive mouse 1674 events even when the mouse isn't over the view and if it includes 1675 \c B_KEYBOARD_EVENTS the view will receive keyboard events even if it 1676 isn't in focus. 1677 1678 The \a options mask options are as follows: 1679 - \c B_NO_POINTER_HISTORY Tells App Server to only send the most recent 1680 MouseMoved() event to the view sacrificing some granularity. 1681 - \c B_FULL_POINTER_HISTORY Tells App Server to send all MouseMoved() 1682 events to the view. 1683 1684 \param mask The \a mask of \c B_POINTER_EVENTS and \c B_KEYBOARD_EVENTS 1685 to set. 1686 \param options Sets other event-handling options. 1687 1688 \return \c B_OK if everything went fine or an error code, usually 1689 \c B_ERROR if something went wrong. 1690 1691 \since BeOS R5 1692*/ 1693 1694 1695/*! 1696 \fn uint32 BView::EventMask() 1697 \brief Returns the current event mask. 1698 1699 \return The current event mask as a uint32. 1700 1701 \since BeOS R5 1702*/ 1703 1704 1705/*! 1706 \fn status_t BView::SetMouseEventMask(uint32 mask, uint32 options) 1707 \brief Sets whether or not the view can accept mouse and keyboard 1708 events when not in focus from within MouseDown() until the 1709 following MouseUp() event. 1710 1711 The \a options mask options are as follows: 1712 - \c B_NO_POINTER_HISTORY Tells App Server to send only the most recent 1713 MouseMoved() event to the view sacrificing mouse movement granularity. 1714 - \c B_FULL_POINTER_HISTORY Tells App Server to send all MouseMoved() 1715 events to the view. 1716 - \c B_SUSPEND_VIEW_FOCUS Events normally sent to the focus view are 1717 suppressed. While the mouse is held down, the keyboard is ignored. 1718 The view receiving the MouseDown() messages doesn't have to be the 1719 focus view to suppress focused messages. 1720 - \c B_LOCK_WINDOW_FOCUS Prevents the attached window from losing its 1721 focused state while the mouse is held down, even if the mouse leaves 1722 the bounds of the window. 1723 1724 \param mask The \a mask of \c B_POINTER_EVENTS and \c B_KEYBOARD_EVENTS 1725 to set. 1726 \param options Sets other event-handling options. 1727 1728 \return \c B_OK if everything went fine or an error code, usually 1729 \c B_ERROR if something went wrong. 1730 1731 \since BeOS R5 1732*/ 1733 1734 1735//! @} 1736 1737 1738/*! 1739 \name Graphics State 1740*/ 1741 1742 1743//! @{ 1744 1745 1746/*! 1747 \fn void BView::PushState() 1748 \brief Saves the drawing state to the stack. 1749 1750 The drawing state contains the following elements: 1751 - local and global origins 1752 - local and global scales 1753 - local and global clipping regions 1754 - the current drawing mode 1755 - pen size and location 1756 - the font context 1757 - foreground and background color 1758 - line cap and join modes 1759 - miter limit 1760 - stipple pattern 1761 1762 A new state context is created after PushState() is called with a local scale 1763 at 0, a local origin at (0, 0), and no clipping region. 1764 1765 \since BeOS R3 1766*/ 1767 1768 1769/*! 1770 \fn void BView::PopState() 1771 \brief Restores the drawing state from the stack. 1772 1773 \since BeOS R3 1774*/ 1775 1776 1777/*! 1778 \fn void BView::SetOrigin(BPoint where) 1779 \brief Sets the origin in the view's coordinate system. 1780 1781 \param where The point to set the origin to. 1782 1783 \since BeOS R3 1784*/ 1785 1786 1787/*! 1788 \fn void BView::SetOrigin(float x, float y) 1789 \brief Sets the origin in the view's coordinate system. 1790 1791 \param x The x-coordinate to set the origin to. 1792 \param y The y-coordinate to set the origin to. 1793 1794 \since BeOS R3 1795*/ 1796 1797 1798/*! 1799 \fn BPoint BView::Origin() const 1800 \brief Returns the origin point in the view's coordinate system. 1801 1802 \return The local origin point in the view's coordinate system. 1803 1804 \since BeOS R3 1805*/ 1806 1807 1808/*! 1809 \fn void BView::SetScale(float scale) const 1810 \brief Sets the scale of the coordinate system the view uses for drawing. 1811 1812 The default scale is 1.0. A \a scale value lower than 1.0 reduces the size of 1813 the drawing coordinate system, a \a scale value greater than 1.0 magnifies 1814 the coordinate system; for example, a \a scale value of 0.5 cuts the drawing 1815 drawing area in half moving the drawing closer to the origin while a \a scale 1816 value of 2.0 doubles the drawing area and moving it away from the origin. 1817 1818 Updating the \a scale of view won't update previously drawn elements. 1819 1820 SetScale() calls are not commutative unless you call them across different 1821 drawing states as the following: 1822 1823\code 1824 view->SetScale(2); 1825 view->SetScale(2); 1826 // view's scale is 2 1827 1828 view2->SetScale(2); 1829 view2->PushState(); 1830 view2->SetScale(2); 1831 // view2's scale is 4 1832\endcode 1833 1834 \param scale The scale factor to set. 1835 1836 \since BeOS R3 1837*/ 1838 1839 1840/*! 1841 \fn float BView::Scale() const 1842 \brief Return the current drawing scale. 1843 1844 \return The current drawing scale. 1845 1846 \since BeOS R3 1847*/ 1848 1849 1850/*! 1851 \fn void BView::SetLineMode(cap_mode lineCap, join_mode lineJoin, 1852 float miterLimit) 1853 \brief Set line mode to use PostScript-style line cap and join modes. 1854 1855 \a lineCap determines the shape of the endpoints of stroked paths while 1856 \a lineJoin determines the shape of the corners where two lines meet. 1857 1858 The default miter limit is 10.0 which gives an angle of 11.478341°. 1859 1860 \param lineCap One of the following: 1861 - \c B_ROUND_CAP A semicircle with diameter of line width is drawn at the 1862 endpoint. 1863 - \c B_BUTT_CAP A straight edge is drawn without extending beyond the endpoint. 1864 - \c B_SQUARE_CAP A straight edge is drawn extending past the endpoint by half 1865 the line width. 1866 \param lineJoin One of the following: 1867 - \c B_ROUND_JOIN Same as \c B_ROUND_CAP but for a join. 1868 - \c B_MITER_JOIN The lines are extended until they meet. If angle that they 1869 meet at is greater than the 2*arcsin(1/\a miterLimit) than a bevel join 1870 is used instead. 1871 - \c B_BEVEL_JOIN The area between the caps is filled with a triangle. 1872 - \c B_BUTT_JOIN Same as \c B_BUTT_CAP but for a join. 1873 - \c B_SQUARE_JOIN Same as \c B_SQUARE_CAP but for a join. 1874 \param miterLimit Sets the cut off angle before a miter join becomes a bevel 1875 join calculated by 2*arcsin(1/\a miterLimit). 1876 1877 \since BeOS R3 1878*/ 1879 1880 1881/*! 1882 \fn join_mode BView::LineJoinMode() const 1883 \brief Returns the current line join mode. 1884 1885 \return The current line join mode set to the view. 1886 1887 \since BeOS R3 1888*/ 1889 1890 1891/*! 1892 \fn cap_mode BView::LineCapMode() const 1893 \brief Returns the current line cap mode. 1894 1895 \return The current line cap mode set to the view. 1896 1897 \since BeOS R3 1898*/ 1899 1900 1901/*! 1902 \fn float BView::LineMiterLimit() const 1903 \brief Returns the miter limit used for \c B_MITER_JOIN join mode. 1904 1905 \return The current miter limit set to the view. 1906 1907 \since BeOS R3 1908*/ 1909 1910 1911/*! 1912 \fn void BView::SetDrawingMode(drawing_mode mode) 1913 \brief Sets the drawing mode of the view. 1914 1915 The default drawing mode is \c B_OP_COPY. 1916 1917 \param mode Set to one of the following: 1918 - \c B_OP_COPY 1919 - \c B_OP_OVER 1920 - \c B_OP_ERASE 1921 - \c B_OP_INVERT 1922 - \c B_OP_SELECT 1923 - \c B_OP_ALPHA 1924 - \c B_OP_MIN 1925 - \c B_OP_MAX 1926 - \c B_OP_ADD 1927 - \c B_OP_SUBTRACT 1928 - \c B_OP_BLEND 1929 1930 \since BeOS R3 1931*/ 1932 1933 1934/*! 1935 \fn drawing_mode BView::DrawingMode() const 1936 \brief Return the current drawing_mode. 1937 1938 \return The current drawing_mode. 1939 1940 \since BeOS R3 1941*/ 1942 1943 1944/*! 1945 \fn void BView::SetBlendingMode(source_alpha srcAlpha, 1946 alpha_function alphaFunc) 1947 \brief Set the blending mode which controls how transparency is used. 1948 1949 \param srcAlpha Set to one of the following: 1950 - \c B_CONSTANT_ALPHA Use the high color's alpha channel. 1951 - \c B_PIXEL_ALPHA Use the alpha value of each pixel when drawing a bitmap. 1952 \param alphaFunc Set to one of the following: 1953 - \c B_ALPHA_OVERLAY Used for drawing a image with transparency over an opaque 1954 background. 1955 - \c B_ALPHA_COMPOSITE Used to composite two or more transparent images 1956 together offscreen to produce a new image drawn using 1957 \c B_ALPHA_OVERLAY mode. 1958 1959 \since BeOS R5 1960*/ 1961 1962 1963/*! 1964 \fn void BView::GetBlendingMode(source_alpha* srcAlpha, 1965 alpha_function* alphaFunc) const 1966 \brief Fill out \a srcAlpha and \a alphaFunc with the alpha mode and 1967 alpha function of the view. 1968 1969 \param[out] srcAlpha The alpha mode to fill out. 1970 \param[out] alphaFunc The alpha function to fill out. 1971 1972 \since BeOS R5 1973*/ 1974 1975 1976/*! 1977 \fn void BView::MovePenTo(BPoint point) 1978 \brief Move the pen to \a point in the view's coordinate system. 1979 1980 \param point the location to move the pen to. 1981 1982 \since BeOS R3 1983*/ 1984 1985 1986/*! 1987 \fn void BView::MovePenTo(float x, float y) 1988 \brief Move the pen to the point specified by \a x and \a y in the view's 1989 coordinate system. 1990 1991 \param x The horizontal coordinate to move the pen to. 1992 \param y The vertical coordinate to move the pen to. 1993 1994 \since BeOS R3 1995*/ 1996 1997 1998/*! 1999 \fn void BView::MovePenBy(float x, float y) 2000 \brief Move the pen by \a x pixels horizontally and \a y pixels vertically. 2001 2002 \param x The number of pixels to move the pen horizontally. 2003 \param y The number of pixels to move the pen vertically. 2004 2005 \since BeOS R3 2006*/ 2007 2008 2009/*! 2010 \fn BPoint BView::PenLocation() const 2011 \brief Return the current pen location as a BPoint object. 2012 2013 \return The current pen location in the view's coordinate system. 2014 2015 \sa MovePenTo(BPoint) 2016 \sa MovePenTo(float, float) 2017 \sa MovePenBy(float, float) 2018 2019 \since BeOS R3 2020*/ 2021 2022 2023/*! 2024 \fn void BView::SetPenSize(float size) 2025 \brief Set the pen size to \a size. 2026 2027 \param size The pen size to set. 2028 2029 \since BeOS R3 2030*/ 2031 2032 2033/*! 2034 \fn float BView::PenSize() const 2035 \brief Return the current pen size. 2036 2037 \return The current pen size as a float. 2038 2039 \sa SetPenSize() 2040 2041 \since BeOS R3 2042*/ 2043 2044 2045/*! 2046 \fn void BView::SetHighColor(rgb_color color) 2047 \brief Set the high color of the view. 2048 2049 \param color The color to set. 2050 2051 \since BeOS R3 2052*/ 2053 2054 2055/*! 2056 \fn void BView::SetHighColor(uchar red, uchar green, uchar blue, 2057 uchar alpha) 2058 \brief Set the high color of the view. 2059 2060 \param red The \a red component of the high color. 2061 \param green The \a green component of the high color. 2062 \param blue The \a blue component of the high color. 2063 \param alpha The \a alpha component of the high color. 2064 2065 \since BeOS R3 2066*/ 2067 2068 2069/*! 2070 \fn rgb_color BView::HighColor() const 2071 \brief Return the current high color. 2072 2073 \return The current high color as an rgb_color struct. 2074 2075 \sa SetHighColor(rgb_color) 2076 \sa SetHighColor(uchar, uchar, uchar, uchar) 2077 2078 \since BeOS R3 2079*/ 2080 2081 2082/*! 2083 \fn void BView::SetLowColor(rgb_color color) 2084 \brief Set the low color of the view. 2085 2086 \param color The color to set. 2087 2088 \since BeOS R3 2089*/ 2090 2091 2092/*! 2093 \fn void BView::SetLowColor(uchar red, uchar green, uchar blue, uchar alpha) 2094 \brief Set the low color of the view. 2095 2096 \param red The \a red component of the low color. 2097 \param green The \a green component of the low color. 2098 \param blue The \a blue component of the low color. 2099 \param alpha The \a alpha component of the low color. 2100 2101 \since BeOS R3 2102*/ 2103 2104 2105/*! 2106 \fn rgb_color BView::LowColor() const 2107 \brief Return the current low color. 2108 2109 \return The current low color as an rgb_color struct. 2110 2111 \sa SetLowColor(rgb_color) 2112 \sa SetLowColor(uchar, uchar, uchar, uchar) 2113 2114 \since BeOS R3 2115*/ 2116 2117 2118/*! 2119 \fn void BView::SetViewColor(rgb_color color) 2120 \brief Set the view color of the view. 2121 2122 \param color The color to set. 2123 2124 \since BeOS R3 2125*/ 2126 2127 2128/*! 2129 \fn void BView::SetViewColor(uchar red, uchar green, uchar blue, 2130 uchar alpha) 2131 \brief Set the view color of the view. 2132 2133 \param red The \a red component of the view color. 2134 \param green The \a green component of the view color. 2135 \param blue The \a blue component of the view color. 2136 \param alpha The \a alpha component of the view color. 2137 2138 \since BeOS R3 2139*/ 2140 2141 2142/*! 2143 \fn rgb_color BView::ViewColor() const 2144 \brief Return the current view color. 2145 2146 \return The current view color as an rgb_color struct. 2147 2148 \sa SetViewColor(rgb_color) 2149 \sa SetViewColor(uchar, uchar, uchar, uchar) 2150 2151 \since BeOS R3 2152*/ 2153 2154 2155/*! 2156 \fn void BView::ForceFontAliasing(bool enable) 2157 \brief Turn anti-aliasing on and off when printing. 2158 2159 Typically want to turn font anti-aliasing off when printing by passing 2160 \c true to this method and then turn it on again by passing in \c false. 2161 2162 This method does not affect characters drawn to the screen. 2163 2164 \param enable If \c true turn off anti-aliasing, if \c false turn on 2165 anti-aliasing. 2166 2167 \since BeOS R5 2168*/ 2169 2170 2171/*! 2172 \fn void BView::SetFont(const BFont* font, uint32 mask) 2173 \brief Set the font of the view. 2174 2175 By passing \c B_FONT_ALL to the \a mask parameter as is the default all font 2176 properties from \a font are set on the view. 2177 2178 \param font A pointer to a BFont object to set. 2179 \param mask A mask of the following values to determine what font properties to set: 2180 - \c B_FONT_FAMILY_AND_STYLE 2181 - \c B_FONT_SPACING 2182 - \c B_FONT_SIZE 2183 - \c B_FONT_ENCODING 2184 - \c B_FONT_SHEAR 2185 - \c B_FONT_FACE 2186 - \c B_FONT_ROTATION 2187 - \c B_FONT_FLAGS 2188 2189 \since BeOS R3 2190*/ 2191 2192 2193/*! 2194 \fn void BView::GetFont(BFont* font) const 2195 \brief Fill out \a font with the font set to the view. 2196 2197 \param[out] font The BFont object to fill out. 2198 2199 \since BeOS R3 2200*/ 2201 2202 2203/*! 2204 \fn void BView::GetFontHeight(font_height* height) const 2205 \brief Fill out the font_height struct with the view font. 2206 2207 \param[out] height The font_height struct to fill out. 2208 2209 \since BeOS R3 2210*/ 2211 2212 2213/*! 2214 \fn void BView::SetFontSize(float size) 2215 \brief Set the size of the view's font to \a size. 2216 2217 \param size The font size to set to the view in points. 2218 2219 \since BeOS R3 2220*/ 2221 2222 2223/*! 2224 \fn float BView::StringWidth(const char* string) const 2225 \brief Return the width of \a string set in the font of the view. 2226 2227 \param string The \a string to get the width of. 2228 2229 \return The width of the string in the view's font as a float. 2230 2231 \since BeOS R3 2232*/ 2233 2234 2235/*! 2236 \fn float BView::StringWidth(const char* string, int32 length) const 2237 \brief Return the width of \a string set in the font of the view up to 2238 \a length characters. 2239 2240 \param string The \a string to get the width of. 2241 \param length The maximum number of characters in \a string to consider. 2242 2243 \return The width of the string in the view's font as a float. 2244 2245 \since BeOS R3 2246*/ 2247 2248 2249/*! 2250 \fn void BView::GetStringWidths(char* stringArray[], int32 lengthArray[], 2251 int32 numStrings, float widthArray[]) const 2252 \brief Fill out widths of the strings in \a stringArray set in the font 2253 of the view into \a widthArray. 2254 2255 \param stringArray The array of strings to get the lengths of. 2256 \param lengthArray The number of characters of the strings in \a stringArray 2257 to consider. 2258 \param numStrings The number of strings in \a stringArray. 2259 \param widthArray The array to store the widths of the strings in 2260 \a stringArray. 2261 2262 \since BeOS R3 2263*/ 2264 2265 2266/*! 2267 \fn void BView::TruncateString(BString* string, uint32 mode, float width) const 2268 \brief Truncate \a string with truncation mode \a mode so that it is no wider 2269 than \a width set in the view's font. 2270 2271 When the string is truncated the missing characters are replaced by a 2272 horizontal ellipses. 2273 2274 \param string The string to truncate in place. 2275 \param mode The truncation mode to use, one of the following: 2276 - \c B_TRUNCATE_BEGINNING Truncate from the beginning of the string. 2277 - \c B_TRUNCATE_MIDDLE Truncate from the middle of the string. 2278 - \c B_TRUNCATE_END Truncate from the end of the string. 2279 - \c B_TRUNCATE_SMART Truncate from anywhere based on the string content. 2280 Not currently implemented. 2281 \param width The maximum width to truncate the string to. 2282 2283 \since BeOS R5 2284*/ 2285 2286 2287/*! 2288 \fn void BView::ClipToPicture(BPicture* picture, BPoint where, bool sync) 2289 \brief Intersects the current clipping region of the view with the pixels 2290 of \a picture. 2291 2292 BPicture instances are resolution independent, \a picture is effectively 2293 drawn at the view's resolution and the bitmap produced is used to modify the 2294 clipping region. 2295 2296 The pixels that are at least partially opaque are the ones drawn by 2297 \a picture. 2298 2299 \param picture The BPicture object to intersect with. 2300 \param where Offset in the view's coordinate system. 2301 \param sync If \c false, this method will execute asynchronously. 2302 2303 \since BeOS R5 2304*/ 2305 2306 2307/*! 2308 \fn void BView::ClipToInversePicture(BPicture* picture, BPoint where, 2309 bool sync) 2310 \brief Intersects the current clipping region of the view with the pixels 2311 outside of \a picture. 2312 2313 \param picture The BPicture object to intersect with. 2314 \param where Offset in the view's coordinate system. 2315 \param sync If \c false, this method will execute asynchronously. 2316 2317 \see ClipToPicture() 2318 2319 \since BeOS R5 2320*/ 2321 2322 2323/*! 2324 \fn void BView::GetClippingRegion(BRegion* region) const 2325 \brief Fill out \a region with the view's clipping region. 2326 2327 \param[out] region The BRegion object to fill out. 2328 2329 Get the current clipping region, which is an intersection of the view 2330 visible region on screen (which depends on the view bounds, any child view 2331 hiding parts of it, and overlapping windows) and the constrained clipping 2332 regions set by calls to ConstrainClippingRegion() in the current stack of 2333 drawing states. 2334 2335 \since BeOS R3 2336*/ 2337 2338 2339/*! 2340 \fn void BView::ConstrainClippingRegion(BRegion* region) 2341 \brief Set the clipping region the \a region restricting the area that the 2342 view can draw in. 2343 2344 The Application Server keeps track of the clipping region for each view 2345 attached to a window so that the view can't draw outside of it, 2346 consequently this method works only for views that are attached to a window. 2347 2348 The default clipping region contains the visible area of the view. By 2349 passing a region to this method the clipping area is further restricted. 2350 Passing in \c NULL resets the clipping region back to the default. 2351 2352 Calls to ConstrainClippingRegion() are not cumulative, each time this 2353 method is called it replaces the old clipping region. However, clipping 2354 regions from previous states are intersected to compute the effective 2355 clipping. 2356 2357 Region-based clipping is not affected by the view transform. If you need to 2358 constrain drawing to a transformed region, use ClipToPicture() and 2359 FillRegion() instead. 2360 2361 \param region The region to set the clipping region to or \c NULL 2362 to reset to default. 2363 2364 \since BeOS R3 2365*/ 2366 2367 2368//! @} 2369 2370 2371/*! 2372 \name Drawing Related 2373 2374 The view must be attached to the window for these methods to work unless 2375 otherwise stated. Notes on specific methods are provided below: 2376 2377 DrawBitmap() 2378 2379 If the the image is bigger than the destination rectangle, it is scaled to fit. 2380 2381 The asynchronous versions pass the image to Application Server and return 2382 immediately. 2383 2384 This can be more efficient in some cases for example to draw several bitmaps 2385 at once and then call Sync() to tell Application Server to wait for them all 2386 to finish drawing rather than waiting for each one to draw. 2387 2388 DrawPicture() 2389 2390 The asynchronous versions pass the picture to Application Server and return 2391 immediately. 2392 2393 This can be more efficient in some cases for example to draw several pictures 2394 at once and then call Sync() to tell Application Server to wait for them all 2395 to finish drawing rather than waiting for each one to draw. 2396 2397 DrawPicture() doesn't alter the graphics state of the view nor do changes to 2398 the graphics state of the view alter the BPicture object. What the picture 2399 will look like depends on the graphics parameters that were in effect when the 2400 picture was recorded. 2401 2402 DrawString() 2403 2404 The \a string is drawn in the view's current font and is modified by 2405 the other parameters of the font such as it's direction (left-to-right or 2406 right-to-left), rotation, spacing, shear, etc. The \a string is always drawn 2407 left to right even if it's text direction is set to right-to-left mode. 2408 2409 Drawing a string is fastest in \c B_OP_COPY mode and anti-aliasing can 2410 produce undesirable effects when a string is draw in other modes, especially 2411 if the string is drawn in the same location repeatedly. 2412 2413 DrawString() doesn't erase before drawing. 2414*/ 2415 2416 2417//! @{ 2418 2419 2420/*! 2421 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect bitmapRect, 2422 BRect viewRect, uint32 options) 2423 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2424 2425 \param bitmap The bitmap to draw onto the view. 2426 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2427 coordinate system. 2428 \param viewRect The area in the view's coordinate system to draw the 2429 bitmap in. 2430 \param options ?? 2431 2432 \since Haiku R1 2433*/ 2434 2435 2436/*! 2437 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect bitmapRect, 2438 BRect viewRect) 2439 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2440 2441 \param bitmap The bitmap to draw onto the view. 2442 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2443 coordinate system. 2444 \param viewRect The area in the view's coordinate system to draw the 2445 bitmap in. 2446 2447 \since BeOS R3 2448*/ 2449 2450 2451/*! 2452 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BRect viewRect) 2453 \brief Draws \a bitmap on the view within \a viewRect asynchronously. 2454 2455 \param bitmap The bitmap to draw onto the view. 2456 \param viewRect The area in the view's coordinate system to draw the 2457 bitmap in. 2458 2459 \since BeOS R3 2460*/ 2461 2462 2463/*! 2464 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap, BPoint where) 2465 \brief Draws \a bitmap on the view offset by \a where asynchronously. 2466 2467 \param bitmap The bitmap to draw onto the view. 2468 \param where The location to draw the bitmap in the view's coordinate system. 2469 2470 \since BeOS R3 2471*/ 2472 2473 2474/*! 2475 \fn void BView::DrawBitmapAsync(const BBitmap* bitmap) 2476 \brief Draws \a bitmap on the view asynchronously. 2477 2478 \param bitmap The bitmap to draw onto the view. 2479 2480 \since BeOS R3 2481*/ 2482 2483 2484/*! 2485 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect bitmapRect, 2486 BRect viewRect, uint32 options) 2487 \brief brief Draws \a bitmap on the view within \a viewRect. 2488 2489 \param bitmap The bitmap to draw onto the view. 2490 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2491 coordinate system. 2492 \param viewRect The area in the view's coordinate system to draw the 2493 bitmap in. 2494 \param options ?? 2495 2496 \since Haiku R1 2497*/ 2498 2499 2500/*! 2501 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect bitmapRect, 2502 BRect viewRect) 2503 \brief Draws \a bitmap on the view within \a viewRect. 2504 2505 \param bitmap The bitmap to draw onto the view. 2506 \param bitmapRect The portion of the bitmap to draw in the bitmap's 2507 coordinate system. 2508 \param viewRect The area in the view's coordinate system to draw the 2509 bitmap in. 2510 2511 \since BeOS R3 2512*/ 2513 2514 2515/*! 2516 \fn void BView::DrawBitmap(const BBitmap* bitmap, BRect viewRect) 2517 \brief Draws \a bitmap on the view within \a viewRect. 2518 2519 \param bitmap The bitmap to draw onto the view. 2520 \param viewRect The area in the view's coordinate system to draw the 2521 bitmap in. 2522 2523 \since BeOS R3 2524*/ 2525 2526 2527/*! 2528 \fn void BView::DrawBitmap(const BBitmap* bitmap, BPoint where) 2529 \brief Draws \a bitmap on the view offset by \a where. 2530 2531 \param bitmap The bitmap to draw onto the view. 2532 \param where The location to draw the bitmap in the view's coordinate system. 2533 2534 \since BeOS R3 2535*/ 2536 2537 2538/*! 2539 \fn void BView::DrawBitmap(const BBitmap* bitmap) 2540 \brief Draws \a bitmap on the view. 2541 2542 \param bitmap The bitmap to draw onto the view. 2543 2544 \since BeOS R3 2545*/ 2546 2547 2548/*! 2549 \fn void BView::DrawChar(char c) 2550 \brief Draws character \a c onto to the view at the current pen position. 2551 2552 The character is drawn in the view's current font. 2553 2554 \param c The character to draw. 2555 2556 \since BeOS R3 2557*/ 2558 2559 2560/*! 2561 \fn void BView::DrawChar(char c, BPoint location) 2562 \brief Draws character \a c at the specified \a location in the view. 2563 2564 The character is drawn in the view's current font. 2565 2566 \param c The character to draw. 2567 \param location The location in the view to draw the character. 2568 2569 \since BeOS R3 2570*/ 2571 2572 2573/*! 2574 \fn void BView::DrawString(const char* string, escapement_delta* delta) 2575 \brief Draw \a string onto the view at the current pen position. 2576 2577 \param string The string to draw. 2578 \param delta Adds additional width to each character according to the 2579 following fields: 2580 - nonspace(float) The amount of width to add to characters with visible 2581 glyphs. 2582 - space(float) The amount of width to add to characters with escapements 2583 but don't have visible glyphs. 2584 2585 \since BeOS R3 2586*/ 2587 2588 2589/*! 2590 \fn void BView::DrawString(const char* string, BPoint location, 2591 escapement_delta* delta) 2592 \brief Draw \a string onto the view at the specified \a location in the view. 2593 2594 \param string The string to draw. 2595 \param location The location in the view to draw the string. 2596 \param delta Adds additional width to each character according to the 2597 following fields: 2598 - nonspace(float) The amount of width to add to characters with visible 2599 glyphs. 2600 - space(float) The amount of width to add to characters with escapements 2601 but don't have visible glyphs. 2602 2603 \since BeOS R3 2604*/ 2605 2606 2607/*! 2608 \fn void BView::DrawString(const char* string, int32 length, 2609 escapement_delta* delta) 2610 \brief Draw \a string up to \a length characters onto the view at the current 2611 pen position. 2612 2613 \param string The string to draw. 2614 \param length The maximum number of characters in \a string to draw. 2615 \param delta Adds additional width to each character according to the 2616 following fields: 2617 - nonspace(float) The amount of width to add to characters with visible 2618 glyphs. 2619 - space(float) The amount of width to add to characters with escapements 2620 but don't have visible glyphs. 2621 2622 \since BeOS R3 2623*/ 2624 2625 2626/*! 2627 \fn void BView::DrawString(const char* string, int32 length, BPoint location, 2628 escapement_delta* delta) 2629 \brief Draw \a string up to \a length characters onto the view at the 2630 specified \a location in the view. 2631 2632 \param string The string to draw. 2633 \param length The maximum number of characters in \a string to draw. 2634 \param location The location in the view to draw the string. 2635 \param delta Adds additional width to each character according to the 2636 following fields: 2637 - nonspace(float) The amount of width to add to characters with visible 2638 glyphs. 2639 - space(float) The amount of width to add to characters with escapements 2640 but don't have visible glyphs. 2641 2642 \since BeOS R3 2643*/ 2644 2645 2646/*! 2647 \fn void BView::DrawString(const char* string, const BPoint* locations, 2648 int32 locationCount) 2649 \brief Draw \a string \a locationCount times at the specified \a locations. 2650 2651 \param string The string to draw. 2652 \param locations A pointer to an array of BPoint objects to draw the string. 2653 \param locationCount The number of elements in \a locations. 2654 2655 \since Haiku R1 2656*/ 2657 2658 2659/*! 2660 \fn void BView::DrawString(const char* string, int32 length, 2661 const BPoint* locations, int32 locationCount) 2662 \brief Draw \a string up to \a length characters \a locationCount times at the 2663 specified \a locations. 2664 2665 \param string The string to draw. 2666 \param length The maximum number of characters in \a string to draw. 2667 \param locations A pointer to an array of BPoint objects to draw the string. 2668 \param locationCount The number of elements in \a locations. 2669 2670 \since Haiku R1 2671*/ 2672 2673 2674/*! 2675 \fn void BView::StrokeEllipse(BPoint center, float xRadius, float yRadius, 2676 ::pattern pattern) 2677 \brief Stroke the outline of an ellipse starting at \a center with a 2678 horizontal radius of \a xRadius and a vertical radius of \a yRadius. 2679 2680 \param center The center point. 2681 \param xRadius The horizontal radius. 2682 \param yRadius The vertical radius. 2683 \param pattern One of the following: 2684 - \c B_SOLID_HIGH 2685 - \c B_SOLID_LOW 2686 - \c B_MIXED_COLORS 2687 2688 \since BeOS R3 2689*/ 2690 2691 2692/*! 2693 \fn void BView::StrokeEllipse(BRect rect, ::pattern pattern) 2694 \brief Stroke the outline of an ellipse inscribed within \a rect. 2695 2696 \param rect The area within which to inscribe the shape. 2697 \param pattern One of the following: 2698 - \c B_SOLID_HIGH 2699 - \c B_SOLID_LOW 2700 - \c B_MIXED_COLORS 2701 2702 \since BeOS R3 2703*/ 2704 2705 2706/*! 2707 \fn void BView::FillEllipse(BPoint center, float xRadius, float yRadius, 2708 ::pattern pattern) 2709 \brief Fill an ellipse starting at \a center with a horizontal radius 2710 of \a xRadius and a vertical radius of \a yRadius. 2711 2712 \param center The center point. 2713 \param xRadius The horizontal radius. 2714 \param yRadius The vertical radius. 2715 \param pattern One of the following: 2716 - \c B_SOLID_HIGH 2717 - \c B_SOLID_LOW 2718 - \c B_MIXED_COLORS 2719 2720 \since BeOS R3 2721*/ 2722 2723 2724/*! 2725 \fn void BView::FillEllipse(BRect rect, ::pattern pattern) 2726 \brief Fill an ellipse inscribed within \a rect. 2727 2728 \param rect The area within which to inscribe the shape. 2729 \param pattern One of the following: 2730 - \c B_SOLID_HIGH 2731 - \c B_SOLID_LOW 2732 - \c B_MIXED_COLORS 2733 2734 \since BeOS R3 2735*/ 2736 2737 2738/*! 2739 \fn void BView::FillEllipse(BPoint center, float xRadius, float yRadius, 2740 const BGradient& gradient) 2741 \brief Fill an ellipse with the specified \a gradient pattern starting at 2742 \a center with a horizontal radius of \a xRadius and a vertical radius 2743 of \a yRadius. 2744 2745 \param center The center point. 2746 \param xRadius The horizontal radius. 2747 \param yRadius The vertical radius. 2748 \param gradient The gradient pattern to fill the ellipse with. 2749 2750 \since Haiku R1 2751*/ 2752 2753 2754/*! 2755 \fn void BView::FillEllipse(BRect rect, const BGradient& gradient) 2756 \brief Fill an ellipse with the specified \a gradient pattern inscribed within 2757 \a rect. 2758 2759 \param rect The area within which to inscribe the shape. 2760 \param gradient The gradient pattern to fill the ellipse with. 2761 2762 \since Haiku R1 2763*/ 2764 2765 2766/*! 2767 \fn void BView::StrokeArc(BPoint center, float xRadius, float yRadius, 2768 float startAngle, float arcAngle, ::pattern pattern) 2769 \brief Stroke the outline of an arc starting at \a center with a 2770 horizontal radius of \a xRadius and a vertical radius of \a yRadius 2771 starting at \a startAngle and drawing \a arcAngle degrees. 2772 2773 \param center The center point. 2774 \param xRadius The horizontal radius. 2775 \param yRadius The vertical radius. 2776 \param startAngle The angle to begin drawing at. 2777 \param arcAngle The number of degrees of the arc to draw. 2778 \param pattern One of the following: 2779 - \c B_SOLID_HIGH 2780 - \c B_SOLID_LOW 2781 - \c B_MIXED_COLORS 2782 2783 \since BeOS R3 2784*/ 2785 2786 2787/*! 2788 \fn void BView::StrokeArc(BRect rect, float startAngle, float arcAngle, 2789 ::pattern pattern) 2790 \brief Stroke the outline of an arc inscribed within \a rect starting at 2791 \a startAngle and drawing \a arcAngle degrees. 2792 2793 \param rect The area within which to inscribe the shape. 2794 \param startAngle The angle to begin drawing at. 2795 \param arcAngle The number of degrees of the arc to draw. 2796 \param pattern One of the following: 2797 - \c B_SOLID_HIGH 2798 - \c B_SOLID_LOW 2799 - \c B_MIXED_COLORS 2800 2801 \since BeOS R3 2802*/ 2803 2804 2805/*! 2806 \fn void BView::FillArc(BPoint center, float xRadius, float yRadius, 2807 float startAngle, float arcAngle, ::pattern pattern) 2808 \brief Fill an arc starting at \a center with a horizontal radius of 2809 \a xRadius and a vertical radius of \a yRadius starting at 2810 \a startAngle and drawing \a arcAngle degrees. 2811 2812 \param center The center point. 2813 \param xRadius The horizontal radius. 2814 \param yRadius The vertical radius. 2815 \param startAngle The angle to begin drawing at. 2816 \param arcAngle The number of degrees of the arc to draw. 2817 \param pattern One of the following: 2818 - \c B_SOLID_HIGH 2819 - \c B_SOLID_LOW 2820 - \c B_MIXED_COLORS 2821 2822 \since BeOS R3 2823*/ 2824 2825 2826/*! 2827 \fn void BView::FillArc(BPoint center, float xRadius, float yRadius, 2828 float startAngle, float arcAngle, const BGradient& gradient) 2829 \brief Fill an arc with the specified \a gradient pattern starting at 2830 \a center with a horizontal radius of \a xRadius and a vertical 2831 radius of \a yRadius starting at \a startAngle and drawing 2832 \a arcAngle degrees. 2833 2834 \param center The center point. 2835 \param xRadius The horizontal radius. 2836 \param yRadius The vertical radius. 2837 \param startAngle The angle to begin drawing at. 2838 \param arcAngle The number of degrees of the arc to draw. 2839 \param gradient The gradient pattern to fill the arc with. 2840 2841 \since Haiku R1 2842*/ 2843 2844 2845/*! 2846 \fn void BView::FillArc(BRect rect, float startAngle, float arcAngle, 2847 ::pattern pattern) 2848 \brief Fill an arc inscribed within \a rect starting at startAngle and 2849 drawing \a arcAngle degrees. 2850 2851 \param rect The area within which to inscribe the shape. 2852 \param startAngle The angle to begin drawing at. 2853 \param arcAngle The number of degrees of the arc to draw. 2854 \param pattern One of the following: 2855 - \c B_SOLID_HIGH 2856 - \c B_SOLID_LOW 2857 - \c B_MIXED_COLORS 2858 2859 \since BeOS R3 2860*/ 2861 2862 2863/*! 2864 \fn void BView::FillArc(BRect rect, float startAngle, float arcAngle, 2865 const BGradient& gradient) 2866 \brief Fill an arc with the specified \a gradient pattern inscribed within 2867 \a rect starting at startAngle and drawing \a arcAngle degrees. 2868 2869 \param rect The area within which to inscribe the shape. 2870 \param startAngle The angle to begin drawing at. 2871 \param arcAngle The number of degrees of the arc to draw. 2872 \param gradient The gradient pattern to fill the arc with. 2873 2874 \since Haiku R1 2875*/ 2876 2877 2878/*! 2879 \fn void BView::StrokeBezier(BPoint* controlPoints, ::pattern pattern) 2880 \brief Stroke a bezier curve. 2881 2882 \param controlPoints The list of points that form the bezier curve. 2883 \param pattern One of the following: 2884 - \c B_SOLID_HIGH 2885 - \c B_SOLID_LOW 2886 - \c B_MIXED_COLORS 2887 2888 \since BeOS R3 2889*/ 2890 2891 2892/*! 2893 \fn void BView::FillBezier(BPoint* controlPoints, ::pattern pattern) 2894 \brief Fill a bezier curve. 2895 2896 \param controlPoints The list of points that form the bezier curve. 2897 \param pattern One of the following: 2898 - \c B_SOLID_HIGH 2899 - \c B_SOLID_LOW 2900 - \c B_MIXED_COLORS 2901 2902 \since BeOS R3 2903*/ 2904 2905 2906/*! 2907 \fn void BView::FillBezier(BPoint* controlPoints, const BGradient& gradient) 2908 2909 \brief Fill a bezier curve. 2910 2911 \param controlPoints The list of points that form the bezier curve. 2912 \param gradient The gradient pattern to fill the bezier curve with. 2913 2914 \since Haiku R1 2915*/ 2916 2917 2918/*! 2919 \fn void BView::StrokePolygon(const BPolygon* polygon, bool closed, 2920 ::pattern pattern) 2921 \brief Stroke a polygon shape. 2922 2923 \param polygon The polygon shape to stroke. 2924 \param closed Whether or not the last line of the polygon should intersect 2925 with the initial point. 2926 \param pattern One of the following: 2927 - \c B_SOLID_HIGH 2928 - \c B_SOLID_LOW 2929 - \c B_MIXED_COLORS 2930 2931 \since BeOS R3 2932*/ 2933 2934 2935/*! 2936 \fn void BView::StrokePolygon(const BPoint* pointArray, int32 numPoints, 2937 bool closed, ::pattern pattern) 2938 \brief Stroke a polygon shape made up of points specified by \a pointArray. 2939 2940 \param pointArray An array of points that specify the vertices of the 2941 polygon. 2942 \param numPoints The number of points in \a pointArray. 2943 \param closed Whether or not the last line of the polygon should intersect 2944 with the initial point. 2945 \param pattern One of the following: 2946 - \c B_SOLID_HIGH 2947 - \c B_SOLID_LOW 2948 - \c B_MIXED_COLORS 2949 2950 \since BeOS R3 2951*/ 2952 2953 2954/*! 2955 \fn void BView::StrokePolygon(const BPoint* pointArray, int32 numPoints, 2956 BRect bounds, bool closed, ::pattern pattern) 2957 \brief Stroke a polygon shape made up of points specified by \a pointArray 2958 inscribed by \a bounds. 2959 2960 \param pointArray An array of points that specify the vertices of the 2961 polygon. 2962 \param numPoints The number of points in \a pointArray. 2963 \param bounds The smallest rectangle that encloses the points in 2964 \a pointArray. 2965 \param closed Whether or not the last line of the polygon should intersect 2966 with the initial point. 2967 \param pattern One of the following: 2968 - \c B_SOLID_HIGH 2969 - \c B_SOLID_LOW 2970 - \c B_MIXED_COLORS 2971 2972 \since BeOS R3 2973*/ 2974 2975 2976/*! 2977 \fn void BView::FillPolygon(const BPolygon* polygon, ::pattern pattern) 2978 \brief Fill a polygon shape. 2979 2980 \param polygon The polygon shape to fill. 2981 \param pattern One of the following: 2982 - \c B_SOLID_HIGH 2983 - \c B_SOLID_LOW 2984 - \c B_MIXED_COLORS 2985 2986 \since BeOS R3 2987*/ 2988 2989 2990/*! 2991 \fn void BView::FillPolygon(const BPolygon* polygon, 2992 const BGradient& gradient) 2993 \brief Fill a polygon shape with the specified \a gradient pattern. 2994 2995 \param polygon The polygon shape to fill. 2996 \param gradient The gradient pattern to fill the polygon with. 2997 2998 \since Haiku R1 2999*/ 3000 3001 3002/*! 3003 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3004 ::pattern pattern) 3005 \brief Fill a polygon shape made up of points specified by \a pointArray. 3006 3007 \param pointArray An array of points that specify the vertices of the polygon. 3008 \param numPoints The number of points in \a pointArray. 3009 \param pattern One of the following: 3010 - \c B_SOLID_HIGH 3011 - \c B_SOLID_LOW 3012 - \c B_MIXED_COLORS 3013 3014 \since BeOS R3 3015*/ 3016 3017 3018/*! 3019 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3020 const BGradient& gradient) 3021 \brief Fill a polygon shape made up of points specified by \a pointArray 3022 with the specified \a gradient pattern. 3023 3024 \param pointArray An array of points that specify the vertices of the 3025 polygon. 3026 \param numPoints The number of points in \a pointArray. 3027 \param gradient The gradient pattern to fill the polygon with. 3028 3029 \since Haiku R1 3030*/ 3031 3032 3033/*! 3034 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3035 BRect bounds, ::pattern pattern) 3036 \brief Fill a polygon shape made up of points specified by \a pointArray 3037 inscribed by \a bounds. 3038 3039 \param pointArray An array of points that specify the vertices of the 3040 polygon. 3041 \param numPoints The number of points in \a pointArray. 3042 \param bounds The smallest rectangle that encloses the points in 3043 \a pointArray. 3044 \param pattern One of the following: 3045 - \c B_SOLID_HIGH 3046 - \c B_SOLID_LOW 3047 - \c B_MIXED_COLORS 3048 3049 \since BeOS R3 3050*/ 3051 3052 3053/*! 3054 \fn void BView::FillPolygon(const BPoint* pointArray, int32 numPoints, 3055 BRect bounds, const BGradient& gradient) 3056 \brief Fill a polygon shape made up of points specified by \a pointArray 3057 inscribed by \a bounds with the specified \a gradient pattern. 3058 3059 \param pointArray An array of points that specify the vertices of the 3060 polygon. 3061 \param numPoints The number of points in \a pointArray. 3062 \param bounds The smallest rectangle that encloses the points in 3063 \a pointArray. 3064 \param gradient The gradient pattern to fill the polygon with. 3065 3066 \since Haiku R1 3067*/ 3068 3069 3070/*! 3071 \fn void BView::StrokeRect(BRect rect, ::pattern pattern) 3072 \brief Stroke the rectangle specified by \a rect. 3073 3074 \param rect The rectangular area to stroke. 3075 \param pattern One of the following: 3076 - \c B_SOLID_HIGH 3077 - \c B_SOLID_LOW 3078 - \c B_MIXED_COLORS 3079 3080 \since BeOS R3 3081*/ 3082 3083 3084/*! 3085 \fn void BView::FillRect(BRect rect, ::pattern pattern) 3086 \brief Fill the rectangle specified by \a rect. 3087 3088 \param rect The rectangular area to fill. 3089 \param pattern One of the following: 3090 - \c B_SOLID_HIGH 3091 - \c B_SOLID_LOW 3092 - \c B_MIXED_COLORS 3093 3094 \since BeOS R3 3095*/ 3096 3097 3098/*! 3099 \fn void BView::FillRect(BRect rect, const BGradient& gradient) 3100 \brief Fill the rectangle specified by \a rect with the specified 3101 \a gradient pattern. 3102 3103 \param rect The rectangular area to fill. 3104 \param gradient The gradient pattern to fill the rectangle with. 3105 3106 \since Haiku R1 3107*/ 3108 3109 3110/*! 3111 \fn void BView::StrokeRoundRect(BRect rect, float xRadius, float yRadius, 3112 ::pattern pattern) 3113 \brief Stroke the rounded rectangle with horizontal radius \a xRadius and 3114 vertical radius \a yRadius. 3115 3116 \param rect The rectangular area to stroke the round rect within. 3117 \param xRadius The horizontal radius. 3118 \param yRadius The vertical radius. 3119 \param pattern One of the following: 3120 - \c B_SOLID_HIGH 3121 - \c B_SOLID_LOW 3122 - \c B_MIXED_COLORS 3123 3124 \since BeOS R3 3125*/ 3126 3127 3128/*! 3129 \fn void BView::FillRoundRect(BRect rect, float xRadius, float yRadius, 3130 ::pattern pattern) 3131 \brief Fill the rounded rectangle with horizontal radius \a xRadius and 3132 vertical radius \a yRadius. 3133 3134 \param rect The rectangular area to fill the round rect within. 3135 \param xRadius The horizontal radius. 3136 \param yRadius The vertical radius. 3137 \param pattern One of the following: 3138 - \c B_SOLID_HIGH 3139 - \c B_SOLID_LOW 3140 - \c B_MIXED_COLORS 3141 3142 \since BeOS R3 3143*/ 3144 3145 3146/*! 3147 \fn void BView::FillRoundRect(BRect rect, float xRadius, float yRadius, 3148 const BGradient& gradient) 3149 \brief Fill the rounded rectangle with horizontal radius \a xRadius and 3150 vertical radius \a yRadius with the specified \a gradient pattern. 3151 3152 \param rect The rectangular area to fill the round rect within. 3153 \param xRadius The horizontal radius. 3154 \param yRadius The vertical radius. 3155 \param gradient The gradient pattern to fill the round rect with. 3156 3157 \since Haiku R1 3158*/ 3159 3160 3161/*! 3162 \fn void BView::FillRegion(BRegion* region, ::pattern pattern) 3163 \brief Fill \a region. 3164 3165 \param region The \a region to fill. 3166 \param pattern One of the following: 3167 - \c B_SOLID_HIGH 3168 - \c B_SOLID_LOW 3169 - \c B_MIXED_COLORS 3170 3171 \since BeOS R3 3172*/ 3173 3174 3175/*! 3176 \fn void BView::FillRegion(BRegion* region, const BGradient& gradient) 3177 \brief Fill \a region with the specified \a gradient pattern. 3178 3179 \param region The \a region to fill. 3180 \param gradient The gradient pattern to fill the \a region with. 3181 3182 \since Haiku R1 3183*/ 3184 3185 3186/*! 3187 \fn void BView::StrokeTriangle(BPoint point1, BPoint point2, BPoint point3, 3188 BRect bounds, ::pattern pattern) 3189 \brief Stroke the triangle specified by points \a point1, \a point2, and 3190 \a point3 and enclosed by \a bounds. 3191 3192 \param point1 The first point of the triangle. 3193 \param point2 The second point of the triangle. 3194 \param point3 The third point of the triangle. 3195 \param bounds The rectangular area that encloses the triangle. 3196 \param pattern One of the following: 3197 - \c B_SOLID_HIGH 3198 - \c B_SOLID_LOW 3199 - \c B_MIXED_COLORS 3200 3201 \since BeOS R3 3202*/ 3203 3204 3205/*! 3206 \fn void BView::StrokeTriangle(BPoint point1, BPoint point2, BPoint point3, 3207 ::pattern pattern) 3208 \brief Stroke the triangle specified by points \a point1, \a point2, 3209 and \a point3. 3210 3211 \param point1 The first point of the triangle. 3212 \param point2 The second point of the triangle. 3213 \param point3 The third point of the triangle. 3214 \param pattern One of the following: 3215 - \c B_SOLID_HIGH 3216 - \c B_SOLID_LOW 3217 - \c B_MIXED_COLORS 3218 3219 \since BeOS R3 3220*/ 3221 3222 3223/*! 3224 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3225 ::pattern pattern) 3226 \brief Fill the triangle specified by points \a point1, \a point2, 3227 and \a point3. 3228 3229 \param point1 The first point of the triangle. 3230 \param point2 The second point of the triangle. 3231 \param point3 The third point of the triangle. 3232 \param pattern One of the following: 3233 - \c B_SOLID_HIGH 3234 - \c B_SOLID_LOW 3235 - \c B_MIXED_COLORS 3236 3237 \since BeOS R3 3238*/ 3239 3240 3241/*! 3242 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3243 const BGradient& gradient) 3244 \brief Fill the triangle specified by points \a point1, \a point2, 3245 and \a point3 with the specified \a gradient pattern. 3246 3247 \param point1 The first point of the triangle. 3248 \param point2 The second point of the triangle. 3249 \param point3 The third point of the triangle. 3250 \param gradient The gradient pattern to fill the triangle with. 3251 3252 \since Haiku R1 3253*/ 3254 3255 3256/*! 3257 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3258 BRect bounds, ::pattern pattern) 3259 \brief Fill the triangle specified by points \a point1, \a point2, 3260 and \a point3 and enclosed by \a bounds. 3261 3262 \param point1 The first point of the triangle. 3263 \param point2 The second point of the triangle. 3264 \param point3 The third point of the triangle. 3265 \param bounds The rectangular area that encloses the triangle. 3266 \param pattern One of the following: 3267 - \c B_SOLID_HIGH 3268 - \c B_SOLID_LOW 3269 - \c B_MIXED_COLORS 3270 3271 \since BeOS R3 3272*/ 3273 3274 3275/*! 3276 \fn void BView::FillTriangle(BPoint point1, BPoint point2, BPoint point3, 3277 BRect bounds, const BGradient& gradient) 3278 \brief Fill the triangle specified by points \a point1, \a point2, 3279 and \a point3 and enclosed by \a bounds with the specified 3280 \a gradient pattern. 3281 3282 \param point1 The first point of the triangle. 3283 \param point2 The second point of the triangle. 3284 \param point3 The third point of the triangle. 3285 \param bounds The rectangular area that encloses the triangle. 3286 \param gradient The gradient pattern to fill the triangle with. 3287 3288 \since Haiku R1 3289*/ 3290 3291 3292/*! 3293 \fn void BView::StrokeLine(BPoint toPoint, ::pattern pattern) 3294 \brief Stroke a line from the current pen location to the point \a toPoint. 3295 3296 \param toPoint The end point of the line. 3297 \param pattern One of the following: 3298 - \c B_SOLID_HIGH 3299 - \c B_SOLID_LOW 3300 - \c B_MIXED_COLORS 3301 3302 \since BeOS R3 3303*/ 3304 3305 3306/*! 3307 \fn void BView::StrokeLine(BPoint start, BPoint end, ::pattern pattern) 3308 \brief Stroke a line from point \a start to point \a end. 3309 3310 \param start The start point of the line. 3311 \param end The end point of the line. 3312 \param pattern One of the following: 3313 - \c B_SOLID_HIGH 3314 - \c B_SOLID_LOW 3315 - \c B_MIXED_COLORS 3316 3317 \since BeOS R3 3318*/ 3319 3320 3321/*! 3322 \fn void BView::StrokeShape(BShape* shape, ::pattern pattern) 3323 \brief Stroke \a shape. 3324 3325 \param shape The \a shape to stroke. 3326 \param pattern One of the following: 3327 - \c B_SOLID_HIGH 3328 - \c B_SOLID_LOW 3329 - \c B_MIXED_COLORS 3330 3331 \since BeOS R5 3332*/ 3333 3334 3335/*! 3336 \fn void BView::FillShape(BShape* shape, ::pattern pattern) 3337 \brief Fill \a shape. 3338 3339 \param shape The \a shape to fill. 3340 \param pattern One of the following: 3341 - \c B_SOLID_HIGH 3342 - \c B_SOLID_LOW 3343 - \c B_MIXED_COLORS 3344 3345 \since BeOS R5 3346*/ 3347 3348 3349/*! 3350 \fn void BView::FillShape(BShape* shape, const BGradient& gradient) 3351 \brief Fill \a shape with the specified \a gradient pattern. 3352 3353 \param shape The \a shape to fill. 3354 \param gradient The gradient pattern to fill the \a shape with. 3355 3356 \since Haiku R1 3357*/ 3358 3359 3360/*! 3361 \fn void BView::BeginLineArray(int32 count) 3362 \brief Begin a line array of up to \a count lines. 3363 3364 This is a more efficient way of drawing a large number of lines than calling 3365 StrokeLine() repeatedly. First call BeginLineArray() to begin drawing lines, 3366 then call AddLine() for each line you wish to draw, and finally call 3367 EndLineArray() to finish the line array and draw the lines. 3368 3369 These methods don't move the current pen location or change the high or low 3370 colors of the view. \a count should be close to the number of lines you wish 3371 to draw and should be below 256 to draw efficiently. 3372 3373 \param count The maximum number of lines in the line array to draw. 3374 3375 \see StrokeLine() 3376 3377 \since BeOS R3 3378*/ 3379 3380 3381/*! 3382 \fn void BView::AddLine(BPoint start, BPoint end, rgb_color color); 3383 \brief Add a line to the line array from point \a pt0 to point \a pt1. 3384 3385 \param start The \a start point of the line. 3386 \param end The \a end point of the line. 3387 \param color The line \a color. 3388 3389 \since BeOS R3 3390*/ 3391 3392 3393/*! 3394 \fn void BView::EndLineArray() 3395 \brief End the line array drawing the lines. 3396 3397 \since BeOS R3 3398*/ 3399 3400 3401/*! 3402 \fn void BView::SetDiskMode(char* filename, long offset) 3403 \brief Unimplemented. 3404 3405 \since Haiku R1 3406*/ 3407 3408 3409/*! 3410 \fn void BView::BeginPicture(BPicture* picture) 3411 \brief Begins sending drawing instructions to \a picture. 3412 3413 The \a BPicture object is cleared and any successive drawing instructions sent 3414 to the view are redirected to \a picture until EndPicture() is called. To 3415 append drawing instructions to a BPicture object without clearing it first 3416 call AppendToPicture() instead. 3417 3418 The view doesn't display anything to the screen while it's recording to \a 3419 picture. Use the DrawPicture() method to render the \a picture. 3420 3421 Only drawing instructions performed directly on the view, not it's child views 3422 are send to the BPicture object and BPicture captures only primitive graphics 3423 operations. The view must be attached to a window for the drawing instruction 3424 to be recorded. Drawing instructions are recorded even if the view is hidden or 3425 resides outside the clipping region or the window is off-screen. 3426 3427 \param picture The BPicture object to record drawing instructions to. 3428 3429 \since BeOS R3 3430*/ 3431 3432 3433/*! 3434 \fn void BView::AppendToPicture(BPicture* picture) 3435 \brief Appends drawing instructions to \a picture without clearing it first. 3436 3437 \param picture The BPicture object to record drawing instructions to. 3438 3439 \since BeOS R3 3440*/ 3441 3442 3443/*! 3444 \fn BPicture* BView::EndPicture() 3445 \brief Ends the drawing instruction recording session and returns the 3446 BPicture object passed to BeginPicture() or AppendToPicture(). 3447 3448 \return The BPicture object passed to BeginPicture() or AppendToPicture(). 3449 3450 \since BeOS R3 3451*/ 3452 3453 3454/*! 3455 \fn void BView::SetViewBitmap(const BBitmap* bitmap, BRect srcRect, 3456 BRect dstRect, uint32 followFlags, uint32 options) 3457 \brief Sets the background \a bitmap of the view. 3458 3459 All drawing to the view occurs over \a bitmap. Any visible regions not 3460 covered by \a bitmap are filled with the current background color. 3461 3462 Once \a bitmap has been passed in and this method returns the caller may 3463 safely delete the object. 3464 3465 \param bitmap The background bitmap to set to the view. 3466 \param srcRect Specifies the area of \a bitmap to use. 3467 \param dstRect Specifies the area of the view to set \a bitmap to. 3468 \param followFlags Specifies the as the view is resized. See the BView 3469 constructor for more details. 3470 \param options Specifies additional view options. The only option currently 3471 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3472 3473 \since BeOS R4 3474*/ 3475 3476 3477/*! 3478 \fn void BView::SetViewBitmap(const BBitmap* bitmap, uint32 followFlags, 3479 uint32 options) 3480 \brief Sets the background \a bitmap of the view. 3481 3482 All drawing to the view occurs over \a bitmap. Any visible regions not 3483 covered by \a bitmap are filled with the current background color. 3484 3485 Once \a bitmap has been passed in and this method returns the caller may 3486 safely delete the object. 3487 3488 \param bitmap The background bitmap to set to the view. 3489 \param followFlags Specifies the as the view is resized. See the BView 3490 constructor for more details. 3491 \param options Specifies additional view options. The only option currently 3492 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3493 3494 \since BeOS R4 3495*/ 3496 3497 3498/*! 3499 \fn void BView::ClearViewBitmap() 3500 \brief Clears the background bitmap of the view if it has one. 3501 3502 \since BeOS R4 3503*/ 3504 3505 3506/*! 3507 \fn status_t BView::SetViewOverlay(const BBitmap* overlay, BRect srcRect, 3508 BRect dstRect, rgb_color* colorKey, uint32 followFlags, uint32 options) 3509 \brief Sets the \a overlay bitmap of the view. 3510 3511 \a colorKey specifies which color pixels in \a overlay are treated as transparent 3512 allowing the pixels of the view to show through. 3513 3514 Once \a overlay has been passed in and this method returns the caller may 3515 safely delete the object. 3516 3517 \param overlay The overlay bitmap to set to the view. 3518 \param srcRect Specifies the area of \a overlay to use. 3519 \param dstRect Specifies the area of the view to set \a overlay to. 3520 \param colorKey The color in \a overlay to treat as transparent. 3521 \param followFlags Specifies the as the view is resized. See the BView 3522 constructor for more details. 3523 \param options Specifies additional view options. The only option currently 3524 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3525 3526 \since BeOS R5 3527*/ 3528 3529 3530/*! 3531 \fn status_t BView::SetViewOverlay(const BBitmap* overlay, 3532 rgb_color* colorKey, uint32 followFlags, uint32 options) 3533 \brief Sets the \a overlay bitmap of the view. 3534 3535 \a colorKey specifies which color pixels in \a overlay are treated as transparent 3536 allowing the pixels of the view to show through. 3537 3538 Once \a overlay has been passed in and this method returns the caller may 3539 safely delete the object. 3540 3541 \param overlay The overlay bitmap to set to the view. 3542 \param colorKey The color in \a overlay to treat as transparent. 3543 \param followFlags Specifies the as the view is resized. See the BView 3544 constructor for more details. 3545 \param options Specifies additional view options. The only option currently 3546 available is \c B_TILE_BITMAP which tiles the bitmap across the view. 3547 3548 \since BeOS R5 3549*/ 3550 3551 3552/*! 3553 \fn void BView::ClearViewOverlay() 3554 \brief Clears the overlay bitmap of the view if it has one. 3555 3556 \since BeOS R5 3557*/ 3558 3559 3560/*! 3561 \fn void BView::CopyBits(BRect src, BRect dst) 3562 \brief Copy the bits from the \a src rectangle to the \a dst rectangle in the 3563 view's coordinate system. 3564 3565 If the rectangles are of different sizes than \a src is scaled to fit. \a src 3566 is clipped if a part of \a dst lies outside of the visible region of the view. 3567 Only the visible portions of \a src are copied. 3568 3569 The view must be attached to a window for this method to work. 3570 3571 \param src The source rectangle to copy bits from. 3572 \param dst The destination rectangle to copy bits to. 3573 3574 \since BeOS R3 3575*/ 3576 3577 3578/*! 3579 \fn void BView::DrawPicture(const BPicture* picture) 3580 \brief Draws the \a picture at the view's current pen position. 3581 3582 \param picture The BPicture object to draw. 3583 3584 \since BeOS R3 3585*/ 3586 3587 3588/*! 3589 \fn void BView::DrawPicture(const BPicture* picture, BPoint where) 3590 \brief Draws the \a picture at the location in the view specified by \a where. 3591 3592 \param picture The BPicture object to draw. 3593 \param where The point on the view to draw \a picture. 3594 3595 \since BeOS R3 3596*/ 3597 3598 3599/*! 3600 \fn void BView::DrawPicture(const char* filename, long offset, BPoint where) 3601 \brief Draws the \a picture from the file specified by \a filename offset by 3602 \a offset bytes at the location in the view specified by \a where. 3603 3604 \param filename The filename of the file containing the picture to draw. 3605 \param where The point on the view to draw the picture. 3606 \param offset The number of bytes to offset in the file to find the picture. 3607 3608 \since BeOS R4 3609*/ 3610 3611 3612/*! 3613 \fn void BView::DrawPictureAsync(const BPicture* picture) 3614 \brief Draws the \a picture at the view's current pen position. 3615 3616 \param picture The BPicture object to draw. 3617 3618 \since BeOS R5 3619*/ 3620 3621 3622/*! 3623 \fn void BView::DrawPictureAsync(const BPicture* picture, BPoint where) 3624 \brief Draws the \a picture at the location in the view specified by 3625 \a where. 3626 3627 \param picture The BPicture object to draw. 3628 \param where The point on the view to draw \a picture. 3629 3630 \since BeOS R5 3631*/ 3632 3633 3634/*! 3635 \fn void BView::DrawPictureAsync(const char* filename, long offset, 3636 BPoint where) 3637 \brief Draws the \a picture from the file specified by \a filename offset 3638 by \a offset bytes at the location in the view specified by 3639 \a where. 3640 3641 \param filename The filename of the file containing the picture to draw. 3642 \param where The point on the view to draw the picture. 3643 \param offset The number of bytes to offset in the file to find the 3644 picture. 3645 3646 \since BeOS R5 3647*/ 3648 3649 3650/*! 3651 \fn void BView::Invalidate(BRect invalRect) 3652 \brief Sends a message to App Server to redraw the portion of the view 3653 specified by \a invalRect. 3654 3655 \param invalRect The rectangular area of the view to redraw. 3656 3657 \since BeOS R3 3658*/ 3659 3660 3661/*! 3662 \fn void BView::Invalidate(const BRegion* region) 3663 \brief Sends a message to App Server to redraw the portion of the view 3664 specified by \a region. 3665 3666 \param region The region of the view to redraw. 3667 3668 \since Haiku R1 3669*/ 3670 3671 3672/*! 3673 \fn void BView::Invalidate() 3674 \brief Sends a message to App Server to redraw the view. 3675 3676 \since BeOS R3 3677*/ 3678 3679 3680/*! 3681 \fn void BView::InvertRect(BRect rect) 3682 \brief Inverts the colors within \a rect. 3683 3684 This method is often used to draw a highlighted selection in a view. 3685 3686 \param rect The rectangular area in the view to invert the colors of. 3687 3688 \since BeOS R3 3689*/ 3690 3691 3692//! @} 3693 3694 3695/*! 3696 \name View Hierarchy 3697*/ 3698 3699 3700//! @{ 3701 3702 3703/*! 3704 \fn void BView::AddChild(BView* child, BView* before) 3705 \brief Adds \a child to the view hierarchy immediately before \a before. 3706 3707 A view may only have one parent at a time so \a child must not have already 3708 been added to the view hierarchy. if \a before \c NULL then \a child is added 3709 to the end of the tree. If the view is attached to a window \a child and all 3710 of its descendent views also become attached to the window invoking an 3711 AttachedToWindow() method on each view. 3712 3713 \param child The child view to add. 3714 \param before The sibling view to add \a child before. 3715 3716 \since BeOS R3 3717*/ 3718 3719 3720/*! 3721 \fn bool BView::AddChild(BLayoutItem* child) 3722 \brief Add the \a child layout item to the view hierarchy. 3723 3724 \param child The child layout item to add. 3725 \return Whether or not \a child was added to the view layout hierarchy. 3726 3727 \since Haiku R1 3728*/ 3729 3730 3731/*! 3732 \fn bool BView::RemoveChild(BView* child) 3733 \brief Removes \a child from the view hierarchy. 3734 3735 \param child The child view to remove. 3736 \return Whether or not \a child was removed from the view hierarchy. 3737 3738 \since BeOS R3 3739*/ 3740 3741 3742/*! 3743 \fn int32 BView::CountChildren() const 3744 \brief Returns the number of child views that this view has. 3745 3746 \return The number of child views. 3747 3748 \since BeOS R3 3749*/ 3750 3751 3752/*! 3753 \fn BView* BView::ChildAt(int32 index) const 3754 \brief Returns a pointer to the child view found at \a index. 3755 3756 \param index The index of the child view to return a pointer of. 3757 3758 \return A pointer to the child view at \a index or \c NULL if not found. 3759 3760 \since BeOS R3 3761*/ 3762 3763 3764/*! 3765 \fn BView* BView::NextSibling() const 3766 \brief Returns a pointer to the next sibling view. 3767 3768 \return A pointer to the next sibling view or \a NULL if not found. 3769 3770 \since BeOS R3 3771*/ 3772 3773 3774/*! 3775 \fn BView* BView::PreviousSibling() const 3776 \brief Returns a pointer to the previous sibling view. 3777 3778 \return A pointer to the previous sibling view or \a NULL if not found. 3779 3780 \since BeOS R3 3781*/ 3782 3783 3784/*! 3785 \fn bool BView::RemoveSelf() 3786 \brief Removes the view and all child views from the view hierarchy. 3787 3788 \returns Whether or not the view was removed from the view hierarchy. 3789 3790 \since BeOS R3 3791*/ 3792 3793 3794/*! 3795 \fn BView* BView::Parent() const 3796 \brief Returns a pointer to the view's parent. 3797 3798 \return A pointer to the parent view or \c NULL if not attached. 3799 3800 \since BeOS R3 3801*/ 3802 3803 3804/*! 3805 \fn BView* BView::FindView(const char* name) const 3806 \brief Returns the view in the view hierarchy with the specified \a name. 3807 3808 \return The view in the view hierarchy with the specified \a name or \c NULL 3809 if not found. 3810 3811 \since BeOS R3 3812*/ 3813 3814 3815//! @} 3816 3817 3818/*! 3819 \name View Frame Alteration 3820 3821 As a view's frame rectangle must be aligned to pixel values all parameters are 3822 rounded to the nearest integer. If the view isn't attached these methods alter the 3823 frame rectangle without triggering FrameMoved(), FrameResized() or Invalidate(). 3824*/ 3825 3826 3827//! @{ 3828 3829 3830/*! 3831 \fn void BView::MoveBy(float deltaX, float deltaY) 3832 \brief Moves the view \a deltaX pixels horizontally and \a deltaY pixels 3833 vertically in the parent view's coordinate system. 3834 3835 \param deltaX The number of pixels to move the view horizontally. 3836 \param deltaY The number of pixels to move the view vertically. 3837 3838 \since BeOS R3 3839*/ 3840 3841 3842/*! 3843 \fn void BView::MoveTo(BPoint where) 3844 \brief Move the view to the location specified by \a where in the parent 3845 view's coordinate system. 3846 3847 \param where The location to move the view to. 3848 3849 \since BeOS R3 3850*/ 3851 3852 3853/*! 3854 \fn void BView::MoveTo(float x, float y) 3855 \brief Move the view to the coordinates specified by \a x in the horizontal 3856 dimension and \a y in the vertical dimension in the parent view's 3857 coordinate system. 3858 3859 \param x The horizontal coordinate to move the view to. 3860 \param y The vertical coordinate to move the view to. 3861 3862 \since BeOS R3 3863*/ 3864 3865 3866/*! 3867 \fn void BView::ResizeBy(float deltaWidth, float deltaHeight) 3868 \brief Resize the view by \a deltaWidth horizontally and \a deltaHeight 3869 vertically without moving the top left corner of the view. 3870 3871 \param deltaWidth The number of pixels to resize the view by horizontally. 3872 \param deltaHeight The number of pixels to resize the view by vertically. 3873 3874 \since BeOS R3 3875*/ 3876 3877 3878/*! 3879 \fn void BView::ResizeTo(float width, float height) 3880 \brief Resize the view to the specified \a width and \a height. 3881 3882 \param width The width to resize the view to. 3883 \param height The height to resize the view to. 3884 3885 \since BeOS R3 3886*/ 3887 3888 3889/*! 3890 \fn void BView::ResizeTo(BSize size) 3891 \brief Resize the view to the dimension specified by \a size. 3892 3893 \param size The \a size to resize the view to. 3894 3895 \since Haiku R1 3896*/ 3897 3898 3899//! @} 3900 3901 3902/*! 3903 \fn status_t BView::GetSupportedSuites(BMessage* data) 3904 \brief Reports the suites of messages and specifiers understood by the 3905 view. 3906 3907 \copydetails BHandler::GetSupportedSuites() 3908*/ 3909 3910 3911/*! 3912 \fn BHandler* BView::ResolveSpecifier(BMessage* message, int32 index, 3913 BMessage* specifier, int32 what, const char* property) 3914 \copydoc BHandler::ResolveSpecifier() 3915*/ 3916 3917 3918/*! 3919 \fn status_t BView::Perform(perform_code code, void* _data) 3920 \brief Perform some action. (Internal Method) 3921 3922 The following perform codes are recognized: 3923 - \c PERFORM_CODE_MIN_SIZE: 3924 - \c PERFORM_CODE_MAX_SIZE: 3925 - \c PERFORM_CODE_PREFERRED_SIZE: 3926 - \c PERFORM_CODE_LAYOUT_ALIGNMENT: 3927 - \c PERFORM_CODE_HAS_HEIGHT_FOR_WIDTH: 3928 - \c PERFORM_CODE_GET_HEIGHT_FOR_WIDTH: 3929 - \c PERFORM_CODE_SET_LAYOUT: 3930 - \c PERFORM_CODE_INVALIDATE_LAYOUT: 3931 - \c PERFORM_CODE_DO_LAYOUT: 3932 - \c PERFORM_CODE_GET_TOOL_TIP_AT: 3933 - \c PERFORM_CODE_ALL_UNARCHIVED: 3934 - \c PERFORM_CODE_ALL_ARCHIVED: 3935 3936 \param code The perform code. 3937 \param _data A pointer to store some data. 3938 3939 \returns A status code. 3940 3941 \since Haiku R1 3942*/ 3943 3944 3945/*! 3946 \name Layouting 3947 3948 \note These methods were not available in BeOS R5. 3949*/ 3950 3951 3952//! @{ 3953 3954 3955/*! 3956 \fn BSize BView::MinSize() 3957 \brief Return the minimum size of the view. 3958 3959 \return The minimum size of the view as a BSize. 3960 3961 \sa BAbstractLayout::MinSize() 3962 3963 \since Haiku R1 3964*/ 3965 3966 3967/*! 3968 \fn BSize BView::MaxSize() 3969 \brief Return the maximum size of the view. 3970 3971 \return The maximum size of the view as a BSize. 3972 3973 \sa BAbstractLayout::MaxSize() 3974 3975 \since Haiku R1 3976*/ 3977 3978 3979/*! 3980 \fn BSize BView::PreferredSize() 3981 \brief Return the preferred size of the view. 3982 3983 \return The preferred size of the view as a BSize. 3984 3985 \sa BAbstractLayout::PreferredSize() 3986 3987 \since Haiku R1 3988*/ 3989 3990 3991/*! 3992 \fn void BView::SetExplicitMinSize(BSize size) 3993 \brief Set this view's min size, to be used by MinSize(). 3994 3995 \sa BAbstractLayout::SetExplicitMinSize() 3996 3997 \since Haiku R1 3998*/ 3999 4000 4001/*! 4002 \fn void BView::SetExplicitMaxSize(BSize size) 4003 \brief Set this view's max size, to be used by MaxSize(). 4004 4005 \sa BAbstractLayout::SetExplicitMaxSize() 4006 4007 \since Haiku R1 4008*/ 4009 4010 4011/*! 4012 \fn void BView::SetExplicitPreferredSize(BSize size) 4013 \brief Set this view's preferred size, to be used by PreferredSize(). 4014 4015 \sa BAbstractLayout::SetExplicitPreferredSize() 4016 4017 \since Haiku R1 4018*/ 4019 4020 4021/*! 4022 \fn void BView::SetExplicitAlignment(BAlignment alignment) 4023 \brief Set this view's alignment, to be used by Alignment(). 4024 4025 \sa BAbstractLayout::SetExplicitAlignment() 4026 4027 \since Haiku R1 4028*/ 4029 4030 4031/*! 4032 \fn void BView::SetLayout(BLayout* layout) 4033 \brief Sets the \a layout of the view. 4034 4035 \param layout The \a layout to set. 4036 4037 \since Haiku R1 4038*/ 4039 4040 4041/*! 4042 \fn BLayout* BView::GetLayout() const 4043 \brief Get the layout of the view. 4044 4045 \returns The layout of the view. 4046 4047 \since Haiku R1 4048*/ 4049 4050 4051/*! 4052 \fn void BView::InvalidateLayout(bool descendants) 4053 \brief Invalidate layout. 4054 4055 \param descendants Also invalidate its children views. 4056 4057 \since Haiku R1 4058*/ 4059 4060 4061/*! 4062 \fn void BView::EnableLayoutInvalidation() 4063 \brief Enable layout invalidation. 4064 4065 \since Haiku R1 4066*/ 4067 4068 4069/*! 4070 \fn void BView::DisableLayoutInvalidation() 4071 \brief Disable layout invalidation. 4072 4073 \since Haiku R1 4074*/ 4075 4076 4077/*! 4078 \fn bool BView::IsLayoutInvalidationDisabled() 4079 \brief Returns whether or not layout invalidation is disabled. 4080 4081 \return \c true of layout invalidation is disabled, \c false otherwise. 4082 4083 \since Haiku R1 4084*/ 4085 4086 4087/*! 4088 \fn bool BView::IsLayoutValid() const 4089 \brief Returns whether or not the layout is valid. 4090 4091 \brief Returns \c true if the layout is valid, \c false otherwise. 4092 4093 \since Haiku R1 4094*/ 4095 4096 4097/*! 4098 \fn void BView::ResetLayoutInvalidation() 4099 \brief Service call for BView derived classes re-enabling 4100 InvalidateLayout() notifications. 4101 4102 BLayout and BView will avoid calling InvalidateLayout on views that have 4103 already been invalidated, but if the view caches internal layout information 4104 which it updates in methods other than DoLayout(), it has to invoke this 4105 method, when it has done so, since otherwise the information might become 4106 obsolete without the layout noticing. 4107 4108 \since Haiku R1 4109*/ 4110 4111 4112/*! 4113 \fn void BView::Layout(bool force) 4114 \brief Layout the view. 4115 4116 \param force If \c true layout even if valid. 4117 4118 \since Haiku R1 4119*/ 4120 4121 4122/*! 4123 \fn void BView::Relayout() 4124 \brief Relayout the view. 4125 4126 \since Haiku R1 4127*/ 4128 4129 4130/*! 4131 \fn void BView::DoLayout() 4132 \brief Layout view within the layout context. 4133 4134 \since Haiku R1 4135*/ 4136 4137 4138//! @} 4139 4140 4141/*! 4142 \name Tool Tips 4143 4144 \note These methods were not available in BeOS R5. 4145*/ 4146 4147 4148//! @{ 4149 4150 4151/*! 4152 \fn void BView::SetToolTip(const char* text) 4153 \brief Set the tool tip of the view to \a text. 4154 4155 \param text The \a text to set the view to or \c NULL or blank to unset. 4156 4157 \since Haiku R1 4158*/ 4159 4160 4161/*! 4162 \fn void BView::SetToolTip(BToolTip* tip) 4163 \brief Set the tool tip of the view to the \a tip object. 4164 4165 \param tip The tool tip object to set the view to or \c NULL to unset. 4166 4167 \since Haiku R1 4168*/ 4169 4170 4171/*! 4172 \fn BToolTip* BView::ToolTip() const 4173 \brief Return the tool tip set to the view or \c NULL if not set. 4174 4175 \return The BToolTip object set to the view. 4176 4177 \since Haiku R1 4178*/ 4179 4180 4181/*! 4182 \fn void BView::ShowToolTip(BToolTip* tip) 4183 \brief Show the tool tip at the current mouse position. 4184 4185 \param tip The BToolTip object to show. 4186 4187 \since Haiku R1 4188*/ 4189 4190 4191/*! 4192 \fn void BView::HideToolTip() 4193 \brief Hide the view's tool tip. 4194 4195 \since Haiku R1 4196*/ 4197 4198 4199/*! 4200 \fn bool BView::GetToolTipAt(BPoint point, BToolTip** _tip) 4201 \brief Point \a _tip with the view's tool tip. 4202 4203 \param point Currently unused. 4204 \param _tip A pointer to a pointer to a BToolTip object to set. 4205 4206 \since Haiku R1 4207*/ 4208 4209 4210//! @} 4211