+
+wxSize wxWindowBase::GetBestFittingSize() const
+{
+ // merge the best size with the min size, giving priority to the min size
+ wxSize min = GetMinSize();
+ if (min.x == wxDefaultCoord || min.y == wxDefaultCoord)
+ {
+ wxSize best = GetBestSize();
+ if (min.x == wxDefaultCoord) min.x = best.x;
+ if (min.y == wxDefaultCoord) min.y = best.y;
+ }
+ return min;
+}
+
+
+void wxWindowBase::SetBestFittingSize(const wxSize& size)
+{
+ // Set the min size to the size passed in. This will usually either be
+ // wxDefaultSize or the size passed to this window's ctor/Create function.
+ SetMinSize(size);
+
+ // Merge the size with the best size if needed
+ wxSize best = GetBestFittingSize();
+
+ // If the current size doesn't match then change it
+ if (GetSize() != best)
+ SetSize(best);
+}
+
+