Common vs Core

Hi !
I’v got a very general question :
Why is Common so different from Core ? I mean, you made Common to simplify the use of Core, but it seems like you recoded Core. I ask this because i find it very hard to access the Core fetures when using the Common tools, hence i have to choose from start if i use Core or Common.
Was it not possible to make Common just a kind of extension of Core ?

Anyway, tank you for your work, it made me gain a lot of time !

I was (and I am) not satisfied with Core. To me Core became too complex. I’ve wrote a few applications with Core only and always I needed to add a lot of code to implement tiny features missing in Core. From this arose the idea of Common, Common should be nothing more than a set of missing features.

It was early on a goal that Common does not to add any new complexity to Core. And from this goal it was clear that Common could not be an extension, but must be layer atop of Core. This also allowed me to assume that Common alone has access to Core, implementing some features not very general (e.g. the minimize, maximize, etc… buttons).

From today’s perspective this layer-design has pros and cons.

  • Some features, like setting the colors of titles/tabs, require some parameters of Core to be set in a special way (in this case the DockTheme). This would be hard to achieve if Common would be an extension.
  • On the other hand it is hard to access features of Core (like dock-acceptances, to restrict movements of Dockables).

Why is Common so different from Core ?

Both of them had and have very distinctive functions. Core is low level stuff, Common deals with high level stuff.
Today the only goal of Core is to provide the basic functions necessary to operate.
Common’s goal is to reorganise Core, to add some features, to provide a nice view of ugly Core.

I mean, you made Common to simplify the use of Core, but it seems like you recoded Core.

Common tries to wrap around the features of Core to add its stuff (e.g. Core-Dockables are stateless while Common-CDockables are stateful). This might sometimes look as if it is just a recoding, but most times (not always :wink: ) it is not.

… could this been done with, for example, an implementation like „CDockable extends Dockable“? Yes, but that would make the interface more complex.

Thanks a lot for this very comprehensive answer.
So in a nutshell, let’s use Common and let you deal with Core…

Thanks