ok, I made some changes to the underlying logic of the .MaxWidth and .BoxMaxWidth properties (+related min or height properties) that should help clean things up *without* causing a Breaking Change.
The .MaxWidth property will remain, although setting the .MaxWidth property will now directly set .BoxMaxWidth instead of rendering as .maxWidth. Previously the .MaxWidth property rendered as .maxWidth in the client config. Now it will render as .boxMaxWidth.
The .maxWidth config was only relevant if the Component was rendered into a BorderLayout region. If you absolutely must render the .maxWidth config item, you can do so by setting either the new .RegionMaxWidth property on any BoxComponent or the existing .MaxWidth property on the BorderLayout Region config.
If Split="true" on the Region, the region will not expand beyond the .BoxMaxWidth or .MaxWidth, or .RegionMaxWidth.
If both .BoxMaxWidth and .RegionMaxWidth are set on a Panel, the .RegionMaxWidth property will take precedence and .BoxMaxWidth will be ignored.
The following sample demonstrates setting the .MaxWidth property on the <West> Region config.
Example #1
<ext:Viewport runat="server" Layout="border">
<Items>
<ext:BorderLayout runat="server">
<West Split="true" MaxWidth="250">
<ext:Panel runat="server" Title="West" Width="200" />
</West>
<Center>
<ext:Panel runat="server" Title="Center" />
</Center>
</ext:BorderLayout>
</Items>
</ext:Viewport>
The following sample demonstrates setting the .RegionMaxWidth property on the <West> Region config, which will render with the same results as Example #1.
Example #2
<West Split="true">
<ext:Panel runat="server" Title="West" Width="200" RegionMaxWidth="250" />
</West>
The following two samples demonstrate the .BoxMaxWidth and .MaxWidth properties on any BoxComponent (Panel). Both will render a .boxMaxWidth config item to the client configuration script. Both will result in the same functionality as the first two examples.
Example #3
// BoxMaxWidth
<West Split="true">
<ext:Panel runat="server" Title="West" Width="200" BoxMaxWidth="250" />
</West>
// MaxWidth
<West Split="true">
<ext:Panel runat="server" Title="West" Width="200" MaxWidth="250" />
</West>
The following samples demonstrate a Viewport configuration by setting the .Region and .Split properties on the inner Panel <Items>, without the need for the wrapping <West> Region config or <ext:BorderLayout>
Example #4
<ext:Viewport runat="server" Layout="border">
<Items>
<ext:Panel runat="server" Title="West" Width="200" Region="West" MaxWidth="250" />
<ext:Panel runat="server" Title="Center" />
</Items>
</ext:Viewport>
What technique would I recommend for configuring a Viewport? Answer,
Example #4.
The above changes are backwards compatible, so this should not result in any breaking changes.
Hope this helps.