Shaped windows have the size defined by the shape and it's not really clear what calling SetSize() on them should do -- so just document that it's not supposed to work. Closes #9794.
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        interface/wx/nonownedwnd.h
 | |
| // Purpose:     wxNonOwnedWindow class documentation
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2011-10-09
 | |
| // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Styles that can be used with any wxNonOwnedWindow:
 | |
| */
 | |
| #define wxFRAME_SHAPED          0x0010  // Create a window that is able to be shaped
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Common base class for all non-child windows.
 | |
| 
 | |
|     This is the common base class of wxTopLevelWindow and wxPopupWindow and is
 | |
|     not used directly.
 | |
| 
 | |
|     Currently the only additional functionality it provides, compared to base
 | |
|     wxWindow class, is the ability to set the window shape.
 | |
| 
 | |
|     @since 2.9.3
 | |
|  */
 | |
| class wxNonOwnedWindow : public wxWindow
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         If the platform supports it, sets the shape of the window to that
 | |
|         depicted by @a region. The system will not display or respond to any
 | |
|         mouse event for the pixels that lie outside of the region. To reset the
 | |
|         window to the normal rectangular shape simply call SetShape() again with
 | |
|         an empty wxRegion. Returns @true if the operation is successful.
 | |
| 
 | |
|         This method is available in this class only since wxWidgets 2.9.3,
 | |
|         previous versions only provided it in wxTopLevelWindow.
 | |
| 
 | |
|         Note that windows with non default shape have a fixed size and can't be
 | |
|         resized using SetSize().
 | |
|     */
 | |
|     bool SetShape(const wxRegion& region);
 | |
| 
 | |
|     /**
 | |
|         Set the window shape to the given path.
 | |
| 
 | |
|         Set the window shape to the interior of the given path and also draw
 | |
|         the window border along the specified path.
 | |
| 
 | |
|         For example, to make a clock-like circular window you could use
 | |
|         @code
 | |
|             wxSize size = GetSize();
 | |
|             wxGraphicsPath
 | |
|                 path = wxGraphicsRenderer::GetDefaultRenderer()->CreatePath();
 | |
|             path.AddCircle(size.x/2, size.y/2, 30);
 | |
|             SetShape(path);
 | |
|         @endcode
 | |
| 
 | |
|         Note that windows with non default shape have a fixed size and can't be
 | |
|         resized using SetSize().
 | |
| 
 | |
|         As the overload above, this method is not guaranteed to work on all
 | |
|         platforms but currently does work in wxMSW, wxOSX/Cocoa and wxGTK (with
 | |
|         the appropriate but almost always present X11 extensions) ports.
 | |
| 
 | |
|         @since 2.9.3
 | |
|      */
 | |
|     bool SetShape(const wxGraphicsPath& path);
 | |
| };
 |