New method allowing to find the ribbon bar containing the given window. See #14283. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			182 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        ribbon/control.h
 | |
| // Purpose:     interface of wxRibbonControl
 | |
| // Author:      Peter Cawley
 | |
| // RCS-ID:      $Id$
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| /**
 | |
|     @class wxRibbonControl
 | |
| 
 | |
|     wxRibbonControl serves as a base class for all controls which share the
 | |
|     ribbon characteristics of having a ribbon art provider, and (optionally)
 | |
|     non-continuous resizing. Despite what the name may imply, it is not the
 | |
|     top-level control for creating a ribbon interface - that is wxRibbonBar.
 | |
| 
 | |
|     Ribbon controls often have a region which is "transparent", and shows the
 | |
|     contents of the ribbon page or panel behind it. If implementing a new
 | |
|     ribbon control, then it may be useful to realise that this effect is done
 | |
|     by the art provider when painting the background of the control, and hence
 | |
|     in the paint handler for the new control, you should call a draw background
 | |
|     method on the art provider (wxRibbonArtProvider::DrawButtonBarBackground()
 | |
|     and wxRibbonArtProvider::DrawToolBarBackground() typically just redraw what
 | |
|     is behind the rectangle being painted) if you want transparent regions.
 | |
| 
 | |
|     @library{wxribbon}
 | |
|     @category{ribbon}
 | |
| */
 | |
| class wxRibbonControl : public wxControl
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Constructor.
 | |
|     */
 | |
|     wxRibbonControl();
 | |
| 
 | |
|     /**
 | |
|         Constructor.
 | |
| 
 | |
|         If @a parent is a wxRibbonControl with a non-NULL art provider, then
 | |
|         the art provider of new control is set to that of @a parent.
 | |
|     */
 | |
|     wxRibbonControl(wxWindow *parent, wxWindowID id,
 | |
|                     const wxPoint& pos = wxDefaultPosition,
 | |
|                     const wxSize& size = wxDefaultSize, long style = 0,
 | |
|                     const wxValidator& validator = wxDefaultValidator,
 | |
|                     const wxString& name = wxControlNameStr);
 | |
| 
 | |
|     /**
 | |
|         Set the art provider to be used. In many cases, setting the art provider
 | |
|         will also set the art provider on all child windows which extend
 | |
|         wxRibbonControl.
 | |
| 
 | |
|         In most cases, controls will not take ownership of the given pointer,
 | |
|         with the notable exception being wxRibbonBar::SetArtProvider().
 | |
|     */
 | |
|     virtual void SetArtProvider(wxRibbonArtProvider* art);
 | |
| 
 | |
|     /**
 | |
|         Get the art provider to be used. Note that until an art provider has
 | |
|         been set in some way, this function may return NULL.
 | |
|     */
 | |
|     wxRibbonArtProvider* GetArtProvider() const;
 | |
| 
 | |
|     /**
 | |
|         @return @true if this window can take any size (greater than its minimum
 | |
|         size), @false if it can only take certain sizes.
 | |
| 
 | |
|         @see GetNextSmallerSize()
 | |
|         @see GetNextLargerSize()
 | |
|     */
 | |
|     virtual bool IsSizingContinuous() const;
 | |
| 
 | |
|     /**
 | |
|         If sizing is not continuous, then return a suitable size for the control
 | |
|         which is smaller than the current size.
 | |
| 
 | |
|         @param direction
 | |
|             The direction(s) in which the size should reduce.
 | |
|         @return
 | |
|             The current size if there is no smaller size, otherwise a suitable
 | |
|             size which is smaller in the given direction(s), and the same as the
 | |
|             current size in the other direction (if any).
 | |
| 
 | |
|         @see IsSizingContinuous()
 | |
|     */
 | |
|     wxSize GetNextSmallerSize(wxOrientation direction) const;
 | |
| 
 | |
