Pattern pattern = new Pattern(null, 0, glossy.y, 0, glossy.y
+ glossy.height, themeRender.getMenu_item_bg_color1(),
themeRender.getMenu_item_bg_color1_alpha(), themeRender
.getMenu_item_bg_color2(), themeRender
.getMenu_item_bg_color2_alpha());
Path path = new Path(null);
path.addRectangle(glossy.x, glossy.y, glossy.width, glossy.height);
gc.setBackgroundPattern(pattern);
gc.fillPath(path);
path.dispose();
path = GraphicsUtil.createRoundRectangle(outerBorder, 2);
gc.setForeground(themeRender.getMenu_item_outer_border());
gc.drawPath(path);
path.dispose();
if (!selected) pattern = new Pattern(null, 0, glossy.y, 0, glossy.y
+ glossy.height, themeRender.getMenu_item_bg_glossy_track1(),
themeRender.getMenu_item_bg_glossy_track1_alpha(), themeRender
.getMenu_item_bg_glossy_track2(), themeRender
.getMenu_item_bg_glossy_track2_alpha());
else
pattern = new Pattern(null, 0, glossy.y, 0, glossy.y
+ glossy.height, themeRender
.getMenu_item_bg_glossy_selected1(), themeRender
.getMenu_item_bg_glossy_selected1_alpha(), themeRender
.getMenu_item_bg_glossy_selected2(), themeRender
.getMenu_item_bg_glossy_selected2_alpha());
path = GraphicsUtil.createTopRoundRectangle(glossy, 2);
gc.setBackgroundPattern(pattern);
gc.fillPath(path);
path.dispose();
Color innerBorderColor = selected
|| (mc != null && (mc.getStyle() & SWT.CHECK) != 0 && mc
.getSelection()) ? themeRender
.getMenu_item_inner_border_selected() : themeRender
.getMenu_item_inner_border_track();
path = GraphicsUtil.createRoundRectangle(innerBorder, 2);
gc.setForeground(innerBorderColor);
gc.drawPath(path);
path.dispose();
if (!selected)
{
path = GraphicsUtil.createRoundRectangle(glow, 2);
gc.setClipping(path);
path.dispose();
Color glowColor = themeRender.getMenu_item_bg_glow_track();
path = createBottomRadialPath(glow);
float[] point = new float[2];
float[] bounds = new float[4];
path.getBounds(bounds);
point[0] = (bounds[0] + bounds[0] + bounds[2]) / 2f;
point[1] = (bounds[1] + bounds[1] + bounds[3]) / 2f;
GCExtension extension = new GCExtension(gc);
extension.fillGradientPath(path, point, glowColor, 255,
new Color[] { glowColor }, new int[] { 0 });
path.dispose();
gc.setClipping((Path) null);
}
gc.setAdvanced(false);
}
if (selected) showMenuShadow(gc, dc.getSelectRect(), dc.getMenuItem());