Icon management classes have been reworked
Reason for change
There has been a problem with leaking GDI resources on Windows due to CgIcon instances not being freed properly. The underlying problem was “white box” reuse of a bad implementation of an icon manager.
Change
A new hierarchy of icon managers has been provided based on the old implementation of EwxIconManager (which was the only correct implementation):
EwIconManager
EwButtonIconManager
WkIconManager
EwTriangleIconManager
WbIconManager
EwxIconManager
EwIconManager provides common behavior for its subclasses as well as the capability to manage individual icons.
EwButtonIconManager and EwTriangleIconManager provide specific support for tree hierarchy indicators.
WkIconManager (from WidgetKit/Controls - Runtime) and WbIconManager (from WindowBuilderPro – Runtime) have been deprecated and are empty classes kept only to satisfy any references to the classes in customer code.
EwxIconManager provides icon management specific to the EwExamples application.
EpIconManager (from ENVY/Packager) and JLOIconManager (from SUnit Browsers) have been removed since they exhibited the problem and provided no additional function over that provided with the new icon manager classes.
EwIconPolicy has 2 new convenience class methods available to create standard icon policies -- #defaultTrianglePolicy (for “twisty” hierarchical indicators) and #defaultButtonPolicy (for +/- button hierarchical indicators). This should reduce the need for explicit references to the …IconManager classes.
Action required
If you use, extend, or subclass any of the …IconManager classes, you may need to make changes to your application:
• If you have subclasses of any class named …IconManager, you should reevaluate the need for your subclass. If you believe your subclass is still needed, you should ensure that you are subclassing the correct class and that your changed or added function still works properly.
• If you have extended any class named …IconManager, you should reevaluate the need for your extension. If you believe your extension is still needed, you should ensure that you are extending the correct class and that your changed or added function still works properly.
• If your application makes direct reference to any class named …IconManager, you should reevaluate the need for the reference. If you believe a reference is still needed, you should ensure that the reference is made to the correct new class.
Last modified date: 07/02/2019