Do you want to say that you are worried that adding some capabilities might make your chart not work with other back-ends ?
No, no, as I already said, that is not the problem.
Let me illustrate with concrete example. Suppose I want to add gradients, say, to bar series.
A naive solution would be to add Color1, Color2 and GradientDirection properties to the
TBarSeries class.
However, individual bars can be colored differently by supplying color from the chart source,
so I need to deal with that. Say, I add another property "SourceColorGradientIndex",
which will allow user to replace either Color1 or Color2 with the chart source color.
Then, there are brush patterns, which should interact with gradients somehow --
either one should disable the other, or they should somehow be combined, perhaps
controlled by another property.
After that, there are multi-valued series (aka stacked bars, see multi demo).
The colors of multi-valued series are controlled by Styles property
of the TBarSeries.
So yet another property should be added to control how gradients work with multi-valued series.
After implementing all of the above, similar changes should be done to other series types
(there are currently 12 of those) and to elements of TChart itself, such as
backwall, title/footer and axises.
The above, although a lot of work, is not the problem yet.
But if, afterwards, a user comes and asks for three-color gradients -- then
all the steps above have to be repeated. THAT is the problem I am trying to avoid.
It would be clear for me if you gave me a list, and with each item if you absolutely need it or if it would be easier for you or if it's completely optional to achieve your work.
Sure. Only one item is absolutely needed -- that is a working package.
I have a implemented the back-end for a few days already, and it is not published only
because of this problem. For now, see attached screenshot instead of demo.
All others are "nice to have", but I'd say the "nicest" of them would be
1) Clipping
2) Font.Orientation
3) Brush.Style