dddbc1bafc
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);
|
|
};
|