GB3 (Gribouillis version 3) is the third major version of my first try to make a higly portable painting program.
GB3 is a full re-write and better MVC design of the previous version (GB2).
Goals are:
To reach them GB3 uses following technologies:
GB3 is designed to be simple: it's not (for the moment…) an image editor/manipulator. It takes some ideas seen since a long time on Amiga, but also on OS stamped modern, like Linux.
We'll find some similarities with following projects: ChibiPaint, DrawPile, FlowPaint, Krita, MyPaint and Qaquarelle.
Current version is 3.1.500.
GB3 as all my others programs is available under Grunch using my Grunch database.
Download it and install the file in directory <Grunch directory>/Database/User
.
Grunch handles automatically for you all dependencies solving and installation!
Gribouillis requires following dependencies:
Platform | URI | Size | MD5 |
---|---|---|---|
MorphOS-PPC | MUI view - v3.1.500 | 1.5 MB | a630177bcd5d19a29c5dfdef37acc405 |
Sources are available as snapshot of the same revision used to generate binaries releases.
Only if you know how to build it yourself (eg. for other another platforms) or for you information .
Platform | URI | Size | MD5 |
---|---|---|---|
Any | Sources - v3.1.500 | 1.0MB | f93f6b49a96120fd6f2541a8662f6884 |
(This category is only maintained for the current release and subject of changes).
Numerous others supposed cross-platform projects fail to reach this goal due to miss-understanding of used technologies. This is mostly seen for applications using graphic user interfaces (GUI).
Almost cross-platform projects try to find a toolkit adapted to the application's main language. This portable toolkits are written to expose the most common denominator between native GUI toolkits on each system.
Unfortunately most of the time these toolkits differs largely from each one, causing troubles and difficulties to keep nice API interface and system-friendly aspect in the same toolkit.
Except the language used, this is one reason of existence of so many portable GUI toolkits.
Consequence of this, toolkits don't try to expand to much their portability and limit their native support.
And for thus that don't try (like WxWidgets) to limit, porting them is a nightmare and even official examples are littered with platform conditional blocks to make them work.
So is another solution exists?
I think yes, I've found my solution just by using a not so young software design pattern knowns as MVC.
The idea is to apply the MVC rules stricly: user interface (UI) is loosely coupled of the functionality.
MVC stands for Model-View-Controler: This is not a new thing in software development, but this concept was never be used in a whole to separate platforms UI backends (aka the GUI toolkits).
So now the overall design is chosen, remains to find the language: Python is a good candidate!
Why?
One of the main features of GB3 (other than it's true multi-platform design ) is to not put limit to the drawing surface: you can always grow your image in all direction, it's border-less (excepted when saving obviously).