Comments (2)
Text field context menu content is created every single time that menu is shown. You can see that in EditContextMenuWidget and the icon colorization through the icon pack in the get*Item() calls. Those are all done at runtime since it's a rather infrequently used functionality that is acceptable to have a bit of an overhead.
I would suggest looking at SubstanceCortex.GlobalScope.setUseThemedDefaultIcons API which seems like a close fit for what you're looking for. If you're using simple monochrome icons then using that API should be colorizing the icons based on the current skin. The downside might be for dark themes where the active icon (in rollover etc states) would be using the original colors.
In general, icon colorization is expensive to do dynamically every time an icon is painted. Internally in Substance's default icon pack it is done by calling SubstanceIconUIResource.colorize - which is a supported Substance APIs. Under the hood it uses Java2D filtering APIs to effectively apply a certain filter on the entire image. That is expensive depending on how big the image is and how many images you want to do this for. Due to this, there is a lot of image caching going on in Substance.
GlobalCortex.registerSkinChangeListener can be used to register a listener to be invoked when Substance skin is changed. There you can make a pass over the entire UI and update all the icons in your app depending on the visuals you want to achieve.
I don't see Substance being in the business of tracking all application icons / controls and calling the application code back to update all of those when a skin changes. That is a huge potential for memory leaks that I'm not quite willing to take on.
from substance.
I would suggest looking at SubstanceCortex.GlobalScope.setUseThemedDefaultIcons API which seems like a close fit for what you're looking for.
Excellent! that API does the trick 👍
I can see the icons changing the colorization when moving from Gemini to Magellan, for example.
from substance.
Related Issues (20)
- Writing Japanese text fails when using Substance HOT 2
- Issue with the tree cell render which must be object of default cell render rather than the treecell. HOT 4
- SubstanceTableHeaderUI not being able to find draggedColumn HOT 9
- isFocusTraversable() has been deprecated
- Switching from Substance to another L&F causes IllegalArgumentException HOT 11
- Windows maximize when dragged to top HOT 1
- Maximize bug on secondary screen when screen resolutions differ HOT 4
- NullPointerException for Business L&F under Java 9 HOT 4
- Possible to change scroll bar style? HOT 1
- Move to Java 9 for compile / runtime HOT 1
- Support for "inverse flat" look of title pane control buttons HOT 1
- Slow performance HOT 4
- How to apply custom FontSets? HOT 2
- JTree rendering with Raven HOT 4
- Using the same border for JTextField and JTextArea/JScrollPane? HOT 2
- Not possible to change alpha value for color with color picker HOT 4
- JitPack deployment HOT 4
- NullPointerException in CheckBoxMenuItemIcon.getIconWidth() HOT 5
- Migration guide to v8 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from substance.