<?xml version="1.0" encoding="UTF-8"?>
<!--

Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus 
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0 
International public license.

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
file://../../cc-by-sa-4-0.txt

Copyright (c) 1997-2023, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
Toolwin
====================================================================
-->
<module name="Toolwin">
<short>
Implements a control which can paint its client area with optional borders.
</short>
<descr>
<p>
<file>toolwin.pp</file> implements a control which can paint its client area 
with optional borders using a raised or lowered drawing style. It defines the 
common ancestor for controls like TToolBar and TCoolBar.
</p>
</descr>

<!-- unresolved type references Visibility: default -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="LCLType"/>
<element name="LCLIntf"/>
<element name="Controls"/>
<element name="Graphics"/>
<element name="StdCtrls"/>
<element name="GraphType"/>

<!-- enumeration type Visibility: default -->
<element name="TEdgeBorder">
<short>
Enumeration with values that indicate the border edges to draw in TToolWindow.
</short>
<descr>
<p>
<var>TEdgeBorder</var> is an enumeration type with values that indicate the 
border edges to draw in <var>TToolWindow</var>. Values in TEdgeBorder are 
stored in the <var>TEdgeBorders</var> set type.
</p>
</descr>
<seealso>
<link id="TToolWindow"/>
<link id="TEdgeBorders"/>
</seealso>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeBorder.ebLeft">
<short>Draws the border on the left edge of the control.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeBorder.ebTop">
<short>Draws the border on the top edge of the control.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeBorder.ebRight">
<short>Draws the border on the right edge of the control.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeBorder.ebBottom">
<short>Draws the border on the bottom edge of the control.</short>
</element>

<!-- set type Visibility: default -->
<element name="TEdgeBorders">
<short>
Set used to store TEdgeBorder enumeration values.
</short>
<descr>
<p>
<var>TEdgeBorders</var> is a set type used to store values from the 
<var>TEdgeBorder</var> enumeration. TEdgeBorders is the type used for the 
<var>TToolWindow.EdgeBorders</var> property.
</p>
</descr>
<seealso>
<link id="TEdgeBorder"/>
<link id="TToolWindow.EdgeBorders"/>
</seealso>
</element>

<!-- enumeration type Visibility: default -->
<element name="TEdgeStyle">
<short>
Enumeration type with values that specify the drawing style for borders.
</short>
<descr>
<p>
<var>TEdgeStyle</var> is an enumeration type with values that specify the 
drawing style for borders on a control. TEdgeStyle is the type used to 
implement the <var>TToolWindow.EdgeInner</var> and 
<var>TToolWindow.EdgeOuter</var> properties.
</p>
</descr>
<seealso>
<link id="TToolWindow.EdgeInner"/>
<link id="TToolWindow.EdgeOuter"/>
</seealso>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeStyle.esNone">
<short>No edge style is used.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeStyle.esRaised">
<short>Edge is drawn with a raised appearance.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TEdgeStyle.esLowered">
<short>Edge is drawn with a lowered or sunken appearance.</short>
</element>

<!-- object Visibility: default -->
<element name="TToolWindow">
<short>
Implements a control which can paint its client area with borders.
</short>
<descr>
<p>
<var>TToolWindow</var> is a <var>TCustomControl</var> which supports sizing 
and drawing its client area with borders. TToolWindow contains properties 
used to specify the borders (inner and outer) for the control. Methods are 
provided which adjust the client rectangle for the control, and paint the 
control to its canvas handle with the desired border edges and style.
</p>
<p>
TToolWindow is the ancestor for <var>TToolBar</var> and <var>TCoolBar</var>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TCustomControl">TCustomControl</link>
<link id="#lcl.comctrls.TToolbar">TToolbar</link>
<link id="#lcl.comctrls.TCustomCoolbar">TCustomCoolbar</link>
<link id="#lcl.comctrls.TCoolbar">TCoolbar</link>
</seealso>
</element>

<!-- variable Visibility: private -->
<element name="TToolWindow.FEdgeBorders"/>
<element name="TToolWindow.FEdgeInner"/>
<element name="TToolWindow.FEdgeOuter"/>

<!-- procedure Visibility: private -->
<element name="TToolWindow.SetEdgeBorders">
<short>Sets the value in the EdgeBorders property.</short>
<descr></descr>
<seealso>
<link id="TToolWindow.EdgeBorders"/>
</seealso>
</element>
<element name="TToolWindow.SetEdgeBorders.Value">
<short>New value for the property.</short>
</element>

<!-- procedure Visibility: private -->
<element name="TToolWindow.SetEdgeInner">
<short>Sets the value for the EdgeInner property.</short>
<descr></descr>
<seealso>
<link id="TToolWindow.EdgeInner"/>
</seealso>
</element>
<element name="TToolWindow.SetEdgeInner.Value">
<short>New value for the property.</short>
</element>

<!-- procedure Visibility: private -->
<element name="TToolWindow.SetEdgeOuter">
<short>Sets the value in the EdgeOuter property.</short>
<descr></descr>
<seealso>
<link id="TToolWindow.EdgeOuter"/>
</seealso>
</element>
<element name="TToolWindow.SetEdgeOuter.Value">
<short>New value for the property.</short>
</element>

<!-- variable Visibility: protected -->
<element name="TToolWindow.FUpdateCount">
<short>Internal counter used in BeginUpdate and EndUpdate.</short>
</element>

