Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2026-02

fpGUI Toolkit v2.0.0 has been released

8 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

Hi everyone,

I'm super happy to announce the v2.0.0 release of fpGUI Toolkit.

https://github.com/graemeg/fpGUI

It only took 10 years since the last "official release". Oops. :-D

As you can imagine, a full changelog would be massive, so here are some highlights of the larger work.

== AggPas (Anty-Grain Geomery) canvas ==

A 100% implemented in Object Pascal, 2D graphics canvas with advanced anti-aliasing and transparency now included. You can use the native platform graphic rendering, or opt for AggCanvas, which gives consistent and high quality rendering on all platforms

== Alien Windows branch was merged in ==

Before, every widget had it's own platform window handle. Now, the top-level window is the only window that has a native OS window handle, and all widgets on that form has "virtual handles". This means much less resources needed by the OS, more consistent drawing, clipping and event handling. It also allows all widgets to fully
support transparency.

== Layout Manager System ==

fpGUI now has a pluggable layout manager architecture inspired by Java Swing's LayoutManager interface. Instead of manually calculating widget positions, you can assign a layout manager to any container and let it handle positioning, sizing, and resize behaviour automatically.

The layout manager system coexists with the existing Align/Anchors mechanism. It is entirely optional -- existing code continues to work without changes.

Three layout managers are included:

* FlowLayout - arranges widgets in a horizontal row with automatic wrapping
* BorderLayout - five-region docking (North/South/East/West and Center)
* MigLayout - a full port of Java's MigLayout v11.4.2 (see below)

A quick start guide is available at:
docs/layout_managers_quick_start.adoc

== MigLayout v11.4.2 Port ==

The headline feature is a comprehensive port of MigLayout v11.4.2 from Java to Object Pascal. MigLayout is one of the most powerful and flexible layout managers available in the Java ecosystem, and fpGUI now has a native implementation.

Supported features:

* Grid-based layout with automatic wrapping
* Column and row spanning (SpanX/SpanY)
* Growth priorities (GrowX/GrowY) for distributing extra space
* Cell alignment (left/center/right/top/bottom/fill)
* Docking (North/South/East/West) outside the normal grid
* Component gaps with physical unit support (px, mm, cm, inch, pt)
* Platform-aware default gaps and sizing
* Fluent constraint API with automatic reference counting
* Constraint string parser for concise constraint definitions
* Debug visualisation overlay for layout inspection
* Multi-DPI / HiDPI support via logic units
* Platform-specific button ordering (OK/Cancel vs Cancel/OK)

The port includes 396 unit tests, all passing cleanly.

A comprehensive demo application is available at
examples/gui/lm-mig/ with eight feature panels demonstrating basic grids, alignment, spanning, growth, complex layouts, constraint parsing, button ordering, and docking.

