Skip to content

Commit e3ffe60

Browse files
committed
Use on-the-fly disabled icons in org.eclipse.ui (incl. shared images)
This replaces the usage of pre-generated disabled icons from the org.eclipse.ui, org.eclipse.ui.editors, org.eclipse.ui.genericeditor and org.eclipse.ui.workbench.texteditor bundles with on-the-fly generated disabled images. It also adapts the initialization of shared images to programmatically create the disabled versions of the icons.
1 parent 2e51edb commit e3ffe60

File tree

3 files changed

+71
-71
lines changed

3 files changed

+71
-71
lines changed

bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/WorkbenchImages.java

Lines changed: 60 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.eclipse.core.runtime.Assert;
2121
import org.eclipse.jface.resource.ImageDescriptor;
2222
import org.eclipse.jface.resource.ImageRegistry;
23+
import org.eclipse.swt.SWT;
2324
import org.eclipse.swt.graphics.Image;
2425
import org.eclipse.ui.ISharedImages;
2526
import org.eclipse.ui.PlatformUI;
@@ -71,12 +72,8 @@
7172

7273
private static final String PATH_ETOOL = ICONS_PATH + "etool16/"; // Enabled toolbar icons.//$NON-NLS-1$
7374

74-
private static final String PATH_DTOOL = ICONS_PATH + "dtool16/"; // Disabled toolbar icons.//$NON-NLS-1$
75-
7675
private static final String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"; // Enabled local toolbar icons.//$NON-NLS-1$
7776

78-
private static final String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; // Disabled local toolbar icons.//$NON-NLS-1$
79-
8077
private static final String PATH_EVIEW = ICONS_PATH + "eview16/"; // View icons//$NON-NLS-1$
8178

8279
private static final String PATH_OVERLAY = ICONS_PATH + "ovr16/"; //$NON-NLS-1$
@@ -101,9 +98,17 @@
10198
* <code>false</code> if this is not a shared image
10299
*/
103100
private static final void declareImage(String key, String path, boolean shared) {
104-
ImageDescriptor desc = ImageDescriptor
105-
.createFromURLSupplier(true, () -> BundleUtility.find(PlatformUI.PLUGIN_ID, path));
101+
declareImage(key, null, path, shared);
102+
}
103+
104+
private static final void declareImage(String key, String disabledKey, String path, boolean shared) {
105+
ImageDescriptor desc = ImageDescriptor.createFromURLSupplier(true,
106+
() -> BundleUtility.find(PlatformUI.PLUGIN_ID, path));
106107
declareImage(key, desc, shared);
108+
if (disabledKey != null) {
109+
ImageDescriptor disabledImageDescriptor = ImageDescriptor.createWithFlags(desc, SWT.IMAGE_DISABLE);
110+
declareImage(disabledKey, disabledImageDescriptor, shared);
111+
}
107112
}
108113

