]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/nonownedwnd.h
Unselect all wxDataViewCtrl items when clicking outside of the item area.
[wxWidgets.git] / include / wx / gtk / nonownedwnd.h
index a722e276063d48108614ca3611cbbdfc35b1bc01..bad674cca20039300889f09cc6fdf06d712f0c31 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef _WX_GTK_NONOWNEDWND_H_
 #define _WX_GTK_NONOWNEDWND_H_
 
 #ifndef _WX_GTK_NONOWNEDWND_H_
 #define _WX_GTK_NONOWNEDWND_H_
 
+class wxNonOwnedWindowShapeImpl;
+
 // ----------------------------------------------------------------------------
 // wxNonOwnedWindow contains code common to wx{Popup,TopLevel}Window in wxGTK.
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxNonOwnedWindow contains code common to wx{Popup,TopLevel}Window in wxGTK.
 // ----------------------------------------------------------------------------
 class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxNonOwnedWindowBase
 {
 public:
 class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxNonOwnedWindowBase
 {
 public:
-    wxNonOwnedWindow() { }
-
-    virtual bool SetShape(const wxRegion& region);
+    wxNonOwnedWindow() { m_shapeImpl = NULL; }
+    virtual ~wxNonOwnedWindow();
 
     // Overridden to actually set the shape when the window becomes realized.
     virtual void GTKHandleRealized();
 
 
     // Overridden to actually set the shape when the window becomes realized.
     virtual void GTKHandleRealized();
 
+protected:
+    virtual bool DoClearShape();
+    virtual bool DoSetRegionShape(const wxRegion& region);
+#if wxUSE_GRAPHICS_CONTEXT
+    virtual bool DoSetPathShape(const wxGraphicsPath& path);
+#endif // wxUSE_GRAPHICS_CONTEXT
+
+
 private:
 private:
-    // If valid, defines the custom shape of the window.
-    wxRegion m_shape;
+    // If non-NULL, contains information about custom window shape.
+    wxNonOwnedWindowShapeImpl* m_shapeImpl;
 
     wxDECLARE_NO_COPY_CLASS(wxNonOwnedWindow);
 };
 
     wxDECLARE_NO_COPY_CLASS(wxNonOwnedWindow);
 };