Free Vision

From Lazarus wiki
Revision as of 13:56, 6 February 2022 by Unxed (talk | contribs) (→‎Pascal)
Jump to navigationJump to search

Deutsch (de) English (en) 日本語 (ja) português (pt)

Overview

Free Vision is an application framework that allows you to design user friendly text mode applications. It is designed to be API-compatible with Borland's Turbo Vision framework.

Free Vision implements a full windowing system, where each window can be updated, moved and operated independently from other windows. It is implemented on top of the video, keyboard and mouse units and Free Vision applications can therefore run on most FPC platforms using the write once, compile anywhere principle.

The Free Pascal IDE uses Free Vision for its user interface. Textmode IDE development lists a simple object chart of IDE + FV objects.

Free Vision is not 100% complete:

  • the colorsel unit is missing, and the support to use it (palette support) might not be complete and/or debugged since the TV->FV transition in +/- 2000.

Availability:

  • Debian Linux: => install the package: fp-units-fv
  • Other distributions/OSes: Free Vision is included with the FPC source package.

To do list

These items were written on a separate page, last edited May 2008:

  • getting it fully up to speed and compatible with TV
  • endianness and 64-bit clean work.
  • filepaths to ansistring ? TP compat less of a problem nowadays. (copy to separate version if necessary?)

Turbo Vision

The Turbo Vision framework originates from Borland, and was delivered with the later incarnations on the Turbo range of compilers. There were two versions, a C++ one, and a Pascal one. The C++ was open sourced (PD) at some point, the Pascal didn't follow, which prompted FPC to search for an alternative.

This was found in the shape of Free Vision, which (afaik) was a backport of the PD C++ code back to Pascal by Leon de Boer for use in graphics mode. As far as I can remember, Pierre and Peter backported the code back to textmode (coordinate system change that affected a lot of code!), ported missing parts, improved compatibility, and hooked it into the Textmode IDE. Note that the sf.net TVISION page falsely states that FPC uses Pascal sources donated by Borland, however it seems that nobody reacts to mails there.

Turbo Vision codebases

There are currently a handful of Turbo Vision based codebases, all open source ones derived from the C++ version released by Borland.

C++

  • The C++ version as released by Borland (PD) Unfortunately after all the mergers of Borland, the FTP server it was on is dead.
  • Possibly non free versions as delivered with TC++ (and Object Vision?)
  • The sf.net C++ version, but it is GPL (a GPL library, which severely hampers usage)
  • Another alternative is an older C++ TV version (BSD) at this homepage
  • There is also a modern alternative with support for C++17, UTF-8, etc., at this Github repository. This one is MIT licensed.

Pascal

  • The commercial versions packaged with Turbo Pascal compilers. These are still not open source in any form.
  • The (afaik heavily modified) BP7 version that was used for Virtual Pascal. (not open)
  • Free Vision, (LGPL-with linking exception). See above for details. Based on the C++ version.
  • Free Vision adopted for UTF-8
  • Free Vision unicode adoption branch

Tutorial

German (Deutsches) Tutorial to Free Vision:

The documentation of the individual components is available directly in the sources.