|     /**
 | |
|         If sizing is not continuous, then return a suitable size for the control
 | |
|         which is smaller than the given size.
 | |
| 
 | |
|         @param direction
 | |
|             The direction(s) in which the size should reduce.
 | |
|         @param relative_to
 | |
|             The size for which a smaller size should be found.
 | |
|         @return
 | |
|             @a relative_to if there is no smaller size, otherwise a suitable
 | |
|             size which is smaller in the given direction(s), and the same as
 | |
|             @a relative_to in the other direction (if any).
 | |
| 
 | |
|         @see IsSizingContinuous()
 | |
|         @see DoGetNextSmallerSize()
 | |
|     */
 | |
|     wxSize GetNextSmallerSize(wxOrientation direction, wxSize relative_to) const;
 | |
| 
 | |
|     /**
 | |
|         If sizing is not continuous, then return a suitable size for the control
 | |
|         which is larger than the current size.
 | |
| 
 | |
|         @param direction
 | |
|             The direction(s) in which the size should increase.
 | |
|         @return
 | |
|             The current size if there is no larger size, otherwise a suitable
 | |
|             size which is larger in the given direction(s), and the same as the
 | |
|             current size in the other direction (if any).
 | |
| 
 | |
|         @see IsSizingContinuous()
 | |
|     */
 | |
|     wxSize GetNextLargerSize(wxOrientation direction) const;
 | |
| 
 | |
|     /**
 | |
|         If sizing is not continuous, then return a suitable size for the control
 | |
|         which is larger than the given size.
 | |
| 
 | |
|         @param direction
 | |
|             The direction(s) in which the size should increase.
 | |
|         @param relative_to
 | |
|             The size for which a larger size should be found.
 | |
|         @return
 | |
|             @a relative_to if there is no larger size, otherwise a suitable
 | |
|             size which is larger in the given direction(s), and the same as
 | |
|             @a relative_to in the other direction (if any).
 | |
| 
 | |
|         @see IsSizingContinuous()
 | |
|         @see DoGetNextLargerSize()
 | |
|     */
 | |
|     wxSize GetNextLargerSize(wxOrientation direction, wxSize relative_to) const;
 | |
| 
 | |
|     /**
 | |
|         Perform initial size and layout calculations after children have been
 | |
|         added, and/or realize children.
 | |
|     */
 | |
|     virtual bool Realize();
 | |
| 
 | |
|     /**
 | |
|         Alias for Realize().
 | |
|     */
 | |
|     bool Realise();
 | |
| 
 | |
|     /**
 | |
|         Get the first ancestor which is a wxRibbonBar (or derived) or NULL
 | |
|         if not having such parent.
 | |
| 
 | |
|         @since 2.9.4
 | |
|      */
 | |
|     virtual wxRibbonBar* GetAncestorRibbonBar()const;
 | |
| 
 | |
| 
 | |
|     /**
 | |
|         Finds the best width and height given the parent's width and height.
 | |
|         Used to implement the wxRIBBON_PANEL_FLEXIBLE panel style.
 | |
|     */
 | |
|     virtual wxSize GetBestSizeForParentSize(const wxSize& parentSize) const;
 | |
| protected:
 | |
|     /**
 | |
|         Implementation of GetNextSmallerSize().
 | |
|         Controls which have non-continuous sizing must override this virtual
 | |
|         function rather than GetNextSmallerSize().
 | |
|     */
 | |
|     virtual wxSize DoGetNextSmallerSize(wxOrientation direction,
 | |
|                                         wxSize relative_to) const;
 | |
| 
 | |
|     /**
 | |
|         Implementation of GetNextLargerSize().
 | |
|         Controls which have non-continuous sizing must override this virtual
 | |
|         function rather than GetNextLargerSize().
 | |
|     */
 | |
|     virtual wxSize DoGetNextLargerSize(wxOrientation direction,
 | |
|                                        wxSize relative_to) const;
 | |
| };
 |