== FPReport (FPC's reporting system) integrated into fpGUI ==

What to generate reports, display them in your application, export them to PDF of PNG. Now it's possible.

== Widget Sizing API ==

A new sizing model separates a widget's intended size from its actual rendered size.

Widgets now have:

* Width/Height - the developer's preferred (intended) size
* ActualWidth/ActualHeight - the actual rendered size after layout
* PreferredSize - explicit preferred size that layout managers read
* MinWidth/MinHeight - minimum size constraints

Some widgets (TfpgLabel, TfpgButton) now calculate their preferred size automatically based on content and font, so explicit sizing is often unnecessary.

SetPosition() has been deprecated in favour of setting individual properties (Left, Top, Width, Height). The uidesigner has been updated to generate the new property-based code.

== PasBuild Build System ==

The project has adopted PasBuild as its build tool. The repository structure has been reorganised:

* Framework source: framework/src/main/pascal/corelib/
* Test source: framework/src/test/pascal/
* Build output: framework/target/

UIDesigner is now managed by the new build tool as well, and will by default compile after the framework is compiled. You can compile them independently if you want.

See PasBuild documentation for more details:
https://github.com/graemeg/PasBuild

Build commands:

pasbuild compile -p unix,agg (build framework)
pasbuild test -p unix,agg (run unit tests)

All example extrafpc.cfg files have been updated for the new directory structure.

== macOS Cocoa Backend ==

An initial macOS Cocoa backend has been implemented (experimental). This adds native macOS support alongside the existing X11 and GDI backends.

== HiDPI and Rendering Improvements ==

* Fixed DPI scaling for widgets designed at 96dpi but displayed at higher densities
* Focus rectangle line width now scales for HiDPI displays
* Font height calculation improved (ascent + descent) to prevent text clipping
* AggCanvas text baseline positioning fixed for descender characters
* Canvas dimension guards added across X11/GDI/Cocoa backends to prevent range errors during extreme resize operations
* AggPas 32-bit and 64-bit compatibility fixes

== DocView Application ==

Lots of DocView (help viewer) improvements, and several UI windows/dialogs have been migrated to MigLayout:

* Contents tab
* Index tab
* Search tab
* Notes & History tabs

The File Open/Save and Directory Select dialogs have also been converted to use MigLayout management.

I'll be migrating more applications, tools and example to MigLayout for better HiDPI support.

== Other Notable Changes ==

   * Deprecated function calls replaced with method equivalents
     across the codebase
   * Command line parameter handling migrated to ICmdLineParams
     interface
   * TStringHashList replaced with FPC's TFPDataHashTable for PO
     file handling
   * TagPointer deprecated (FPC's TComponent.Tag now supports
     64-bit)
   * Font property moved to base widget class
   * Visible property moved to WidgetBase class
   * StyleManager assert logic fixes
   * Bug #83 (broken localise) fixed
   * Tab sheet resize flicker eliminated
   * TreeView scrollbar flicker fixed
   * Multiple memory leak fixes in MigLayout constraint handling
   * All compiler warnings from fpGUI code has been resolved
   * All range-check errors have been fixed

== Breaking Changes ==

* SetPosition() is deprecated - use Left/Top/Width/Height properties instead
* Directory structure changed - extrafpc.cfg paths updated
* TagPointer is deprecated - use Tag (now 64-bit capable) instead
* Deprecated function calls removed (use method equivalents)

== Documentation ==

* docs/layout_managers_quick_start.adoc
- 10-minute introduction to layout managers
* docs/miglayout_v11_port_plan.adoc
- detailed MigLayout port plan
* docs/layout_manager_implementation_plan.adoc
- architecture design document
* docs/toolkit_sizing_comparison.adoc
- widget sizing API design guide
* docs/api_design_intent_pathway.adoc
- API design intent documentation

Example demos for all three layout managers are in:
* examples/gui/lm-flow/
* examples/gui/lm-border/
* examples/gui/lm-mig/

And there are lots more, but too much to mention here. :)

Feedback, bug reports, and questions are welcome as always. I mostly monitor the GitHub bugtracker and the fpGUI support newsgroup - see website for details.

Lastly, thank you to the Free Pascal Compiler developers for making such an awesome compiler. Without that, fpGUI Toolkit would not have been possible. 🫶

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

Tomas Hajny
to Unknown author

On 2026-02-10 00:13, mailinglists--- via fpc-pascal wrote:

Hi Graeme,

Show quoted text 5 lines
I'm super happy to announce the v2.0.0 release of fpGUI Toolkit. https://github.com/graemeg/fpGUI It only took 10 years since the last "official release". Oops. :-D

.
.

== DocView Application == Lots of DocView (help viewer) improvements, and several UI windows/dialogs have been migrated to MigLayout:

.
.

Sorry for a silly question, but is the new release source-code release only, or are there precompiled binaries (e.g. of DocView) as well? I ask because the GitHub page references SourceForge, but the SourceForge page still shows fpGUI 1.4.1 as the latest version. The Releases link on GitHub itself states that "there aren't any releases here"; going to Tags shows the (non-existing ;-) ) release 2.0.0, but only as source code packages.

Thanks in advance

Tomas

Reply by email

Unknown author
to Tomas Hajny
Tomas Hajny wrote
Sorry for a silly question, but is the new release source-code release only, or are there precompiled binaries (e.g. of DocView) as well?

There's been a slight delay on updating the website. Based on previous download
statistics, hardly anyone downloaded binaries, so it's source-code releases only.

If the demand changes, I can revisit this again.

I'm not a big fan of SourceForge any more, but that's currently the home for fpGUI's website. I'll update the website to make it more clear where to grab the code from.

You can clone the SourceForge or Github repos (preferred), or download a snapshot
code archive from either:

Here, https://sourceforge.net/p/fpgui/code/ci/v2.0.0/tree/ or here, https://github.com/graemeg/fpGUI/tags

Both have a button or link to download the code as a zip or tar.gz archive.

Hope that helps.

Regards,
- Graeme -

Reply by email

Thomas Kurz
to Unknown author: I'm super happy to announce the v2.0.0 release of fpGUI Toolkit.…

Hey, this sounds pretty cool! Thank you for the great work!

