| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: wrapsizer.h |
| 3 | // Purpose: interface of wxWrapSizer |
| 4 | // Author: wxWidgets team |
| 5 | // RCS-ID: $Id$ |
| 6 | // Licence: wxWindows license |
| 7 | ///////////////////////////////////////////////////////////////////////////// |
| 8 | |
| 9 | /** |
| 10 | @class wxWrapSizer |
| 11 | |
| 12 | A wrap sizer lays out its items in a single line, like a box sizer -- as long |
| 13 | as there is space available in that direction. |
| 14 | Once all available space in the primary direction has been used, a new line |
| 15 | is added and items are added there. |
| 16 | |
| 17 | So a wrap sizer has a primary orientation for adding items, and adds lines |
| 18 | as needed in the secondary direction. |
| 19 | |
| 20 | @library{wxcore} |
| 21 | @category{winlayout} |
| 22 | |
| 23 | @see wxBoxSizer, wxSizer, @ref overview_sizer |
| 24 | */ |
| 25 | class wxWrapSizer : public wxBoxSizer |
| 26 | { |
| 27 | public: |
| 28 | /** |
| 29 | Constructor for a wxWrapSizer. |
| 30 | |
| 31 | @a orient determines the primary direction of the sizer (the most common |
| 32 | case being @c wxHORIZONTAL). The flags parameter can be a combination of |
| 33 | the values @c wxEXTEND_LAST_ON_EACH_LINE which will cause the last item |
| 34 | on each line to use any remaining space on that line and @c wxREMOVE_LEADING_SPACES |
| 35 | which removes any spacer elements from the beginning of a row. |
| 36 | |
| 37 | Both of these flags are on by default. |
| 38 | */ |
| 39 | wxWrapSizer(int orient = wxHORIZONTAL, |
| 40 | int flags = wxWRAPSIZER_DEFAULT_FLAGS); |
| 41 | |
| 42 | /** |
| 43 | Not used by an application. |
| 44 | |
| 45 | This is the mechanism by which sizers can inform sub-items of the first |
| 46 | determined size component. |
| 47 | The sub-item can then better determine its size requirements. |
| 48 | |
| 49 | Returns @true if the information was used (and the sub-item min size was |
| 50 | updated). |
| 51 | */ |
| 52 | virtual bool InformFirstDirection(int direction, int size, |
| 53 | int availableOtherDir); |
| 54 | |
| 55 | protected: |
| 56 | /** |
| 57 | Can be overridden in the derived classes to treat some normal items as |
| 58 | spacers. |
| 59 | |
| 60 | This method is used to determine whether the given @a item should be |
| 61 | considered to be a spacer for the purposes of @c wxREMOVE_LEADING_SPACES |
| 62 | implementation. By default only returns @true for the real spacers. |
| 63 | */ |
| 64 | virtual bool IsSpaceItem(wxSizerItem *item) const; |
| 65 | }; |
| 66 | |