[logo] JX Application Framework
   
Home     
* Cart

Introduction

Why use a framework?

Download

GitHub

Vision
    API stability

    Code optimization

    Bibliography

Features
    Object messaging

    Extensibility

    Drag-and-Drop

    Networking

    3D Graphics

    Powerful tables

    Styled text editor

    Memory leak debugger

    Tutorial
    Class tree

    Open protocols

    Known bugs

    Future plans
    Projects

FAQ

Donate

Other software

What's new!

Log in  

   
     

Features

  • Built on top of powerful JCore library.

  • Flexible messaging system so objects can receive notification of changes in other objects. This can be used to implement Model-View-Controller designs.

  • Graphical layout editor that generates code.

  • Drag-and-Drop. (XDND version 4)

  • User-configurable button bar that cooperates with any particular menu bar.

  • Support for the basic application level objects:

    • Director (data in window doesn't need to be saved)
    • Abstract document (data in window needs to be saved)
    • File document (functionality for saving data in a file)
    • Dialog (both modal and modeless; data is automatically validated when entered)

  • Support for interacting documents.
    (e.g. One document can require that another document be opened and remain open.)

  • User preferences management via JPrefsManager and the mix-in class JPrefObject.

  • True support for multiple document applications. When the program is already running, any new invocation of the program contacts the existing process instead of starting a new one.
    (This is what we mean by a Multiple Document Interface, not Microsoft's ridiculous definition that requires reimplementing the window manager to provide windows within windows.)

  • Support for all the standard widgets:

    • Buttons
    • Checkboxes
    • Radio buttons
    • Hierarchical menus

      • Scrolls if not all the menu items can fit on the screen at once.
      • Submenu remains open as long as the mouse is moving towards it, even if the path crosses other items on the parent menu.
      • Unlimited submenu depth (but be nice and don't drive your users nuts by abusing this!)

    • Input fields with an automated system for validating what is entered

      • text
      • integer
      • floating point
      • file
      • directory
      • regex
      • password
      • path/file (with tab completion)

    • Useful scrollbars
    • Partitions that users can drag to adjust space allocation in a window
    • Windows-style tabs that allow the user to switch between different panels within a single window

  • Easy to create customized widgets.

  • Powerful, flexible docking system gives users the option to arrange program windows any way they want within multiple dock windows, with almost no effort required by the developer!

  • Dynamic window layout. The application can show, hide, create, destroy, and resize widgets even while the window is visible.

  • Automated geometry management of all widgets, so each widget can adjust its size and/or position based on the size of its enclosure.

  • Searchable, hypertext on-line help system.

  • Hints. (the yellow boxes that explain what you are pointing at)

  • Add-on library provides 3D graphics support via the Mesa implementation of OpenGL.

  • Text editor class that supports fully styled text (i.e. each character can have a separate style).

  • Powerful 2D table class suite. Includes support for in-place editing of cell contents. Great for anything from spreadsheets to board games.

  • Support for several layouts in the same window, with each layout selectable via a "card file index." This index can be any widget that presents a set of choices, such as a menu, a table, or the row of tabs used in Windows95®.

  • Add-on library provides suite of classes for plotting data and functions.

  • Add-on library provides suite of classes for storing and displaying trees using the Macintosh® System 7 paradigm.

  • Built in, extensible file browser object.

  • Uniform interface for drawing to the screen, images for offscreen storage, and PostScript and Encapsulated PostScript (EPS) files (for printing).

    • Uniform interface to XImages (client side storage) and Pixmaps (server side storage)
    • Read and write JPEG, PNG, XPM, and XBM files.
    • Support for color approximation and preemptive color approximation.

  • Integrated support for the X selection mechanism (clipboard).

    • Choice of Macintosh Copy or X Selection model.
    • Persistent so copied data is never lost.
    • History of previous data to insure that remote applications can get the data they requested, no matter how slow the network connection is.
    • Transparent support of the incremental selection transfer protocol, so the user can copy and paste arbitrarily large amounts of data.

  • A single application can connect to an unlimited number of X servers.

  • Networking and process support is integrated into the event loop.

    • JMessageProtocol supports any ASCII message based protocol, so you'll never have to write any code below decoding complete messages.

  • Support for real-time applications via a safe mechanism for overriding the event loop.

  • Cooperative multi-tasking eliminates the need for threads. This provides support for periodic tasks such as animation and safety saving the user's data.

  • Object to display progress of lengthy operation.

  • Animated cursors and images.

  • JStringManager allows storing strings in separate data files, so they can easily be translated and changed without recompiling.

    • Full support for European languages
    • Support for user-customizable menu shortcuts by editing the menu items stored in the string database
    • Built-in support for toggling between Macintosh and Windows style menu shortcuts

  • Designed to work with multiple virtual desktops and both Click-to-Focus and Point-to-Focus.

  • Support for scrolling via wheel mice.

  • (NEW) Support for Xinerama.

  • Automatically works with session managers (e.g. Gnome and KDE) once you override JXApplication::CleanUpBeforeSuddenDeath().

  • 64-bit clean.

Copyright © 2010 New Planet Software