Does it have any non-standard dependencies? Can I easily use it with Lazarus?

Kind regards,
Thomas

Earlier message 253 lines
----- Original Message ----- From: mailinglists--- via fpc-pascal To: FPC-Pascal users discussions Sent: Tuesday, February 10, 2026, 00:13:58 Subject: [fpc-pascal] fpGUI Toolkit v2.0.0 has been released Hi everyone, I'm super happy to announce the v2.0.0 release of fpGUI Toolkit. https://github.com/graemeg/fpGUI It only took 10 years since the last "official release". Oops. :-D As you can imagine, a full changelog would be massive, so here are some highlights of the larger work. == AggPas (Anty-Grain Geomery) canvas == A 100% implemented in Object Pascal, 2D graphics canvas with advanced anti-aliasing and transparency now included. You can use the native platform graphic rendering, or opt for AggCanvas, which gives consistent and high quality rendering on all platforms == Alien Windows branch was merged in == Before, every widget had it's own platform window handle. Now, the top-level window is the only window that has a native OS window handle, and all widgets on that form has "virtual handles". This means much less resources needed by the OS, more consistent drawing, clipping and event handling. It also allows all widgets to fully support transparency. == Layout Manager System == fpGUI now has a pluggable layout manager architecture inspired by Java Swing's LayoutManager interface. Instead of manually calculating widget positions, you can assign a layout manager to any container and let it handle positioning, sizing, and resize behaviour automatically. The layout manager system coexists with the existing Align/Anchors mechanism. It is entirely optional -- existing code continues to work without changes. Three layout managers are included: * FlowLayout - arranges widgets in a horizontal row with automatic wrapping * BorderLayout - five-region docking (North/South/East/West and Center) * MigLayout - a full port of Java's MigLayout v11.4.2 (see below) A quick start guide is available at: docs/layout_managers_quick_start.adoc == MigLayout v11.4.2 Port == The headline feature is a comprehensive port of MigLayout v11.4.2 from Java to Object Pascal. MigLayout is one of the most powerful and flexible layout managers available in the Java ecosystem, and fpGUI now has a native implementation. Supported features: * Grid-based layout with automatic wrapping * Column and row spanning (SpanX/SpanY) * Growth priorities (GrowX/GrowY) for distributing extra space * Cell alignment (left/center/right/top/bottom/fill) * Docking (North/South/East/West) outside the normal grid * Component gaps with physical unit support (px, mm, cm, inch, pt) * Platform-aware default gaps and sizing * Fluent constraint API with automatic reference counting * Constraint string parser for concise constraint definitions * Debug visualisation overlay for layout inspection * Multi-DPI / HiDPI support via logic units * Platform-specific button ordering (OK/Cancel vs Cancel/OK) The port includes 396 unit tests, all passing cleanly. A comprehensive demo application is available at examples/gui/lm-mig/ with eight feature panels demonstrating basic grids, alignment, spanning, growth, complex layouts, constraint parsing, button ordering, and docking. == FPReport (FPC's reporting system) integrated into fpGUI == What to generate reports, display them in your application, export them to PDF of PNG. Now it's possible. == Widget Sizing API == A new sizing model separates a widget's intended size from its actual rendered size. Widgets now have: * Width/Height - the developer's preferred (intended) size * ActualWidth/ActualHeight - the actual rendered size after layout * PreferredSize - explicit preferred size that layout managers read * MinWidth/MinHeight - minimum size constraints Some widgets (TfpgLabel, TfpgButton) now calculate their preferred size automatically based on content and font, so explicit sizing is often unnecessary. SetPosition() has been deprecated in favour of setting individual properties (Left, Top, Width, Height). The uidesigner has been updated to generate the new property-based code. == PasBuild Build System == The project has adopted PasBuild as its build tool. The repository structure has been reorganised: * Framework source: framework/src/main/pascal/corelib/ * Test source: framework/src/test/pascal/ * Build output: framework/target/ UIDesigner is now managed by the new build tool as well, and will by default compile after the framework is compiled. You can compile them independently if you want. See PasBuild documentation for more details: https://github.com/graemeg/PasBuild Build commands: pasbuild compile -p unix,agg (build framework) pasbuild test -p unix,agg (run unit tests) All example extrafpc.cfg files have been updated for the new directory structure. == macOS Cocoa Backend == An initial macOS Cocoa backend has been implemented (experimental). This adds native macOS support alongside the existing X11 and GDI backends. == HiDPI and Rendering Improvements == * Fixed DPI scaling for widgets designed at 96dpi but displayed at higher densities * Focus rectangle line width now scales for HiDPI displays * Font height calculation improved (ascent + descent) to prevent text clipping * AggCanvas text baseline positioning fixed for descender characters * Canvas dimension guards added across X11/GDI/Cocoa backends to prevent range errors during extreme resize operations * AggPas 32-bit and 64-bit compatibility fixes == DocView Application == Lots of DocView (help viewer) improvements, and several UI windows/dialogs have been migrated to MigLayout: * Contents tab * Index tab * Search tab * Notes & History tabs The File Open/Save and Directory Select dialogs have also been converted to use MigLayout management. I'll be migrating more applications, tools and example to MigLayout for better HiDPI support. == Other Notable Changes == * Deprecated function calls replaced with method equivalents across the codebase * Command line parameter handling migrated to ICmdLineParams interface * TStringHashList replaced with FPC's TFPDataHashTable for PO file handling * TagPointer deprecated (FPC's TComponent.Tag now supports 64-bit) * Font property moved to base widget class * Visible property moved to WidgetBase class * StyleManager assert logic fixes * Bug #83 (broken localise) fixed * Tab sheet resize flicker eliminated * TreeView scrollbar flicker fixed * Multiple memory leak fixes in MigLayout constraint handling * All compiler warnings from fpGUI code has been resolved * All range-check errors have been fixed == Breaking Changes == * SetPosition() is deprecated - use Left/Top/Width/Height properties instead * Directory structure changed - extrafpc.cfg paths updated * TagPointer is deprecated - use Tag (now 64-bit capable) instead * Deprecated function calls removed (use method equivalents) == Documentation == * docs/layout_managers_quick_start.adoc - 10-minute introduction to layout managers * docs/miglayout_v11_port_plan.adoc - detailed MigLayout port plan * docs/layout_manager_implementation_plan.adoc - architecture design document * docs/toolkit_sizing_comparison.adoc - widget sizing API design guide * docs/api_design_intent_pathway.adoc - API design intent documentation Example demos for all three layout managers are in: * examples/gui/lm-flow/ * examples/gui/lm-border/ * examples/gui/lm-mig/ And there are lots more, but too much to mention here. :) Feedback, bug reports, and questions are welcome as always. I mostly monitor the GitHub bugtracker and the fpGUI support newsgroup - see website for details. Lastly, thank you to the Free Pascal Compiler developers for making such an awesome compiler. Without that, fpGUI Toolkit would not have been possible. 🫶 Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

Nathan
to Unknown author: I'm super happy to announce the v2.0.0 release of fpGUI Toolkit.…

I'm just learning Pascal lately, I haven't made a complete app or project with Pascal yet, but making an app with a GUI is a bit more exciting than my command line attempts.

I'm wondering if the community has any project ideas or basic fpGUI project tutorials to give me a bit of a kickstart. I have a hard time getting started with projects.

Thank you for any direction you can give!

On Tue, Feb 10, 2026 at 3:15 AM mailinglists--- via fpc-pascal <

Show quoted text 253 lines
wrote: Hi everyone, I'm super happy to announce the v2.0.0 release of fpGUI Toolkit. https://github.com/graemeg/fpGUI It only took 10 years since the last "official release". Oops. :-D As you can imagine, a full changelog would be massive, so here are some highlights of the larger work. == AggPas (Anty-Grain Geomery) canvas == A 100% implemented in Object Pascal, 2D graphics canvas with advanced anti-aliasing and transparency now included. You can use the native platform graphic rendering, or opt for AggCanvas, which gives consistent and high quality rendering on all platforms == Alien Windows branch was merged in == Before, every widget had it's own platform window handle. Now, the top-level window is the only window that has a native OS window handle, and all widgets on that form has "virtual handles". This means much less resources needed by the OS, more consistent drawing, clipping and event handling. It also allows all widgets to fully support transparency. == Layout Manager System == fpGUI now has a pluggable layout manager architecture inspired by Java Swing's LayoutManager interface. Instead of manually calculating widget positions, you can assign a layout manager to any container and let it handle positioning, sizing, and resize behaviour automatically. The layout manager system coexists with the existing Align/Anchors mechanism. It is entirely optional -- existing code continues to work without changes. Three layout managers are included: * FlowLayout - arranges widgets in a horizontal row with automatic wrapping * BorderLayout - five-region docking (North/South/East/West and Center) * MigLayout - a full port of Java's MigLayout v11.4.2 (see below) A quick start guide is available at: docs/layout_managers_quick_start.adoc == MigLayout v11.4.2 Port == The headline feature is a comprehensive port of MigLayout v11.4.2 from Java to Object Pascal. MigLayout is one of the most powerful and flexible layout managers available in the Java ecosystem, and fpGUI now has a native implementation. Supported features: * Grid-based layout with automatic wrapping * Column and row spanning (SpanX/SpanY) * Growth priorities (GrowX/GrowY) for distributing extra space * Cell alignment (left/center/right/top/bottom/fill) * Docking (North/South/East/West) outside the normal grid * Component gaps with physical unit support (px, mm, cm, inch, pt) * Platform-aware default gaps and sizing * Fluent constraint API with automatic reference counting * Constraint string parser for concise constraint definitions * Debug visualisation overlay for layout inspection * Multi-DPI / HiDPI support via logic units * Platform-specific button ordering (OK/Cancel vs Cancel/OK) The port includes 396 unit tests, all passing cleanly. A comprehensive demo application is available at examples/gui/lm-mig/ with eight feature panels demonstrating basic grids, alignment, spanning, growth, complex layouts, constraint parsing, button ordering, and docking. == FPReport (FPC's reporting system) integrated into fpGUI == What to generate reports, display them in your application, export them to PDF of PNG. Now it's possible. == Widget Sizing API == A new sizing model separates a widget's intended size from its actual rendered size. Widgets now have: * Width/Height - the developer's preferred (intended) size * ActualWidth/ActualHeight - the actual rendered size after layout * PreferredSize - explicit preferred size that layout managers read * MinWidth/MinHeight - minimum size constraints Some widgets (TfpgLabel, TfpgButton) now calculate their preferred size automatically based on content and font, so explicit sizing is often unnecessary. SetPosition() has been deprecated in favour of setting individual properties (Left, Top, Width, Height). The uidesigner has been updated to generate the new property-based code. == PasBuild Build System == The project has adopted PasBuild as its build tool. The repository structure has been reorganised: * Framework source: framework/src/main/pascal/corelib/ * Test source: framework/src/test/pascal/ * Build output: framework/target/ UIDesigner is now managed by the new build tool as well, and will by default compile after the framework is compiled. You can compile them independently if you want. See PasBuild documentation for more details: https://github.com/graemeg/PasBuild Build commands: pasbuild compile -p unix,agg (build framework) pasbuild test -p unix,agg (run unit tests) All example extrafpc.cfg files have been updated for the new directory structure. == macOS Cocoa Backend == An initial macOS Cocoa backend has been implemented (experimental). This adds native macOS support alongside the existing X11 and GDI backends. == HiDPI and Rendering Improvements == * Fixed DPI scaling for widgets designed at 96dpi but displayed at higher densities * Focus rectangle line width now scales for HiDPI displays * Font height calculation improved (ascent + descent) to prevent text clipping * AggCanvas text baseline positioning fixed for descender characters * Canvas dimension guards added across X11/GDI/Cocoa backends to prevent range errors during extreme resize operations * AggPas 32-bit and 64-bit compatibility fixes == DocView Application == Lots of DocView (help viewer) improvements, and several UI windows/dialogs have been migrated to MigLayout: * Contents tab * Index tab * Search tab * Notes & History tabs The File Open/Save and Directory Select dialogs have also been converted to use MigLayout management. I'll be migrating more applications, tools and example to MigLayout for better HiDPI support. == Other Notable Changes == * Deprecated function calls replaced with method equivalents across the codebase * Command line parameter handling migrated to ICmdLineParams interface * TStringHashList replaced with FPC's TFPDataHashTable for PO file handling * TagPointer deprecated (FPC's TComponent.Tag now supports 64-bit) * Font property moved to base widget class * Visible property moved to WidgetBase class * StyleManager assert logic fixes * Bug #83 (broken localise) fixed * Tab sheet resize flicker eliminated * TreeView scrollbar flicker fixed * Multiple memory leak fixes in MigLayout constraint handling * All compiler warnings from fpGUI code has been resolved * All range-check errors have been fixed == Breaking Changes == * SetPosition() is deprecated - use Left/Top/Width/Height properties instead * Directory structure changed - extrafpc.cfg paths updated * TagPointer is deprecated - use Tag (now 64-bit capable) instead * Deprecated function calls removed (use method equivalents) == Documentation == * docs/layout_managers_quick_start.adoc - 10-minute introduction to layout managers * docs/miglayout_v11_port_plan.adoc - detailed MigLayout port plan * docs/layout_manager_implementation_plan.adoc - architecture design document * docs/toolkit_sizing_comparison.adoc - widget sizing API design guide * docs/api_design_intent_pathway.adoc - API design intent documentation Example demos for all three layout managers are in: * examples/gui/lm-flow/ * examples/gui/lm-border/ * examples/gui/lm-mig/ And there are lots more, but too much to mention here. :) Feedback, bug reports, and questions are welcome as always. I mostly monitor the GitHub bugtracker and the fpGUI support newsgroup - see website for details. Lastly, thank you to the Free Pascal Compiler developers for making such an awesome compiler. Without that, fpGUI Toolkit would not have been possible. 🫶 Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Unknown author
to Nathan

Hello Nathan,

Nathan wrote
I'm wondering if the community has any project ideas or basic fpGUI project tutorials to give me a bit of a kickstart. I have a hard time getting started with projects.

Inside the fpGUI code repository, there are a lot of examples in 'examples/gui/' directory. They are not the best, but are purposely small and try and showcase just one thing each. So should be relatively easy to digest.

Regards,
Graeme

Reply by email

Tomas Hajny
to Unknown author: There's been a slight delay on updating the website. Based on previous download…
mailinglists--- wrote
On 2026-02-10 15:32, Tomas Hajny via fpc-pascal wrote:

Hi Graeme,

Show quoted text 10 lines
> Sorry for a silly question, but is the new release source-code > release only, or are there precompiled binaries (e.g. of DocView) as > well? There's been a slight delay on updating the website. Based on previous download statistics, hardly anyone downloaded binaries, so it's source-code releases only. If the demand changes, I can revisit this again.

.
.

OK, no problem with that. I downloaded the source code and checked for documentation for building. I found this documentation for building fpGUI (for different scenarios like PasBuild, Lazarus, FP IDE and partly also the command line FPC). Personally, I'd use the command line version, but that focuses only building of individual example units, thus not directly usable for DocView (see my original question above) without previously building fpGUI. Considering your announcement of PasBuild, I considered that to be the preferred solution. The directions for building using PasBuild didn't mention anything about DocView specifically - and indeed, using the command suggested to be used for build using PasBuild didn't even touch DocView. I tried to find any documentation specific for building DocView in the docview folder, but couldn't find anything there. Finally, I found that building it using "fpc @extrafpc.cfg docview.lpr" worked (after the previous fpGUI compilation using PasBuild), but a bit more specific information might be useful (especially considering that e.g. the included docdump tool cannot be compiled that way - I found how to compile that one as well, not really difficult from technical point of view, just mentioning that it might a be a bit more user friendly).

Apart from that, I found strange/unwanted artifacts with the DocView version compiled this way and running under MS Windows. I guess that they're probably related to fpGUI rather than DocView itself - as an example, the "OK" button in the "About" dialogue windows misses the upper line until pressed and the vertical lines used in the included ESC.INF file are not connected any longer (unlike with the latest precompiled DocView version 1.4).

In addition, I noticed that the new version of DocView doesn't provide the opportunity to specify the document codepage (previously available in version 1.4, although with a limited set of options - however, that could be extended). That is not necessarily good - I know that the codepage information might be available in the INF file itself (or that one could have specified it on the IPFC command-line), but IPFC had a very limited set of supported codepages, thus the real codepage used for a particular document might be different from the one specified in the header of that document. I didn't have the possibility to check what happens if opening such documents in the latest DocView, but I suspect that it might not work very well...

Tomas

Reply by email

Unknown author
to Tomas Hajny
Tomas Hajny wrote
OK, no problem with that. I downloaded the source code and checked for documentation for building.

Thank you for the feedback Tomas, it's much appreciated. I'll improve the documentation on building the framework and included applications before the next release. And yes, my project is leaning towards PasBuild as the preferred option (but not the sole option), which gives a much easier and intuitive experience. I'm currently adding the examples into the [pasbuild] fold too, as well as any other utilities included with fpGUI.

Apart from that, I found strange/unwanted artifacts with the DocView

Yes, that was reported and fixed, and will be part of the 2.0.4 release coming soon.
It was a general fpgui rendering issue.

In addition, I noticed that the new version of DocView doesn't provide the opportunity to specify the document codepage

This was reported too, and also fixed - including a lot of other bug fixes and improvements (well over 30 fixes in general for the next 2.0.4 release so far).

Regards,
- Graeme -

Reply by email