Difference between revisions of "fpGUI"

From Lazarus wiki
Jump to navigationJump to search
 
(24 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{fpGUI(pg)}}
 +
 
fpGUI is a Object Pascal toolkit for cross-platform application development. It provides single-source portability across Linux, MS Windows, *BSD, Solaris/OpenSolaris, [[ReactOS]] and embedded devices like Embedded Linux and Windows CE. fpGUI Toolkit can be used for Open Source and Commercial applications.
 
fpGUI is a Object Pascal toolkit for cross-platform application development. It provides single-source portability across Linux, MS Windows, *BSD, Solaris/OpenSolaris, [[ReactOS]] and embedded devices like Embedded Linux and Windows CE. fpGUI Toolkit can be used for Open Source and Commercial applications.
  
 
fpGUI is a widgetset completely written in Object Pascal. It links directly with the underlying windowing system (Xlib, GDI), and thus avoids the need for many large external libraries (eg: Qt, GTK etc). The main design goal is to get a consistent look and behavior across platforms.
 
fpGUI is a widgetset completely written in Object Pascal. It links directly with the underlying windowing system (Xlib, GDI), and thus avoids the need for many large external libraries (eg: Qt, GTK etc). The main design goal is to get a consistent look and behavior across platforms.
  
'''Latest released version: v1.2 (2014-08-20)'''
+
 
 +
'''Latest released version: v1.4.1 (2015-09-02).'''
  
 
For more information, see the fpGUI Toolkit website at:
 
For more information, see the fpGUI Toolkit website at:
Line 9: Line 12:
  
  
'''fpGUI is on GitHub too:'''
+
'''Complete documentation.'''
 +
 
 +
Detailed documentation is here =>
 +
* http://fpgui.sourceforge.net/apidocs
 +
 
 +
 
 +
'''fpGUI is also on GitHub.'''
  
 
Last stable version =>
 
Last stable version =>
Line 15: Line 24:
  
  
Last trunk/develop version (very stable too) =>
+
Last develop (trunk) version (very stable too) =>
 +
* https://github.com/graemeg/fpgui/tree/develop
 +
 
 +
 
 +
==Installing fpGUI:==
 +
 
 +
Go to fpGUI site:
 +
 
 +
Last stable version is in the 'master' branch =>
 +
* https://github.com/graemeg/fpgui/
 +
 
 +
 
 +
The 'develop' branch contains the latest changes (and normally very stable too) =>
 
* https://github.com/graemeg/fpgui/tree/develop
 
* https://github.com/graemeg/fpgui/tree/develop
  
  
See also
+
-Click on Download ZIP button, on right side...
* [[fpGUI Interface]]
+
 
 +
-Unzip it.
 +
 
 +
 
 +
==Compile fpGUI code from terminal:==
 +
 
 +
You may use a extrafpc.cfg file and @extrafpc.cfg as fpc parameter.
 +
 
 +
 
 +
=> Example of extrafpc.cfg file (change fpGUI_dir according of your installation and save extrafpc.cfg in same directory as application-code):
 +
 
 +
 
 +
<pre>
 +
-Fi/fpGUI_dir/src/
 +
-Fi/fpGUI_dir/src/corelib/
 +
-Fi/fpGUI_dir/src/corelib/x11/
 +
-Fu/fpGUI_dir/src/
 +
-Fu/fpGUI_dir/src/corelib/
 +
-Fu/fpGUI_dir/src/gui/
 +
-Fu/fpGUI_dir/src/corelib/x11/
 +
-FUunits/
 +
-FE./
 +
</pre>
 +
 
 +
 
 +
And you may compile your fpGUI application like that :=>
 +
 
 +
> '''fpc myfpguiapp.pas @extrafpc.cfg'''
 +
 
 +
 
 +
==Compile fpGUI code from Lazarus:==
 +
 
 +
 
 +
Configure Lazarus for hosting pure fpGUI applications: =>
 +
 
 +
:- in Package, => Open Package (.lpk)
 +
 
 +
Choose:
 +
 
 +
:- for Windows : <fpgui>/src/corelib/gdi/fpgui_toolkit.lpk
 +
 
 +
:- for Linux/FreeBSD/OSX : <fpgui>/src/corelib/x11/fpgui_toolkit.lpk
 +
 
 +
Compile the package.
 +
 
 +
Now you may compile pure fpGUI applications with Lazarus.
 +
 
 
==License==
 
==License==
 
fpGUI uses the LGPL v2 license with a static linking exception - the same as the Free Pascal Compiler's RTL.
 
fpGUI uses the LGPL v2 license with a static linking exception - the same as the Free Pascal Compiler's RTL.
 +
 +
==Support==
 +
A dedicated support newsgroup exists for fpGUI Toolkit. Connection details are as follows:
 +
 +
{| class="wikitable"
 +
|-
 +
!
 +
! Details
 +
|-
 +
| '''NNTP Server'''
 +
| geldenhuys.co.uk
 +
|-
 +
| '''Port'''
 +
| 119
 +
|-
 +
| '''Group'''
 +
| fpgui.support
 +
|}
 +
 +
