<?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
https://gitlab.com/freepascal.org/lazarus/lazarus/-/blob/main/docs/cc-by-sa-4-0.txt

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

-->
<fpdoc-descriptions>
<package name="lazutils">
<!--
======================================================================
LazVersion
======================================================================
-->
<module name="LazVersion">
<short>
Contains constants which identify the version numbers for the Lazarus IDE 
installed on the local system.
</short>
<descr>
<p>
Values in the unit are used as the basis for corresponding LCL version 
numbers in the <file>lclversion.pas</file> unit.
</p>
<p>
<b>Please note that version numbers used for Lazarus, and the LCL and LazUtils 
libraries were changed starting with version 3.0.</b> They continue to use a 
four-part version numbering scheme, like 3.0.0.1, where the component values 
are:
</p>
<ul>
<li>Major version number</li>
<li>Minor version number</li>
<li>Release number</li>
<li>Patch level</li>
</ul>
<p>
Starting in version 3.0, the release part of the full version number is no 
longer maintained. While still included in the full version value, the release 
number will always be 0 (zero) starting with version 3.0. Major and minor 
version numbers are used to identify a release or a fixes branch.
</p>
<p>
An even minor version number, like 3.0 or 3.2, represents a general 
availability release. An odd minor version number no longer indicates that it 
is a development (or trunk) version. Instead, an odd minor version number 
like 3.1 or 3.3 represents a fixes branch. For example: 3.1 would contain bug 
fixes for the 3.0 release and would be used as the basis for the 3.2 
release. Development (or trunk) versions are always represented as minor 
version number 99; i.e. 3.99 is the development branch for the future 4.0 
release. Also, selected commits from this branch are cherry picked to the 3.X 
family.
</p>
<p>
Patch numbers identify a release candidate or a general availability release. 
For example: 3.0.0 RC1 has the full version value of 3.0.0.1. RC2 has the 
value 3.0.0.2, and the released product could be 3.0.0.3.
</p>
<p>
<file>lazversion.pas</file> is part of the <file>lazutils</file> package.
</p>
</descr>

<element name="TLCLWidgetTypeNameEvent">
<short>
Type used for the OnLCLWidgetTypeName function variable.
</short>
<descr>
<p>
Used in the GetLCLWidgetTypeName routine to get the name for the widgetset on 
the current platform.
</p>
</descr>
<seealso>
<link id="OnLCLWidgetTypeName"/>
<link id="GetLCLWidgetTypeName"/>
</seealso>
</element>


<element name="laz_major">
<short>Major version number for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 2.3.0.42, the value in laz_major is 2.
</p>
</descr>
<seealso/>
<version>
Added in revision 57504, and available since Lazarus 1.8.4.
</version>
</element>

<element name="laz_minor">
<short>Minor version number for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 2.3.0.42, the value in laz_minor is 3.
</p>
<p>
<b>Please note:</b> Starting with Lazarus version 3.0, laz_minor is 
incremented by 1 for each new release or fixes branch. For example: 3.0, 3.1, 
3.2, etc. An even minor version number, like 3.0 or 3.2, represents a general 
availability release. An odd minor version number no longer indicates that it 
is a development (or trunk) version. Instead, an odd minor version number 
like 3.1 or 3.3 represents a fixes branch. For example: 3.1 would contain bug 
fixes for the 3.0 release and would be used as the basis for the 3.2 release. 
Development (or trunk) versions are always represented as minor version number 
99; i.e. 3.99 is the development branch for the future 4.0 release. Also, 
selected commits from this branch are cherry picked to the 3.X family.
</p>
</descr>
<seealso/>
<version>
<p>
Added in revision 57504, and available since Lazarus 1.8.4.
</p>
<p>
Usage context modified in Lazarus version 3.0.
</p>
</version>
</element>

<element name="laz_release">
<short>Release number for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 2.3.0.42, the value in laz_release is 0.
</p>
<p>
<b>Please note:</b> Starting with Lazarus 3.0, the release number is no longer 
maintained and will always contain 0 (zero). Releases are represented using 
the major and minor version numbers: 3.0, 3.1, 3.2, etc.
</p>
</descr>
<seealso/>
<version>
<p>
Added in revision 57504, and available since Lazarus 1.8.4.
</p>
<p>
No longer maintained starting with Lazarus 3.0.
</p>
</version>
</element>

<element name="laz_patch">
<short>Patch level for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 2.3.0.42, the value in laz_patch is 42.
</p>
</descr>
<seealso/>
<version>
<p>
Added in revision 57504, and available since Lazarus 1.8.4.
</p>
</version>
</element>

<element name="laz_fullversion">
<short>Numeric version number for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 2.3.0.42, the value in laz_fullversion is 
2030042.
</p>
</descr>
<seealso/>
<version>
Added in revision 57504, and available since Lazarus 1.8.4.
</version>
</element>

<element name="laz_version">
<short>String with the full version number for the Lazarus IDE.</short>
<descr>
<p>
For the Lazarus version number 3.0.0.3, the value in laz_version is 
'3.0.0.3'.
</p>
</descr>
<seealso/>
<version>
Added in revision 57504, and available since Lazarus 1.8.4.
</version>
</element>


<element name="OnLCLWidgetTypeName">
<short>
Variable which contains the handler routine signalled to get the name for the 
current LCL widgetset.
</short>
<descr>
<p>
The value for the variable is assigned in the initialization section for the 
<file>interfacebase.pp</file> unit. It is set to the GetLCLWidgetTypeName 
routine in that unit. Please note that the GetLCLWidgetTypeName routine exists 
in both units; this one calls the other.
</p>
</descr>
<seealso>
<link id="TLCLWidgetTypeNameEvent"/>
</seealso>
</element>

<element name="GetLCLWidgetTypeName">
<short>
Routine called to get the type name for the widgetset class used on the 
platform.
</short>
<descr>
<p>
<var>GetLCLWidgetTypeName</var> signals the <var>OnLCLWidgetTypeName</var> 
event handler (when assigned) to get the type name for the widgetset. The 
return value contains the String from LCLPlatformDirNames that represents the 
TLCLPlatform for the widgetset. If OnLCLWidgetTypeName has not been assigned, 
the return value is an empty string ('').
</p>
</descr>
<seealso>
<link id="TLCLWidgetTypeNameEvent"/>
<link id="#lcl.interfacebase.GetLCLWidgetTypeName">InterfaceBase.GetLCLWidgetTypeName</link>
<link id="#lcl.lclplatformdef.LCLPlatformDirNames">LCLPlatformDirNames</link>
<link id="#lcl.lclplatformdef.TLCLPlatform">TLCLPlatform</link>
</seealso>
</element>
<element name="GetLCLWidgetTypeName.Result">
<short>
String representation for the widgetset class used for the platform.
</short>
</element>

</module>
<!-- LazVersion -->
</package>
</fpdoc-descriptions>