<!-- procedure Visibility: public -->
<element name="TToolWindow.AdjustClientRect">
<short>
Adjusts the client rectangle when borders are drawn for the control.
</short>
<descr>
<p>
<var>AdjustClientRect</var> is a procedure used to adjust the specified 
client rectangle when borders are drawn for the control. AdjustClientRect 
ensures that the client rectangle is increased in size according to values in 
<var>EdgeBorders</var> and the drawing styles in <var>EdgeOuter</var> and 
<var>EdgeInner</var>.
</p>
</descr>
<seealso>
<link id="TToolWindow.EdgeBorders"/>
<link id="TToolWindow.EdgeOuter"/>
<link id="TToolWindow.EdgeInner"/>
</seealso>
</element>
<element name="TToolWindow.AdjustClientRect.ARect">
<short>Client rectangle for the control.</short>
</element>

<!-- procedure Visibility: protected -->
<element name="TToolWindow.Paint">
<short>
Draws the control with the borders and style needed.
</short>
<descr>
<p>
<var>Paint</var> is an overridden procedure that draws the control with the 
borders and styles indicated in <var>EdgeBorders</var>, <var>EdgeInner</var>, 
and <var>EdgeOuter</var>. Paint calls <var>DrawEdge</var> to render the 
control, and calls the inherited <var>Paint</var> method.
</p>
</descr>
<seealso>
<link id="TToolWindow.EdgeBorders"/>
<link id="TToolWindow.EdgeOuter"/>
<link id="TToolWindow.EdgeInner"/>
</seealso>
</element>

<!-- constructor Visibility: public -->
<element name="TToolWindow.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for the class instance, and calls the 
inherited constructor using <var>TheOwner</var> as the owner of the control. 
Create sets the default values for the following properties:
</p>
<dl>
<dt>EdgeBorders</dt>
<dd>Set to the value [ebLeft, ebTop, ebRight, ebBottom]</dd>
<dt>EdgeInner</dt>
<dd>esRaised</dd>
<dt>EdgeOuter</dt>
<dd>esLowered</dd>
</dl>
</descr>
<seealso>
<link id="TToolWindow.EdgeBorders"/>
<link id="TToolWindow.EdgeOuter"/>
<link id="TToolWindow.EdgeInner"/>
</seealso>
</element>
<element name="TToolWindow.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>

<!-- procedure Visibility: public -->
<element name="TToolWindow.BeginUpdate">
<short>Increments the internal counter for buffering calls to Update.</short>
<descr></descr>
<seealso></seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TToolWindow.EndUpdate">
<short>Decrements the internal counter for buffering calls to Update.</short>
<descr></descr>
<seealso></seealso>
</element>

<!-- property Visibility: public -->
<element name="TToolWindow.EdgeBorders">
<short>
Indicates the edges to be drawn with a border on the control.
</short>
<descr>
<p>
<var>EdgeBorders</var> is a <var>TEdgeBorders</var> property that indicates 
the edges to be drawn with a border on the control. The default value for 
EdgeBorders is <b>[ebLeft, ebTop, ebRight, ebBottom]</b>. EdgeBorders is used 
in the <var>Paint</var> method to render the control with borders in the 
specified positions with the drawing style in <var>EdgeInner</var> and 
<var>EdgeOuter</var>.
</p>
</descr>
<seealso>
<link id="TEdgeBorders"/>
<link id="TToolWindow.EdgeBorders"/>
<link id="TToolWindow.EdgeOuter"/>
<link id="TToolWindow.EdgeInner"/>
</seealso>
</element>

<!-- property Visibility: public -->
<element name="TToolWindow.EdgeInner">
<short>
Specifies the drawing style used for the inner border of the control.
</short>
<descr>
<p>
<var>EdgeInner</var> is a <var>TEdgeStyle</var> property that specifies the 
drawing style used for the inner border of the control. The default value for 
the property is <var>esRaised</var>.
</p>
<p>
EdgeInner is used, along with <var>EdgeOuter</var>, to give the control a 
beveled 3D appearance. Use <var>EdgeOuter</var> to control the drawing style 
for the outer border on the control.
</p>
<p>
Use <var>EdgeBorders</var> to specify the positions (for both inner and 
outer) where borders are drawn.
</p>
</descr>
<seealso>
<link id="TEdgeStyle"/>
<link id="TToolWindow.EdgeOuter"/>
<link id="TToolWindow.EdgeBorders"/>
</seealso>
</element>

<!-- property Visibility: public -->
<element name="TToolWindow.EdgeOuter">
<short>
Specifies the drawing style used for the outer border of the control.
</short>
<descr>
<p>
<var>EdgeOuter</var> is a <var>TEdgeStyle</var> property that specifies the 
drawing style used for the outer border of the control. The default value for 
the property is <var>esLowered</var>.
</p>
<p>
EdgeOuter is used, along with <var>EdgeInner</var>, to give the control a 
beveled 3D appearance. Use <var>EdgeInner</var> to control the drawing style 
for the inner border on the control.
</p>
<p>
Use <var>EdgeBorders</var> to specify the positions (for both inner and 
outer) where borders are drawn.
</p>
</descr>
<seealso>
<link id="TEdgeStyle"/>
<link id="TToolWindow.EdgeInner"/>
<link id="TToolWindow.EdgeBorders"/>
</seealso>
</element>
</module>
<!-- Toolwin -->
</package>
</fpdoc-descriptions>