Any News Client (eg: Mozilla Thunderbird, [https://github.com/graemeg/xananews/releases XanaNews], Opera Mail etc) can be used to connect to the news group. This is by far the best option and gives you the freedom to use your preferred news client software.
 +
 +
In a pinch, there is also a HTML webnews interface. This interface has some limitations (eg: attachments), but is good enough to read and reply to messages when on the go via a web browser (smartphone or desktop). To access the HTML interface, visit the following URL: [[http://geldenhuys.co.uk/webnews/ http://geldenhuys.co.uk/webnews/]]
  
 
==Screenshots==
 
==Screenshots==
 
This is a small sample of what the fpGUI Toolkit's new 2D graphics engine can do. Full sub-pixel accuracy, anti-aliased line drawing, anti-aliased text, alpha blending, fully customisable gradient and dash-line generator, gamma support etc. The 2D graphics engine is also fully implemented in Pascal, so no external libraries are required, and makes it very portable to other platforms.
 
This is a small sample of what the fpGUI Toolkit's new 2D graphics engine can do. Full sub-pixel accuracy, anti-aliased line drawing, anti-aliased text, alpha blending, fully customisable gradient and dash-line generator, gamma support etc. The 2D graphics engine is also fully implemented in Pascal, so no external libraries are required, and makes it very portable to other platforms.
  
[[image:fpGUI_Agg-powered.png]]
+
[[image:fpGUI_Agg-powered.png|center|none|frame|A demo application showing some AggPas rendering capabilities, now built into fpGUI Toolkit.]]
 +
 
 +
[[image:fpgui_plastic_medium_gray_theme.png|center|none|frame|A sample application showing one of the seven built-in themes.]]
 +
 
 +
More of fpGUI's built-in themes can be seen by visiting [http://geldenhuys.co.uk/~graemeg/themes/start.html this URL].
 +
 
 +
==See also ==
 +
* [http://fpgui.sourceforge.net fpGUI Toolkit homepage]
 +
* [[fpGUI Interface]] for Lazarus LCL
 +
* [http://www.turbocontrol.com/easyfpgui.htm '''Easy fpGUI'''] The easy way to try fpGUI and Free Pascal! Simply unpack the archive and you have a fully working FPC and fpGUI environment.
 +
 
  
 
[[Category:fpGUI]]
 
[[Category:fpGUI]]

Latest revision as of 14:10, 26 July 2017

English (en) español (es)

fpGUI is a Object Pascal toolkit for cross-platform application development. It provides single-source portability across Linux, MS Windows, *BSD, Solaris/OpenSolaris, ReactOS and embedded devices like Embedded Linux and Windows CE. fpGUI Toolkit can be used for Open Source and Commercial applications.

fpGUI is a widgetset completely written in Object Pascal. It links directly with the underlying windowing system (Xlib, GDI), and thus avoids the need for many large external libraries (eg: Qt, GTK etc). The main design goal is to get a consistent look and behavior across platforms.


Latest released version: v1.4.1 (2015-09-02).

For more information, see the fpGUI Toolkit website at:


Complete documentation.

Detailed documentation is here =>


fpGUI is also on GitHub.

Last stable version =>


Last develop (trunk) version (very stable too) =>


Installing fpGUI:

Go to fpGUI site:

Last stable version is in the 'master' branch =>


The 'develop' branch contains the latest changes (and normally very stable too) =>


-Click on Download ZIP button, on right side...

-Unzip it.


Compile fpGUI code from terminal:

You may use a extrafpc.cfg file and @extrafpc.cfg as fpc parameter.


=> Example of extrafpc.cfg file (change fpGUI_dir according of your installation and save extrafpc.cfg in same directory as application-code):


-Fi/fpGUI_dir/src/
-Fi/fpGUI_dir/src/corelib/
-Fi/fpGUI_dir/src/corelib/x11/
-Fu/fpGUI_dir/src/
-Fu/fpGUI_dir/src/corelib/
-Fu/fpGUI_dir/src/gui/
-Fu/fpGUI_dir/src/corelib/x11/
-FUunits/
-FE./


And you may compile your fpGUI application like that :=>

> fpc myfpguiapp.pas @extrafpc.cfg


Compile fpGUI code from Lazarus:

Configure Lazarus for hosting pure fpGUI applications: =>

- in Package, => Open Package (.lpk)

Choose:

- for Windows : <fpgui>/src/corelib/gdi/fpgui_toolkit.lpk
- for Linux/FreeBSD/OSX : <fpgui>/src/corelib/x11/fpgui_toolkit.lpk

Compile the package.

Now you may compile pure fpGUI applications with Lazarus.

License

fpGUI uses the LGPL v2 license with a static linking exception - the same as the Free Pascal Compiler's RTL.

Support

A dedicated support newsgroup exists for fpGUI Toolkit. Connection details are as follows:

Details
NNTP Server geldenhuys.co.uk
Port 119
Group fpgui.support

Any News Client (eg: Mozilla Thunderbird, XanaNews, Opera Mail etc) can be used to connect to the news group. This is by far the best option and gives you the freedom to use your preferred news client software.

In a pinch, there is also a HTML webnews interface. This interface has some limitations (eg: attachments), but is good enough to read and reply to messages when on the go via a web browser (smartphone or desktop). To access the HTML interface, visit the following URL: [http://geldenhuys.co.uk/webnews/]

Screenshots

This is a small sample of what the fpGUI Toolkit's new 2D graphics engine can do. Full sub-pixel accuracy, anti-aliased line drawing, anti-aliased text, alpha blending, fully customisable gradient and dash-line generator, gamma support etc. The 2D graphics engine is also fully implemented in Pascal, so no external libraries are required, and makes it very portable to other platforms.

A demo application showing some AggPas rendering capabilities, now built into fpGUI Toolkit.
A sample application showing one of the seven built-in themes.

More of fpGUI's built-in themes can be seen by visiting this URL.

See also