<?xml version="1.0"?>
<fpdoc-descriptions>
<package name="fpGUI">
<module name="fpg_widget">
<short>The base class for all other GUI widgets</short>
<descr/>

<element name="TfpgWidget">
<short>This forms the basis of any visual widget in fpGUI</short>
<descr><printshort id="TfpgWidget"/>.</descr>
</element>

<element name="TfpgWidget.SetPosition">
<short>Sets the position and size of the component</short>
<descr><printshort id="TfpgWidget.SetPosition"/>. It also fires the Resize message.
If you are setting up a component like a button on a form, you don't really want the
resize event to fire for the button, before the form is displayed (visible). In that
case, rather use the components Top, Left, Width and Height properties.</descr>
<seealso>
<link id="fpg_base.TfpgWindowBase.UpdateWindowPosition">TfpgWindowBase.UpdateWindowPosition</link>
</seealso>
</element>

<element name="TfpgWidget.FormDesigner">
<short>If assigned, then this widget is being editing in the Form Designer</short>
</element>

<element name="TfpgWidget.Parent">
<short>An alias for Owner</short>
<descr>Unlike Delphi or Lazarus, fpGUI treats Owner and Parent as the same thing.
Owner or Parent manages the life of children, and the parent/child hierarchy
defines the visual aspect as well.</descr>
</element>

<element name="TfpgWidget.IsContainer">
<short>Can this widget manage child widgets</short>
<descr>This is mainly used in fpGUI UI Designer, to know if you can drop a widget inside another widget.</descr>
</element>

<element name="TfpgWidget.Focusable">
<short>This determines if the widget is allowed to received keyboard focus</short>
<descr><printshort id="TfpgWidget.Focusable"/>. No focus rectangle will be drawn, even
if the user clicks this component.</descr>
</element>

<element name="TfpgWidget.Anchors">
<short>Allows the component to resize or reposition based on its Parent.</short>
<descr><p>By default Anchors are set to Top Left.</p>
<remark>Anchoring only takes affect <i>after</i> the component is visible on the
screen (when the component has a window handle assigned). So if you create a Button
in the constructor and set its Anchor property to Bottom/Right, and then set the
size of the Form, the Button will <i>not</i> be repositioned.</remark>
<p>This is by design. fpGUI allows you to setup a window layout without triggering unnecesary events as you set property values for each widget. Only when csLoading is not in ComponentState, then anchoring events will be triggered. This allows the developer or the fpGUI UI Designer to setup a window layout undisturbed.</p>
</descr>
</element>

<element name="TfpgWidget.HandleLMouseUp">
<short>Occurs after the component processed the mouse button press event</short>
<descr><printshort id="TfpgWidget.HandleLMouseUp"/>. By default this method also
triggers the OnClick event, but this behaviour can be overridden by descendant
components.</descr>
</element>

<element name="TfpgWidget.InvokeHelp">
<short>Display context-sensitive help</short>
<descr><p>InvokeHelp is called automatically when the user presses the application
help key (normally F1) while the widget has the focus. If a help topic is defined
for this widget (using HelpContext or HelpKeyword, depending on the value of HelpType),
then InvokeHelp displays the topic by calling the KeywordHelp or ContextHelp method
of the fpgApplication object. If no help topic is defined, then InvokeHelp attempts
to call InvokeHelp for its parent. This allows a container widget to specify a
default help topic for its children.</p></descr>
<seealso>
<link id="fpg_main.TfpgApplication.HelpFile">TfpgApplication.HelpFile</link>
</seealso>
</element>


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