Home | About | Partners | Contact Us | Logout
SourceForge Logo VA Linux Systems

Welcome to the FXPLText widget homepage

Contents

What is FXPLText?

FXPLText collectively refers to a number of C++ classes which implement a text entry widget under the FOX GUI toolkit. The FXPLText package contains the source code plus a demonstration text editor called pltext. This editor an edit multiple files simultaneously, and supports infinite undo/redo and a host of other features for the convenience of programmers.

Since release 1.2, many bugs have been fixed and many new features added. The FXPLText widget is mostly API-compatible with FXText, at least for basic functionality, although they have diverged considerably since the previous release (based on FOX 0.99.140 or thereabouts).

To reiterate, fxpltext is a set of FOX classes designed for text processing. Instead of one monolithic text widget, the work is divided between several class hierarchies. The various base classes are:

  • FXPLText - the widget itself, which handles display, keyboard and most of the FOX messages.
  • FXPageFormat - handles layout of characters on the screen, including attributes.
  • FXTextSrc - central point, coordinates widgets and anchors using this buffer. Does back-end processing such as file I/O and transaction logging, as well as search functions.
  • FXTextAnchor - represent points in the text or ranges of text. Subclasses include cursor and selection.
  • FXFindDialog - search/replace dialog box.
  • fxpltext is not supposed to be a word processor. It does not handle proportional fonts, and it always wraps long lines. Then again, it has a number of features which make it more versatile than ordinary text widgets. The major features are:

  • A text source can be shared between multiple widgets. This allows multiple "views" to be open. Any change made via one widget is immediately visible in the others who happen to be displaying the same part of the buffer.
  • Text can be annotated with arbitrary number of FXTextAnchors. These objects specify virtual rendering member functions so that any reasonably sized glyphs can be used. Two basic annotations are the cursor (FXTextCursor) and current selection (FXTextSelection). Each annotation can render itself either as a glyph, or by influencing text forground/background color attributes.
  • Text anchors can also have a say in editing operations, and can be the source or sink for data. For example, if an FXOutputBracket is created, it can accept data from an input source (FXInputHandle) and insert the received data into the text source. It also prohibits cursor movement into itself, thus making it a read-only area of the text.
  • A few features have been added for coolness factor (although hopefully useful too):

  • Can display line numbers on LHS. Anchors can also render in line number area.
  • Can show in "greek text": this represents each char as 1 or 2 pixels. An entire file of about 400 lines can be represented. Clicking the middle button in a greek text widget will move another widget (sharing the same text source) to show that point. Try View->Greek.
  • Secondary selection supported: e.g., use 'find all' to highlight all matching strings. Can toggle between primary and secondary selection using Ctl-/.
  • Downloads

    This is the most recent release recommended for use (as opposed to development) of the package:

    fxpltext-1.3.tar.gz

    What is the Development Status of FXPLText?

    After a rather long interval, FXPLText is once again under active development (only me [tekno@users.sourceforge.net] at the moment). Well, I just moved internationally, which kinda disrupts the cozy relationship with ones ISP; not to mention wife and kids...

    In the works: better support for external processes, including ANSI terminal emulation; better efficiency with large numbers of text brackets.

    Links

    FXPLText project page.

    FOX GUI Toolkit home page. FOX list servers are hosted by SourceForge.


    All trademarks and copyrights on this page are properties of their respective owners. Forum comments are owned by the poster. The rest is copyright ©1999-2000 VA Linux Systems, Inc.