summaryrefslogtreecommitdiff
path: root/docs/xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/xml')
-rw-r--r--docs/xml/corelib/examples/fpg_base.fpgcanvasbase.drawarc.pas7
-rw-r--r--docs/xml/corelib/examples/fpg_base.fpgcanvasbase.fillarc.pas8
-rw-r--r--docs/xml/corelib/fpg_base.xml232
-rw-r--r--docs/xml/corelib/fpg_main.xml29
-rw-r--r--docs/xml/corelib/fpg_utils.xml82
-rw-r--r--docs/xml/fpgui_topic_embedded_forms.xml4
-rw-r--r--docs/xml/gui/fpg_form.xml35
-rw-r--r--docs/xml/gui/fpg_panel.xml66
8 files changed, 354 insertions, 109 deletions
diff --git a/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.drawarc.pas b/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.drawarc.pas
new file mode 100644
index 00000000..d85fadf2
--- /dev/null
+++ b/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.drawarc.pas
@@ -0,0 +1,7 @@
+{ This will draw a red arc, starting at the 6 o'clock position, and
+ drawing 90 degrees of the arc, ending at the 3 o'clock position. }
+procedure TMainForm.FormPaint; // the forms OnPaint event handler
+begin
+ Canvas.Color := clRed;
+ Canvas.DrawArc(5, 5, 100, 100, 270, 90);
+end;
diff --git a/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.fillarc.pas b/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.fillarc.pas
new file mode 100644
index 00000000..897ac0ec
--- /dev/null
+++ b/docs/xml/corelib/examples/fpg_base.fpgcanvasbase.fillarc.pas
@@ -0,0 +1,8 @@
+{ This will draw a red filled arc, starting at the 6 o'clock position, and
+ drawing 45 degrees of the arc, ending at the half-past-four position. }
+procedure TMainForm.FormPaint; // the form's OnPaint event handler.
+begin
+ Canvas.Color := clRed;
+ Canvas.FillArc(5, 5, 100, 100, 270, 45);
+end;
+
diff --git a/docs/xml/corelib/fpg_base.xml b/docs/xml/corelib/fpg_base.xml
index f052e2f0..3c922712 100644
--- a/docs/xml/corelib/fpg_base.xml
+++ b/docs/xml/corelib/fpg_base.xml
@@ -3,7 +3,7 @@
<package name="fpGUI">
<descr><p>fpGUI Toolkit is intended for Open Source and Commercial applications.
-fpGUI uses the LGPL2 license with the static linking exception - the same as
+fpGUI uses the LGPL v2 license with a static linking exception - the same as
the Free Pascal Compiler's RTL.</p>
<p>fpGUI is an Object Pascal toolkit for cross-platform application development.
It provides single-source portability across Linux, MS Windows, *BSD, OpenSolaris and
@@ -18,75 +18,70 @@ For more information, see the fpGUI Toolkit website at: <url href="http://fpgui.
<descr><p>This unit contains all the abstract classes for the CoreLib code
of fpGUI. It also defines many types and constants used throughout the toolkit.
</p>
- <p>When implementing support for a completely new windowing system
-(eg: Carbon used in Mac OS-X) you would implement all the abstract methods
+ <p>When implementing support for a completely new windowing system
+(eg: Carbon used in Mac OSX) you would implement all the abstract methods
defined in this unit.
</p>
</descr>
- <!-- alias type Visibility: default -->
- <element name="TfpgCoord">
- <short>A custom type used to represent X and Y coordinates.</short>
- <descr>Internally TfpgCoord is actually a Integer type. We created a custom
-alias type for use in fpGUI in the event that we might want to change the
+
+<element name="TfpgCoord">
+<short>A custom type used to represent X and Y coordinates.</short>
+<descr>Internally TfpgCoord is actually a Integer type. We created a custom
+alias type for use in fpGUI in the event that we might want to change the
underlying type in the future. Example to floating points.
</descr>
- <seealso/>
- </element>
- <!-- alias type Visibility: default -->
- <element name="TfpgColor">
- <short>Represents a color in integer format.</short>
- <descr>
- <p>TfpgColor is always in RRGGBB (Red, Green, Blue) format, no matter the
+</element>
+
+<element name="TfpgColor">
+<short>Represents a color in integer format.</short>
+<descr>
+<p>TfpgColor is always in AARRGGBB (Alpha, Red, Green, Blue) format, no matter the
operating system.
</p>
- <p>The <var>fpg_base</var> unit also contains definitions of many useful color
-constants. It defines the standard predefined Delphi colors (like clRed,
-clMagenta etc.), the 140 web safe colors using the defacto standard names as
-used by Netscape and Internet Explorer web browsers. As well as some internal
-color constants used by many GUI components (like clText, clWindowBackground
-etc.).
-</p>
- </descr>
- <seealso/>
- </element>
- <!-- record type Visibility: default -->
- <element name="TRGBTriple">
- <short>A record structure holding the RGBA values of a color</short>
- <descr><printshort id="TRGBTriple"/>.</descr>
- <seealso/>
- </element>
- <!-- variable Visibility: default -->
- <element name="TRGBTriple.Alpha">
- <short>Alpha support has not really been implemented in fpGUI yet.</short>
- <descr/>
- <seealso/>
- </element>
- <!-- enumeration type Visibility: default -->
- <element name="TWindowType">
- <short>Enum type defining what types of windows can be created.</short>
- <descr/>
- <seealso/>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TWindowType.wtChild">
- <short>The window being created is a child on another window. This normally
+<p>The <var>fpg_base</var> unit also contains definitions of many useful color
+constants. It defines the standard predefined Delphi colors (like clRed,
+clMagenta etc.), the 140 web safe colors using the defacto standard names as
+used by Netscape and Internet Explorer web browsers. As well as some internal
+color constants used by many GUI components (like clText, clWindowBackground
+etc.).</p></descr>
+<seealso>
+<link id="fpg_base.TRGBTriple">TRGBTriple</link>
+</seealso>
+</element>
+
+<element name="TRGBTriple">
+<short>A record structure holding the RGBA values of a color</short>
+<descr><printshort id="TRGBTriple"/>.</descr>
+</element>
+
+<element name="TRGBTriple.Alpha">
+<short>Alpha support has not really been implemented in fpGUI yet.</short>
+</element>
+
+<element name="TWindowType">
+<short>Enum type defining what types of windows can be created.</short>
+</element>
+
+<element name="TWindowType.wtChild">
+<short>The window being created is a child on another window. This normally
means no titlebar or window borders are going to be created.</short>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TWindowType.wtWindow">
- <short>This would specify a standard window with titlebar and window borders.</short>
- <descr>This would specify a standard window with titlebar and window borders. It grabs input focus, and appears in the taskbar.</descr>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TWindowType.wtModalForm">
- <short>This windows type is similar to wtWindow, but grabs focus.</short>
- <descr>This windows is the same as <link id="#fpgui.fpg_base.TWindowType.wtWindow">wtWindow</link>, but grabs the input focus until it has closed. This window normally doesn't appear in the taskbar.</descr>
- </element>
- <!-- enumeration value Visibility: default -->
- <element name="TWindowType.wtPopup">
- <short>This window will normally not have a titlebar or window borders.</short>
- <descr>This window will normally not have a titlebar or window borders and will appear above other windows. It is used for example in the dropdown window of a ComboBox or a tooltip window or popup menus. This type of window does not steal focus.</descr>
- </element>
+</element>
+
+<element name="TWindowType.wtWindow">
+<short>This would specify a standard window with titlebar and window borders. It grabs input
+focus, and appears in the taskbar.</short>
+</element>
+
+<element name="TWindowType.wtModalForm">
+<short>This windows is similar to <link id="#fpgui.fpg_base.TWindowType.wtWindow">wtWindow</link>, but grabs
+the input focus until it has closed. This window normally doesn't appear in the taskbar.</short>
+</element>
+
+<element name="TWindowType.wtPopup">
+<short>This window will normally not have a titlebar or window borders and will appear above other windows. It
+is used for example in the dropdown window of a ComboBox or a tooltip window or popup menus. This type of
+window does not steal focus.</short>
+</element>
<element name="TWindowAttribute">
<short>An enum types defining extra attributes of a window.</short>
@@ -130,7 +125,7 @@ the first time.</short>
<link id="fpg_base.TWindowAttribute">TWindowAttribute</link>
</seealso>
</element>
-
+
<!-- enumeration type Visibility: default -->
<element name="TMouseCursor">
<short>Enum types of the available mouse cursor shapes.</short>
@@ -371,7 +366,7 @@ the first time.</short>
<element name="TfpgRect">
<short>A graphical (pixel based) rectangle structure used throughout fpGUI.</short>
<descr>
- <p>Note that this structure is not a class, so static allocations are
+ <p>Note that this structure is not a class, so static allocations are
allowed. This makes it much easier to use in Widgets and in fpGUI internal
messages.</p>
<p>Think of the pixel screen/grid like the grid of a spreadsheet (or as a magnified look of the top corner of your screen).
@@ -387,11 +382,11 @@ messages.</p>
+---+---+---
| | |
</pre>
- <p>x is at (0,0). A pixel is always 1x1, you don't get smaller (we are not using sub-pixels like on LCD screens, because they don't apply to all screens).
+ <p>x is at (0,0). A pixel is always 1x1, you don't get smaller (we are not using sub-pixels like on LCD screens, because they don't apply to all screens).
</p>
- <p>So with that example, Width = 1 pixel and Height = 1 pixel. In the case of
-Classes.Bounds() the Right and Bottom values are (1,1) which looking at the
-above image will be wrong, the pixel only covers one block, so in a screen/pixel
+ <p>So with that example, Width = 1 pixel and Height = 1 pixel. In the case of
+Classes.Bounds() the Right and Bottom values are (1,1) which looking at the
+above image will be wrong, the pixel only covers one block, so in a screen/pixel
environment, Right, Bottom is also (0,0), the same as Top/Left. This is what
TfpgRect.Right and TfpgRect.Bottom will report.
</p>
@@ -406,20 +401,20 @@ TfpgRect.Right and TfpgRect.Bottom will report.
+---+---+---
| | |
</pre>
- <p>In this example we have a rectangle. Top/Left = (0,0) and Bottom/Right = (1,1).
-This means Width = 2 pixels and Height = 2 pixels. Clearly visible in the image
+ <p>In this example we have a rectangle. Top/Left = (0,0) and Bottom/Right = (1,1).
+This means Width = 2 pixels and Height = 2 pixels. Clearly visible in the image
above.
</p>
- <p>But if we call Classes.Bounds(0,0,2,2) it reports Bottom/Right as (2,2) which
-is wrong (again looking at the image above as reference). This is my point.
+ <p>But if we call Classes.Bounds(0,0,2,2) it reports Bottom/Right as (2,2) which
+is wrong (again looking at the image above as reference). This is my point.
Bounds() cannot be used in this case in a graphical environment.
</p>
- <p>The reason I don't use a grid layout as shown below, is
-because if the mouse is over the rectangle containing x, the OS (graphics system) reports its
-position as (0,0). You don't have to have the mouse pointer over the intersecting
-lines at (0,0) as indicated in the image below. The whole square containing
+ <p>The reason I don't use a grid layout as shown below, is
+because if the mouse is over the rectangle containing x, the OS (graphics system) reports its
+position as (0,0). You don't have to have the mouse pointer over the intersecting
+lines at (0,0) as indicated in the image below. The whole square containing
the x is referenced as (0,0), hence the grid layout as show in the images above,
-and what fpGUI uses. The same grid layout as used in TfpgStringGrid or any
+and what fpGUI uses. The same grid layout as used in TfpgStringGrid or any
Spreadsheet program etc.
</p>
<pre>.
@@ -646,7 +641,7 @@ redundant calculations, fpGUI allows you to set all the properties,
then act on it once you call <var>UpdateWindowPosition</var>. In most cases fpGUI
can even reduce the API calls needed, because it could pass for
example Width and Height via one API call. In the case of X11, it can actually do all
-four values in a single API call. Thus improving efficiency and reduces resize
+four values in a single API call. Thus improving efficiency and reduces resize
calculations and screen redraws.</p>
</descr>
</element>
@@ -657,7 +652,7 @@ calculations and screen redraws.</p>
of the control begins or to reposition the left side of the control.
</p>
<remark>fpGUI delays acting on the Top, Left, Width and Height properties of a control until the
-<var>UpdateWindowPosition</var> method is called. For more information on why this is so,
+<var>UpdateWindowPosition</var> method is called. For more information on why this is so,
see <link id="#fpgui.fpg_base.TfpgWindowBase.UpdateWindowPosition">UpdateWindowPosition</link>
help.</remark></descr>
<seealso>
@@ -671,7 +666,7 @@ help.</remark></descr>
of the control begins or to reposition the top side of the control.
</p>
<remark>fpGUI delays acting on the Top, Left, Width and Height properties of a control until the
-<var>UpdateWindowPosition</var> method is called. For more information on why this
+<var>UpdateWindowPosition</var> method is called. For more information on why this
is so, see <link id="#fpgui.fpg_base.TfpgWindowBase.UpdateWindowPosition">UpdateWindowPosition</link>
help.</remark></descr>
<seealso>
@@ -687,7 +682,7 @@ controls that have their Align property set to alTop, alBottom or alClient, chan
this property at runtime has no effect.
</p>
<remark>fpGUI delays acting on the Top, Left, Width and Height properties of a control until the
-<var>UpdateWindowPosition</var> method is called. For more information on why this is so,
+<var>UpdateWindowPosition</var> method is called. For more information on why this is so,
see <link id="#fpgui.fpg_base.TfpgWindowBase.UpdateWindowPosition">UpdateWindowPosition</link>
help.</remark></descr>
<seealso>
@@ -703,7 +698,7 @@ controls that have their Align property set to alLeft, alRight or alClient, chan
this property at runtime has no effect.
</p>
<remark>fpGUI delays acting on the Top, Left, Width and Height properties of a control until the
-<var>UpdateWindowPosition</var> method is called. For more information on why this
+<var>UpdateWindowPosition</var> method is called. For more information on why this
is so, see <link id="#fpgui.fpg_base.TfpgWindowBase.UpdateWindowPosition">UpdateWindowPosition</link>
help.</remark></descr>
<seealso>
@@ -769,11 +764,32 @@ you must keep copy of the original image before you call <var>Invert</var>.</des
<descr/>
</element>
- <!-- procedure Visibility: public -->
- <element name="TfpgImageBase.UpdateImage">
- <short>Updates the internal image resources and OS resources from image data</short>
- <descr/>
- </element>
+<element name="TfpgImageBase.UpdateImage">
+<short>Updates the internal image resources and OS resources from image data</short>
+<descr><printshort id="TfpgImageBase.UpdateImage"/>. This method must always be called <b>after</b>
+you populated the <var>ImageData</var> array. Then only does it allocate OS resources.</descr>
+<seealso>
+ <link id="TfpgImageBase.ImageData"/>
+</seealso>
+</element>
+
+<element name="TfpgImageBase.ImageData">
+<short>Internal representation of color data of the image</short>
+<descr><printshort id="TfpgImageBase.ImageData"/>. This method gives you a pointer to the image date
+which is always in the format ARGB. If you update the internal data you <b>always</b> need to call
+<var>UpdateImage</var> afterwards.</descr>
+<seealso>
+ <link id="TfpgImageBase.UpdateImage"/>
+</seealso>
+</element>
+
+<element name="TfpgImageBase.ImageDataSize">
+<short>Tells you the size of the image data</short>
+<descr><printshort id="TfpgImageBase.ImageDataSize"/>. You would need this if you work directly with
+the ImageData values.</descr>
+</element>
+
+
<!-- property Visibility: public -->
<element name="TfpgImageBase.Width">
@@ -807,7 +823,7 @@ you must keep copy of the original image before you call <var>Invert</var>.</des
<element name="TfpgBaseInterpolation">
<short>A abstract class representing a base Interpolation filter.</short>
<descr>This is used as the base class to implement Interpolation filters like
-Gaussian, Sinc etc... These decendant filters are used in the
+Gaussian, Sinc etc... These decendant filters are used in the
<link id="#fpgui.fpg_base.TfpgCanvasBase.StretchDraw">Canvas.StretchDraw</link> function.
</descr>
<seealso>
@@ -823,9 +839,9 @@ Gaussian, Sinc etc... These decendant filters are used in the
<!-- procedure Visibility: public -->
<element name="TfpgCanvasBase.DrawLine">
<short>Draws a line</short>
- <descr><printshort id="#fpgui.fpg_base.TfpgCanvasBase.DrawLine"/>. This method
-draws a line from (x1,y1) to (x2,y2), but does not draw the last pixel. All supported
-backends follow the Microsoft API and doesn't draw the last pixel. This optimises
+ <descr><printshort id="#fpgui.fpg_base.TfpgCanvasBase.DrawLine"/>. This method
+draws a line from (x1,y1) to (x2,y2), but does not draw the last pixel. All supported
+backends follow the Microsoft API and doesn't draw the last pixel. This optimises
consecutive lines being drawn without overlapping pixels.</descr>
</element>
@@ -897,7 +913,7 @@ returns the correct enum type detected.
<!-- function Visibility: default -->
<element name="fpgGetAvgColor">
<short>Calculates the average color using the two supplied</short>
- <descr>This function calculates and returns the average color by using AColor1
+ <descr>This function calculates and returns the average color by using AColor1
and AColor2. The Alpha value also gets taken into account.
</descr>
</element>
@@ -913,7 +929,7 @@ rectangle ARect. If it is, the function returns True, otherwise False.
<!-- procedure Visibility: default -->
<element name="SortRect">
<short>Fixes the Top, Bottom and Left, Right to always represent a valid rectangle</short>
- <descr>This function fixes a rectangle so that the Left point is always smaller than the
+ <descr>This function fixes a rectangle so that the Left point is always smaller than the
Right. And the Top is always smaller than the Bottom.
</descr>
</element>
@@ -929,7 +945,7 @@ Right. And the Top is always smaller than the Bottom.
For a detailed explanation see: http://www.nondot.org/~sabre/graphpro/line6.html
</p></descr>
</element>
-
+
<element name="TfpgCanvasBase.ClipLine">
<short>Clips the line based on AClipRect boundaries.</short>
<descr>This does not do any drawing, in only clips the line coordinates. This method is used internally by <link id="TfpgCanvasBase.DrawLineClipped"/>.</descr>
@@ -958,7 +974,7 @@ value to draw the arc.</p>
<dt>h</dt>
<dd>The height of the whole arc</dd>
<dt>a1</dt>
-<dd>This is the starting point of the arc. A value of 0 is the 3 o'clock
+<dd>This is the starting point of the arc. A value of 0 is the 3 o'clock
position. A value of 270 is the 6 o'clock position. Positive values move
counter-clockwise, and negative values move clockwise.</dd>
<dt>a2</dt>
@@ -974,7 +990,7 @@ goes counter-clockwise, and a negative values goes clockwise.</dd>
<element name="TfpgCanvasBase.FillArc.a1">
-<descr>This is the starting point of the arc. A value of 0 is the 3 o'clock
+<descr>This is the starting point of the arc. A value of 0 is the 3 o'clock
position. A value of 270 is the 6 o'clock position. Positive values move
counter-clockwise, and negative values move clockwise.</descr>
</element>
@@ -994,7 +1010,7 @@ value to draw and fill the arc.</p>
<dt>h</dt>
<dd>The height of the whole arc</dd>
<dt>a1</dt>
-<dd>This is the starting point of the arc. A value of 0 is the 3 o'clock
+<dd>This is the starting point of the arc. A value of 0 is the 3 o'clock
position. A value of 270 is the 6 o'clock position. Positive values move
counter-clockwise, and negative values move clockwise.</dd>
<dt>a2</dt>
@@ -1125,6 +1141,28 @@ contains the help for the application.</descr>
or HelpKeyword as parameter. The default help viewer is fpGUI's DocView.</descr>
</element>
+<element name="TfpgApplicationBase.MainForm">
+<short>Identifies which form in the application is the main form</short>
+<descr><p><printshort id="TfpgApplicationBase.MainForm"/>. Use the MainForm property to
+determine the form that acts as the application's main window. The first form that is
+show will be assigned as the main form of the application. If the main form closes,
+then all other forms are closed too, and the application quits.</p>
+<p>There are cases where the first form that was created and show, you don't want to
+act as the application's main form. In such a case, simply assign the form you want to
+act as the application's main form to the <var>MainForm</var> property.</p></descr>
+<seealso>
+ <link id="TfpgApplicationBase.CreateForm"/>
+</seealso>
+</element>
+
+<element name="TfpgApplicationBase.CreateForm">
+<short>Creates a new form</short>
+<descr><printshort id="TfpgApplicationBase.CreateForm"/>. Call CreateForm to dynamically create
+a form at runtime. CreateForm creates a new form of the type specified by the InstanceClass
+parameter and assigns it to the variable given by the Reference parameter. The owner of
+the new form is the fpgApplication object.</descr>
+</element>
+
<element name="TfpgBaseTimer.Enabled">
<short>Allows you to enable or disable the timer</short>
diff --git a/docs/xml/corelib/fpg_main.xml b/docs/xml/corelib/fpg_main.xml
index 613c0feb..654cd763 100644
--- a/docs/xml/corelib/fpg_main.xml
+++ b/docs/xml/corelib/fpg_main.xml
@@ -29,7 +29,7 @@
</element>
<element name="fpgColorToRGB">
<short>Convert a color to the RGB values of that color</short>
- <descr><printshort id="fpgColorToRGB"/>. Not all <link id="fpg_base.TfpgColor">TfpgColor</link> values are in RGB format.
+ <descr><printshort id="fpgColorToRGB"/>. Not all <link id="fpg_base.TfpgColor">TfpgColor</link> values are in RGB format.
For example, you get "named" colors too (eg: clWindowBackground), which
is simply an index value, but later translated to a real RGB value via the theming system.</descr>
</element>
@@ -91,6 +91,20 @@ planned.</p></descr>
<short>fake</short>
</element>
+<element name="TfpgApplication.GetFormByClassName">
+<short>Finds a form instance by its ClassName property</short>
+<descr><printshort id="TfpgApplication.GetFormByClassName"/>. This only works if the form has
+been created with <var>fpgApplication.CreateForm()</var>. If no form is found, then nil is
+returned.</descr>
+</element>
+
+<element name="TfpgApplication.GetFormByName">
+<short>Finds a form instance by its Name property</short>
+<descr><printshort id="TfpgApplication.GetFormByName"/>. This only works if the form has
+been created with <var>fpgApplication.CreateForm()</var>. If no form is found, then nil is
+returned.</descr>
+</element>
+
<element name="TfpgTimer">
<short>A timer component for fpGUI applications</short>
@@ -113,6 +127,19 @@ until the timer is disabled when the Enabled property is set to False.</descr>
<descr><printshort id="TfpgWindow"/>.</descr>
</element>
+<element name="TfpgImageBase">
+<short>The base class representing a image</short>
+<descr><printshort id="TfpgImageBase"/>.</descr>
+</element>
+
+<element name="TfpgImageBase.ImageData">
+<short>Contains the pixel data of the image. The data format is in AARRGGBB format.</short>
+<descr><printshort id="TfpgImageBase.ImageData"/>.</descr>
+</element>
+
+
+
+
</module>
<!-- fpg_main -->
</package>
diff --git a/docs/xml/corelib/fpg_utils.xml b/docs/xml/corelib/fpg_utils.xml
index 6c0ad9df..6323f257 100644
--- a/docs/xml/corelib/fpg_utils.xml
+++ b/docs/xml/corelib/fpg_utils.xml
@@ -7,14 +7,12 @@
<descr><p>Utility functions used throughout fpGUI. Some have common
implementations and some have platform specific implementations.</p></descr>
-<!-- function Visibility: default -->
<element name="fpgToOSEncoding">
<short>Converts string from fpGUI to OS specific filesystem encoding</short>
<descr>This function is specific to filesystem strings like Paths, Filenames
and Directories.</descr>
</element>
-<!-- function Visibility: default -->
<element name="fpgFromOSEncoding">
<short>Converts OS specific filesystem encoding to fpGUI string</short>
<descr>This function is specific to filesystem strings like Paths, Filenames
@@ -22,7 +20,6 @@ implementations and some have platform specific implementations.</p></descr>
</descr>
</element>
-<!-- procedure Visibility: default -->
<element name="fpgOpenURL">
<short>Launches the users Web Browser using the specified URL</short>
<descr>On each platform, this function will try and find the appropriate (system
@@ -30,34 +27,101 @@ implementations and some have platform specific implementations.</p></descr>
</descr>
</element>
-<!-- argument Visibility: default -->
<element name="fpgOpenURL.aURL">
<short>URL address to go to</short>
</element>
-<!-- function Visibility: default -->
+<element name="fpgFileSize">
+<short>Returns the given file's size in bytes</short>
+<descr><printshort id="fpgFileSize"/>.</descr>
+</element>
+
<element name="fpgAddTrailingValue">
<short>If ALine is not '', add the trailing value AValue</short>
<descr>If ALine is not '', add the trailing value AValue
</descr>
</element>
-<!-- argument Visibility: default -->
<element name="fpgAddTrailingValue.ALine">
<short>The source string</short>
</element>
-<!-- argument Visibility: default -->
<element name="fpgAddTrailingValue.AValue">
<short>The value that must be added</short>
</element>
-<!-- argument Visibility: default -->
<element name="fpgAddTrailingValue.ADuplicates">
<short>Are duplicate AValue's allowed</short>
</element>
-</module>
+<element name="fpgAppendPathDelim">
+<short>Appends the path delimiter to the given string</short>
+<descr><printshort id="fpgAppendPathDelim"/>.</descr>
+</element>
+
+<element name="fpgHasSubDirs">
+<short>This function returns True if the directory passed has subdirectories</short>
+<descr><printshort id="fpgHasSubDirs"/>.</descr>
+</element>
+
+<element name="fpgConvertLineEndings">
+<short>Replaces all line endings in the string with the native line ending</short>
+<descr><printshort id="fpgConvertLineEndings"/>.</descr>
+</element>
+
+<element name="fpgAddColon">
+<short>Appends a colon symbol to the given text</short>
+<descr><printshort id="fpgAddColon"/>. This is so that when we support LTR and RTL
+languages, the colon will be added at the correct place. Currently the RTL behaviour
+has not been implemented yet.</descr>
+</element>
+
+<element name="fpgIsBitSet">
+<short>Read a specific bit value in a LongInt variable</short>
+<descr>This procedure allows you to read a specific AIndex bit value from the AData variable.</descr>
+<seealso>
+ <link id="fpgSetBit"/>
+ <link id="fpgGetBit"/>
+</seealso>
+<version>Deprecated in v1.4</version>
+</element>
+
+<element name="fpgGetBit">
+<short>Read a specific bit value in a LongInt variable</short>
+<descr>This procedure allows you to read a specific ABit bit value from the AData variable.</descr>
+<seealso>
+ <link id="fpgSetBit"/>
+</seealso>
+<version>Added in v1.4</version>
+</element>
+
+<element name="fpgSetBit">
+<short>Set a specific bit value in a LongInt variable</short>
+<descr>This function allows you to set a specific ABit bit value in a the AData variable.</descr>
+<seealso>
+ <link id="fpgGetBit"/>
+</seealso>
+<version>Added in v1.4</version>
+</element>
+
+<element name="fpgGetToolkitConfigDir">
+<short>Returns the general fpGUI Toolkit config file</short>
+<descr><printshort id="fpgGetToolkitConfigDir"/>. This is used to store user defined values
+that apply to the whole fpGUI toolkit and applications developed with fpGUI. Things like
+directory bookmarks, global themes, fonts etc.</descr>
+</element>
+
+<element name="fpgAllFilesMask">
+<short>Returns the all files mask used to filter files</short>
+<descr><printshort id="fpgAllFilesMask"/>. This is used in the File Dialog, File Grid and
+many other places. Because FPC 2.2.2 and later contains the ALLFilesMask variable, this
+function is now deprecated.</descr>
+<version>Deprecated in v1.4</version>
+</element>
+
+
+
+</module>
</package>
</fpdoc-descriptions>
diff --git a/docs/xml/fpgui_topic_embedded_forms.xml b/docs/xml/fpgui_topic_embedded_forms.xml
index 4472ce4d..e3545473 100644
--- a/docs/xml/fpgui_topic_embedded_forms.xml
+++ b/docs/xml/fpgui_topic_embedded_forms.xml
@@ -14,7 +14,7 @@ in multiple places in your application.
<p>At first you will be tempted to design a "frame" using a TfpgForm descendant,
because that is what the UI Designer will create for you by default. Please refrain
from using TfpgForm descendants as "frames" because there are quite a few pitfalls.
-Instead, use TfpgBevel as the base class for a UI Frame design. This eliminates
+Instead, use TfpgFrame as the base class for a UI Frame design. This eliminates
all the possible problems you might get. You can still use the UI Designer because,
the UI Designer simply ignores the base class of any UI design - it only care about
what is inside the designer comment markers.
@@ -33,7 +33,7 @@ form will most likely be ignored - giving undesired results.</li>
</ul>
<p>
-Simply using TfpgBevel (or soon to appear TfpgFrame) as your base class for embedded forms/frames
+Simply using TfpgFrame as your base class for embedded forms/frames
will resolve all these issues for you. For an example of this, take a look at the demo
project in [fpgui]/examples/embedded_form/ directory.
</p>
diff --git a/docs/xml/gui/fpg_form.xml b/docs/xml/gui/fpg_form.xml
index 6a3027b1..c6c2e3d7 100644
--- a/docs/xml/gui/fpg_form.xml
+++ b/docs/xml/gui/fpg_form.xml
@@ -25,6 +25,41 @@ horizontally.
</short>
</element>
+<element name="TfpgBaseForm">
+<short>TfpgBaseForm is the base class from which to derive a window such as a form or dialog</short>
+<descr><printshort id="TfpgBaseForm"/>.</descr>
+</element>
+
+<element name="TfpgBaseForm.OnCloseQuery">
+<short>Occurs when close is attempted</short>
+<descr><p><printshort id="TfpgBaseForm.OnCloseQuery"/>. Use OnCloseQuery to specify the conditions
+under which the form can close. An OnCloseQuery event handler returns a Boolean CanClose value
+that determines whether a form is allowed to close. Its default value is True.</p>
+<p>You can use an OnCloseQuery event handler to ask users if they are sure they really want
+the form closed immediately. For example, you can use the handler to display a message box
+that prompts the user to save a file before closing the form.</p></descr>
+<seealso>
+<link id="fpg_form.TfpgBaseForm.OnClose">OnClose</link>
+</seealso>
+</element>
+
+<element name="TfpgBaseForm.OnClose">
+<short>Occurs when the form closes</short>
+<descr><p><printshort id="TfpgBaseForm.OnClose"/>. Use OnClose to perform special processing when
+the form closes. The OnClose event specifies which event handler to call when a form is about
+to close. The handler specified by OnClose might, for example, test to make sure all fields in
+a data-entry form have valid contents before allowing the form to close.</p>
+<p>A form is closed by the Close method or when the user chooses Close from the form's system
+menu.</p>
+<remark>Closing or hiding the main form terminates the application.</remark></descr>
+<seealso>
+<link id="fpg_form.TfpgBaseForm.OnCloseQuery">OnCloseQuery</link>
+</seealso></element>
+
+<!-- inherited docs -->
+<element name="TfpgForm.OnCloseQuery" link="#fpgui.fpg_form.TfpgBaseForm.OnCloseQuery"></element>
+<element name="TfpgForm.OnClose" link="#fpgui.fpg_form.TfpgBaseForm.OnClose"></element>
+
</module>
</package>
</fpdoc-descriptions>
diff --git a/docs/xml/gui/fpg_panel.xml b/docs/xml/gui/fpg_panel.xml
new file mode 100644
index 00000000..ee376026
--- /dev/null
+++ b/docs/xml/gui/fpg_panel.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fpdoc-descriptions>
+<package name="fpGUI">
+
+<module name="fpg_panel">
+<short>This unit defines various panel and frame widgets</short>
+<descr><printshort id="#fpgui.fpg_panel"/>. More specifically, it defines
+a Panel, Bevel, Frame, ImagePanel and GroupBox control.</descr>
+
+<element name="TfpgAbstractPanel">
+<short>Base class for a Panel, Bevel etc</short>
+<descr><printshort id="TfpgAbstractPanel"/>.</descr>
+</element>
+
+<element name="TfpgBevel">
+<short>Draws a panel with various borders</short>
+<descr><printshort id="TfpgBevel"/>. This widget doesn't have a text
+label though, unlike TfpgPanel.</descr>
+<seealso>
+ <link id="TfpgPanel"/>
+</seealso>
+</element>
+
+<element name="TfpgPanel">
+<short>Draws a panel with various borders and has a text label</short>
+<descr><printshort id="TfpgPanel"/>. If you don't need the text label,
+then it is recommended that you rather use the TfpgBevel widget.</descr>
+<seealso>
+ <link id="TfpgBevel"/>
+</seealso>
+</element>
+
+<element name="TfpgGroupBox">
+<short>Draws a panel width a caption</short>
+<descr><p><printshort id="TfpgGroupBox"/>. This is similar in functionality
+to the TfpgPanel, but the Text label is drawn in the border of the panel, whereas
+in the TfpgPanel in is drawn within the client area.</p>
+<p>This widget is frequently used to hold radiobutton groups.</p></descr>
+<seealso>
+ <link id="TfpgPanel"/>
+</seealso>
+</element>
+
+<element name="TfpgFrame">
+<short>A panel that acts like an embedded Form</short>
+<descr><printshort id="TfpgFrame"/>. This widget should be used (instead of TfpgForm),
+if you want to embed a reusable "form" inside other forms. You are able to
+design such frames with the UI designer too.</descr>
+<seealso>
+ <link id="#fpgui.fpg_form.TfpgForm">fpg_form.TfpgForm</link>
+</seealso>
+</element>
+
+<element name="TfpgImagePanel">
+<short>A panel to display an image</short>
+<descr><printshort id="TfpgImagePanel"/>. This was previously done by simply using a
+TfpgWidget and implementing the image painting in the OnPaint event. But this class
+just saves you a bit of time.</descr>
+</element>
+
+
+
+</module>
+</package>
+</fpdoc-descriptions>
+