109114
/**
@@ -117,91 +122,89 @@ private static final void declareImages() {
117122
declareImage(ISharedImages.IMG_DEC_FIELD_WARNING, PATH_OVERLAY + "warning_ovr.png", true); //$NON-NLS-1$
118123

119124
// Pinning
120-
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR, PATH_ETOOL + "pin_editor.png", false); //$NON-NLS-1$
121-
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR_DISABLED, PATH_DTOOL + "pin_editor.png", false); //$NON-NLS-1$
125+
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR,
126+
IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR_DISABLED, PATH_ETOOL + "pin_editor.png", false); //$NON-NLS-1$
122127

123128
// other toolbar buttons
129+
declareImage(ISharedImages.IMG_ETOOL_SAVE_EDIT, ISharedImages.IMG_ETOOL_SAVE_EDIT_DISABLED,
130+
PATH_ETOOL + "save_edit.png", true); //$NON-NLS-1$
124131

125-
declareImage(ISharedImages.IMG_ETOOL_SAVE_EDIT, PATH_ETOOL + "save_edit.png", true); //$NON-NLS-1$
126-
declareImage(ISharedImages.IMG_ETOOL_SAVE_EDIT_DISABLED, PATH_DTOOL + "save_edit.png", true); //$NON-NLS-1$
127-
128-
declareImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT, PATH_ETOOL + "saveas_edit.png", true); //$NON-NLS-1$
129-
declareImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT_DISABLED, PATH_DTOOL + "saveas_edit.png", true); //$NON-NLS-1$
132+
declareImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT, ISharedImages.IMG_ETOOL_SAVEAS_EDIT_DISABLED,
133+
PATH_ETOOL + "saveas_edit.png", true); //$NON-NLS-1$
130134

131-
declareImage(ISharedImages.IMG_ETOOL_SAVEALL_EDIT, PATH_ETOOL + "saveall_edit.png", true); //$NON-NLS-1$
132-
declareImage(ISharedImages.IMG_ETOOL_SAVEALL_EDIT_DISABLED, PATH_DTOOL + "saveall_edit.png", true); //$NON-NLS-1$
135+
declareImage(ISharedImages.IMG_ETOOL_SAVEALL_EDIT, ISharedImages.IMG_ETOOL_SAVEALL_EDIT_DISABLED,
136+
PATH_ETOOL + "saveall_edit.png", true); //$NON-NLS-1$
133137

134-
declareImage(ISharedImages.IMG_TOOL_UNDO, PATH_ETOOL + "undo_edit.png", true); //$NON-NLS-1$
135-
declareImage(ISharedImages.IMG_TOOL_UNDO_DISABLED, PATH_DTOOL + "undo_edit.png", true); //$NON-NLS-1$
138+
declareImage(ISharedImages.IMG_TOOL_UNDO, ISharedImages.IMG_TOOL_UNDO_DISABLED, PATH_ETOOL + "undo_edit.png", //$NON-NLS-1$
139+
true);
136140

137-
declareImage(ISharedImages.IMG_TOOL_REDO, PATH_ETOOL + "redo_edit.png", true); //$NON-NLS-1$
138-
declareImage(ISharedImages.IMG_TOOL_REDO_DISABLED, PATH_DTOOL + "redo_edit.png", true); //$NON-NLS-1$
141+
declareImage(ISharedImages.IMG_TOOL_REDO, ISharedImages.IMG_TOOL_REDO_DISABLED, PATH_ETOOL + "redo_edit.png", //$NON-NLS-1$
142+
true);
139143

140-
declareImage(ISharedImages.IMG_TOOL_CUT, PATH_ETOOL + "cut_edit.png", true); //$NON-NLS-1$
141-
declareImage(ISharedImages.IMG_TOOL_CUT_DISABLED, PATH_DTOOL + "cut_edit.png", true); //$NON-NLS-1$
144+
declareImage(ISharedImages.IMG_TOOL_CUT, ISharedImages.IMG_TOOL_CUT_DISABLED, PATH_ETOOL + "cut_edit.png", //$NON-NLS-1$
145+
true);
142146

143-
declareImage(ISharedImages.IMG_TOOL_COPY, PATH_ETOOL + "copy_edit.png", true); //$NON-NLS-1$
144-
declareImage(ISharedImages.IMG_TOOL_COPY_DISABLED, PATH_DTOOL + "copy_edit.png", true); //$NON-NLS-1$
147+
declareImage(ISharedImages.IMG_TOOL_COPY, ISharedImages.IMG_TOOL_COPY_DISABLED, PATH_ETOOL + "copy_edit.png", //$NON-NLS-1$
148+
true);
145149

146-
declareImage(ISharedImages.IMG_TOOL_PASTE, PATH_ETOOL + "paste_edit.png", true); //$NON-NLS-1$
147-
declareImage(ISharedImages.IMG_TOOL_PASTE_DISABLED, PATH_DTOOL + "paste_edit.png", true); //$NON-NLS-1$
150+
declareImage(ISharedImages.IMG_TOOL_PASTE, ISharedImages.IMG_TOOL_PASTE_DISABLED, PATH_ETOOL + "paste_edit.png", //$NON-NLS-1$
151+
true);
148152

149-
declareImage(ISharedImages.IMG_TOOL_DELETE, PATH_ETOOL + "delete_edit.png", true); //$NON-NLS-1$
150-
declareImage(ISharedImages.IMG_TOOL_DELETE_DISABLED, PATH_DTOOL + "delete_edit.png", true); //$NON-NLS-1$
153+
declareImage(ISharedImages.IMG_TOOL_DELETE, ISharedImages.IMG_TOOL_DELETE_DISABLED,
154+
PATH_ETOOL + "delete_edit.png", true); //$NON-NLS-1$
151155

152-
declareImage(ISharedImages.IMG_ETOOL_DELETE, PATH_ETOOL + "delete.png", true); //$NON-NLS-1$
153-
declareImage(ISharedImages.IMG_ETOOL_DELETE_DISABLED, PATH_DTOOL + "delete.png", true); //$NON-NLS-1$
156+
declareImage(ISharedImages.IMG_ETOOL_DELETE, ISharedImages.IMG_ETOOL_DELETE_DISABLED, PATH_ETOOL + "delete.png", //$NON-NLS-1$
157+
true);
154158

155-
declareImage(ISharedImages.IMG_ETOOL_CLEAR, PATH_ETOOL + "clear.png", true); //$NON-NLS-1$
156-
declareImage(ISharedImages.IMG_ETOOL_CLEAR_DISABLED, PATH_DTOOL + "clear.png", true); //$NON-NLS-1$
159+
declareImage(ISharedImages.IMG_ETOOL_CLEAR, ISharedImages.IMG_ETOOL_CLEAR_DISABLED, PATH_ETOOL + "clear.png", //$NON-NLS-1$
160+
true);
157161

158-
declareImage(ISharedImages.IMG_TOOL_NEW_WIZARD, PATH_ETOOL + "new_wiz.png", true); //$NON-NLS-1$
159-
declareImage(ISharedImages.IMG_TOOL_NEW_WIZARD_DISABLED, PATH_DTOOL + "new_wiz.png", true); //$NON-NLS-1$
162+
declareImage(ISharedImages.IMG_TOOL_NEW_WIZARD, ISharedImages.IMG_TOOL_NEW_WIZARD_DISABLED,
163+
PATH_ETOOL + "new_wiz.png", true); //$NON-NLS-1$
160164

161-
declareImage(ISharedImages.IMG_ETOOL_PRINT_EDIT, PATH_ETOOL + "print_edit.png", true); //$NON-NLS-1$
162-
declareImage(ISharedImages.IMG_ETOOL_PRINT_EDIT_DISABLED, PATH_DTOOL + "print_edit.png", true); //$NON-NLS-1$
165+
declareImage(ISharedImages.IMG_ETOOL_PRINT_EDIT, ISharedImages.IMG_ETOOL_PRINT_EDIT_DISABLED,
166+
PATH_ETOOL + "print_edit.png", true); //$NON-NLS-1$
163167

164168
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_HELP_CONTENTS, PATH_ETOOL + "help_contents.png", true); //$NON-NLS-1$
165169
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_HELP_SEARCH, PATH_ETOOL + "help_search.png", true); //$NON-NLS-1$
166170
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_TIPS_AND_TRICKS, PATH_ETOOL + "tricks.png", true); //$NON-NLS-1$
167171

168-
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_NEW_FASTVIEW, PATH_ETOOL + "new_fastview.png", true); //$NON-NLS-1$
169-
declareImage(IWorkbenchGraphicConstants.IMG_DTOOL_NEW_FASTVIEW, PATH_DTOOL + "new_fastview.png", true); //$NON-NLS-1$
172+
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_NEW_FASTVIEW,
173+
IWorkbenchGraphicConstants.IMG_DTOOL_NEW_FASTVIEW, PATH_ETOOL + "new_fastview.png", true); //$NON-NLS-1$
170174

171175
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_RESTORE_TRIMPART, PATH_ETOOL + "fastview_restore.png", true); //$NON-NLS-1$
172176
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_EDITOR_TRIMPART, PATH_ETOOL + "editor_area.png", true); //$NON-NLS-1$
173177

174-
declareImage(ISharedImages.IMG_TOOL_FORWARD, PATH_ELOCALTOOL + "forward_nav.png", true); //$NON-NLS-1$
175-
declareImage(ISharedImages.IMG_TOOL_FORWARD_DISABLED, PATH_DLOCALTOOL + "forward_nav.png", true); //$NON-NLS-1$
178+
declareImage(ISharedImages.IMG_TOOL_FORWARD, ISharedImages.IMG_TOOL_FORWARD_DISABLED,
179+
PATH_ELOCALTOOL + "forward_nav.png", true); //$NON-NLS-1$
176180

177-
declareImage(ISharedImages.IMG_TOOL_BACK, PATH_ELOCALTOOL + "backward_nav.png", true); //$NON-NLS-1$
178-
declareImage(ISharedImages.IMG_TOOL_BACK_DISABLED, PATH_DLOCALTOOL + "backward_nav.png", true); //$NON-NLS-1$
181+
declareImage(ISharedImages.IMG_TOOL_BACK, ISharedImages.IMG_TOOL_BACK_DISABLED,
182+
PATH_ELOCALTOOL + "backward_nav.png", true); //$NON-NLS-1$
179183

180-
declareImage(ISharedImages.IMG_TOOL_UP, PATH_ELOCALTOOL + "up_nav.png", true); //$NON-NLS-1$
181-
declareImage(ISharedImages.IMG_TOOL_UP_DISABLED, PATH_DLOCALTOOL + "up_nav.png", true); //$NON-NLS-1$
184+
declareImage(ISharedImages.IMG_TOOL_UP, ISharedImages.IMG_TOOL_UP_DISABLED, PATH_ELOCALTOOL + "up_nav.png", true); //$NON-NLS-1$
182185

183-
declareImage(ISharedImages.IMG_ELCL_SYNCED, PATH_ELOCALTOOL + "synced.png", true); //$NON-NLS-1$
184-
declareImage(ISharedImages.IMG_ELCL_SYNCED_DISABLED, PATH_DLOCALTOOL + "synced.png", true); //$NON-NLS-1$
186+
declareImage(ISharedImages.IMG_ELCL_SYNCED, ISharedImages.IMG_ELCL_SYNCED_DISABLED,
187+
PATH_ELOCALTOOL + "synced.png", true); //$NON-NLS-1$
185188

186-
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL, PATH_ELOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
187-
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL_DISABLED, PATH_DLOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
189+
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL, ISharedImages.IMG_ELCL_COLLAPSEALL_DISABLED,
190+
PATH_ELOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
188191

189-
declareImage(ISharedImages.IMG_ELCL_REMOVE, PATH_ELOCALTOOL + "remove.png", true); //$NON-NLS-1$
190-
declareImage(ISharedImages.IMG_ELCL_REMOVE_DISABLED, PATH_DLOCALTOOL + "remove.png", true); //$NON-NLS-1$
192+
declareImage(ISharedImages.IMG_ELCL_REMOVE, ISharedImages.IMG_ELCL_REMOVE_DISABLED,
193+
PATH_ELOCALTOOL + "remove.png", true); //$NON-NLS-1$
191194

192-
declareImage(ISharedImages.IMG_ELCL_REMOVEALL, PATH_ELOCALTOOL + "removeall.png", true); //$NON-NLS-1$
193-
declareImage(ISharedImages.IMG_ELCL_REMOVEALL_DISABLED, PATH_DLOCALTOOL + "removeall.png", true); //$NON-NLS-1$
195+
declareImage(ISharedImages.IMG_ELCL_REMOVEALL, ISharedImages.IMG_ELCL_REMOVEALL_DISABLED,
196+
PATH_ELOCALTOOL + "removeall.png", true); //$NON-NLS-1$
194197

195-
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL, PATH_ELOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
196-
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL_DISABLED, PATH_DLOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
198+
declareImage(ISharedImages.IMG_ELCL_COLLAPSEALL, ISharedImages.IMG_ELCL_COLLAPSEALL_DISABLED,
199+
PATH_ELOCALTOOL + "collapseall.png", true); //$NON-NLS-1$
197200

198-
declareImage(ISharedImages.IMG_ELCL_STOP, PATH_ELOCALTOOL + "stop.png", true); //$NON-NLS-1$
199-
declareImage(ISharedImages.IMG_ELCL_STOP_DISABLED, PATH_DLOCALTOOL + "stop.png", true); //$NON-NLS-1$
201+
declareImage(ISharedImages.IMG_ELCL_STOP, ISharedImages.IMG_ELCL_STOP_DISABLED, PATH_ELOCALTOOL + "stop.png", //$NON-NLS-1$
202+
true);
200203

201204
declareImage(IWorkbenchGraphicConstants.IMG_ETOOL_NEW_PAGE, PATH_EVIEW + "new_persp.png", false); //$NON-NLS-1$
202205

203-
declareImage(ISharedImages.IMG_ETOOL_HOME_NAV, PATH_ELOCALTOOL + "home_nav.png", true); //$NON-NLS-1$
204-
declareImage(ISharedImages.IMG_ETOOL_HOME_NAV_DISABLED, PATH_DLOCALTOOL + "home_nav.png", true); //$NON-NLS-1$
206+
declareImage(ISharedImages.IMG_ETOOL_HOME_NAV, ISharedImages.IMG_ETOOL_HOME_NAV_DISABLED,
207+
PATH_ELOCALTOOL + "home_nav.png", true); //$NON-NLS-1$
205208

206209
declareImage(ISharedImages.IMG_ETOOL_DEF_PERSPECTIVE, PATH_EVIEW + "default_persp.png", true); //$NON-NLS-1$
207210

bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/progress/ProgressInfoItem.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,21 @@ interface IndexListener {
153153
private boolean isThemed;
154154

155155
static {
156-
JFaceResources.getImageRegistry().put(STOP_IMAGE_KEY,
157-
WorkbenchImages.getWorkbenchImageDescriptor("elcl16/progress_stop.png"));//$NON-NLS-1$
158-
159-
JFaceResources.getImageRegistry().put(DISABLED_STOP_IMAGE_KEY,
160-
WorkbenchImages.getWorkbenchImageDescriptor("dlcl16/progress_stop.png"));//$NON-NLS-1$
156+
ImageDescriptor processStopDescriptor = WorkbenchImages.getWorkbenchImageDescriptor("elcl16/progress_stop.png"); //$NON-NLS-1$
157+
JFaceResources.getImageRegistry().put(STOP_IMAGE_KEY, processStopDescriptor);
158+
ImageDescriptor disabledProcessStopDescriptor = ImageDescriptor.createWithFlags(processStopDescriptor,
159+
SWT.IMAGE_DISABLE);
160+
JFaceResources.getImageRegistry().put(DISABLED_STOP_IMAGE_KEY, disabledProcessStopDescriptor);
161161

162162
JFaceResources.getImageRegistry().put(DEFAULT_JOB_KEY,
163163
WorkbenchImages.getWorkbenchImageDescriptor("progress/progress_task.png")); //$NON-NLS-1$
164164

165-
JFaceResources.getImageRegistry().put(CLEAR_FINISHED_JOB_KEY,
166-
WorkbenchImages.getWorkbenchImageDescriptor("elcl16/progress_rem.png")); //$NON-NLS-1$
167-
168-
JFaceResources.getImageRegistry().put(DISABLED_CLEAR_FINISHED_JOB_KEY,
169-
WorkbenchImages.getWorkbenchImageDescriptor("dlcl16/progress_rem.png")); //$NON-NLS-1$
165+
ImageDescriptor processRemoveDescriptor = WorkbenchImages
166+
.getWorkbenchImageDescriptor("elcl16/progress_rem.png"); //$NON-NLS-1$
167+
JFaceResources.getImageRegistry().put(CLEAR_FINISHED_JOB_KEY, processRemoveDescriptor);
168+
ImageDescriptor disabledProcessRemoveDescriptor = ImageDescriptor.createWithFlags(processRemoveDescriptor,
169+
SWT.IMAGE_DISABLE);
170+
JFaceResources.getImageRegistry().put(DISABLED_CLEAR_FINISHED_JOB_KEY, disabledProcessRemoveDescriptor);
170171

171172
// Mac has different Gamma value
172173
int shift = Util.isMac() ? -25 : -10;

bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/progress/ProgressView.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,6 @@ public void run() {
248248
if (id != null) {
249249
clearAllAction.setImageDescriptor(id);
250250
}
251-
id = WorkbenchImages.getWorkbenchImageDescriptor("/dlcl16/progress_remall.png"); //$NON-NLS-1$
252-
if (id != null) {
253-
clearAllAction.setDisabledImageDescriptor(id);
254-
}
255251
}
256252

257253
/**

0 commit comments

Comments
 (0)