Thursday, July 15, 2010

Refactorings and Code Separation

Big software can develop features in two ways: vertically and horizontally. The vertical way means that it improve it's feature base to cover more fields (or usages), when horizontal way means that the existing features are improved in usage, usability, sub-options, etc.
You may find another way to show the growing of a product, the organic way. This organic way of developing a software is to grow horizontally, then vertically, then horizontally, and so on, to be balanced way. As the releases of 1.4.x was mostly an horizontal development (it mostly improve the look&feel and fixes more conceptual design flaws as transformations), this release will try to be more "advanced" in the way user will interact with shapes.
Today I've moved projects of NaroCAD around, to make them more logical and to make separation better. The reason is that the feature I try to work on, a floating contextual logical toolbar, I want to add (almost) everything in it. It may be just simple as copy/paste, but as complex as to put property grid in it. But the property grid code was self-contained, so I've did not have access to the PG's code. Also PG have some features that have no sense in the floating toolbar context (like filtering fields you want to skip from visualization) or to add more information that may not be necessary: mainly the color or transformation code that will make the control too busy.
Probably if in future iteration the layer support will be added, I want to make sure that the control will be capable to embed it. So I've made this toolbar to be WPF-based and I've added support to add for now Ribbon group buttons, but not only.
So wait very soon to get a fairly powerful and most important, an useful live toolbar that will enable when you click click on a shape or anything on a scene. This nightly it does position only an empty ribbon button group, but very soon you will see more and more complete.

No comments: