bombasticbob / X11workbenchProject

The X11 Work Bench, an IDE for working on X11 applications, with a simple C language toolkit that should be familiar and easy to use for old school GUI programmers (currently pre-alpha state)
Other
4 stars 0 forks source link
c cplusplus cross-platform freebsd ide language-toolkit linux posix pre-alpha programming x11

X11workbenchProject

The X11 Work Bench, an IDE for working on X11 applications, with a simple C language toolkit that should be familiar and easy to use for old school GUI programmers

This application is in a pre-alpha state, which basically means that it's non-functional, but has a lot of interesting features. For example, the toolkit's basic functionality (minus some details) is working. The sample 'Hello World' application should compile and run. And the library itself will build properly.

However, it does not (yet) function as in the project description. Not yet, anyway.

This project has traditionally been hosted at:

http://sourceforge.net/projects/X11workbench

It is likely to remain there, but only as binary ZIP downloads. The actual source tree, issues, wiki, and online documentation will be here on github.

(more to come)

For licensing information, see LICENSE and COPYING.

For build information, see BUILD.

For API documentation (generated by doxygen)

http://bombasticbob.github.io/X11workbench/

                 MOTIVATION AND PHILOSOPHY
                 -------------------------

'DLL Hell' is starting to creep into the non-windows world of Linux and BSD. Additionally, the edit controls offered by Qt and GTK just don't do the kinds of things that PROGRAMMERS need. And though these toolkits are cross-platform (being open source), getting a cross-platform version of them working on a NEW platform is extremely difficult.

Also there appears to be a general LACK of really good open source integrated development packages for the C and C++ languages. If you want developers to write code for Linux or BSD for X11, you need to provide them with tools that enable them to easily do so, or the cost for porting existing applications will be too high.

Without mentioning names, certain open source packages restrict you to specific toolkits, don't have decent C or C++ support, or really stink when it comes to creating a simple dialog box. Other commercial tools also stink when it comes to their over-complexity and lack of editor features that I personally find extremely important. If I am going to pay for something I want it to be usable by ME.

It also needs to be VERY simple to distribute X11 applications. The current GUI toolkits, with their EXCESSIVELY LONG LISTS of shared library pre-requisites and run requirements, make it "that much more difficult" for the developer that wants his C or C++ application to run on a non-Windows platform. And you can't simply assume that all of those packages will already be installed, either.

By using X11 client libraries as the ONLY required subsystem necessary to run the application, you avoid the need of adapting a large amount of 3rd party code to your environment, MOST of which won't even be used by your application! After all, I wouldn't need all of the gtk multimedia and font support just to write THIS application.

The difficulty arises when you look at just how 'low level' X11 really is. All of the things you take for granted in developing an application for a GUI remind you of why toolkits like Qt and gtk exist.

X11workbench has its own built-in lightweight toolkit that's designed specifically for X11workbench. You are, of course, free to use it in your own code. Since it was designed specifically for X11workbench, it's as lean and mean as it can be. The down side, of course, is the amount of time it took for me to develop it.

To make X11workbench as expandable and compatible as possible, the interface it uses for 'plug-in' extensions is as broadly compatible as possible.

Accessibility features are limited to font selection and keyboard hot-keys. Great care has been taken to support keyboard-based shortcuts for every menu option, so operation WITHOUT a mouse is not only possible, it may even be better.