zamtmn / metadarkstyle

67 stars 16 forks source link

TTreeView — harmful change of the expand sign type #8

Closed furious-programming closed 1 year ago

furious-programming commented 1 year ago

https://github.com/zamtmn/metadarkstyle/blob/9af2e15ab10129baf54b9b768979c04bada81ccb/src/uwin32widgetsetdark.pas#L619

Please, do not change the style of the expand sign. If the type of the expand sign is changed in the package, it will affect all existing TTreeView controls in the designer, and thus, it will not be possible to keep e.g. tvestTheme in the application created in the Dark Lazarus.

This problem exists for a while, the package affects not only expand sign but e.g. some colors of the controls and probably other properties. The designer changes those properties and spoil the forms settings. That's why currently I'm using original Lazarus to develop windowed applications and dark Lazarus for non-windowed programs.

Please, try not to explicitly chenge the component properties, so the designer will not change anything without the user knowledge. I suspect that it will be hard or even impossible, so the best solution here is just to exclude the designer window from the theming process, as I sugested in the #1 issue.

klaus101 commented 1 year ago

Please allow me some additional remarks, as i see it from a purely application code perspective:

tv1

Which would result in an app as of (unsatisfying):

tv1_b

tv2

tv3

Which would result in an app as of (better):

tv3_b

---- Conclusion in short: ---- I'd vote not to predefine a ExpandSignType. And for ExpandSignColor, define a color lighter than COLOR_GRAYTEXT. Or allow a scheme’s custom setting for the ExpandSignColor.

zamtmn commented 1 year ago

Please, do not change the style of the expand sign.

As far as I understand, the original part of the question has been solved and the symbol no longer changes in the designer. It may make sense to add the replace symbol option or leave it as is in the theme settings file?

in https://github.com/zamtmn/metadarkstyle/commit/d683e2710a87a99beb18c0a983e485ca676824f0 added TreeViewExpandSignOverride:=true; TreeViewExpandSignValue:=tvestArrow; you can now control the override of the symbol in the theme config

it remains to decide what to do with the selection colors. let's go beyond Colors[]?

klaus101 commented 1 year ago

The colors are of course a matter of taste resp. of invividual interests in readability (mine was specifically driven by the custom painting for the selected and hovered tree nodes, as of the imaages above).

So it's probably a candidate for customization, and so i think too that a setting in udarkstyleschemes analoguosly to DrawControl.CustomDrawScrollbars could be a good place. Maybe something like DefaultDark.DrawControl.CustomTreeViewExpandSignColor:=RGBToColor(.... ? ? (That's what you mean with "beyond Colors[]" ?)

Of course. type tvestTheme wouldn't allow - afaics by nature - to override the color; one must be aware of