buttons = new HashMap(5);
int buttonType = 0;
for (buttonType = 0; buttonType < 5; buttonType++)
{
final ButtonCanvas buttonCanvas = new ButtonCanvas(buttonArea, buttonType);
buttonCanvas
.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
switch (buttonType)
{
case ThemeConstants.BUTTON_MAX:
buttonCanvas.addListener(SWT.MouseUp, new Listener()
{
public void handleEvent(Event event)
{
if (event.button != 1) return;
Rectangle rect = new Rectangle(0, 0, buttonCanvas.getBounds().width,
buttonCanvas.getBounds().height);
if (!rect.contains(event.x, event.y)) return;
shell.setMaximized(true);
}
});
break;
case ThemeConstants.BUTTON_REV:
buttonCanvas.addListener(SWT.MouseUp, new Listener()
{
public void handleEvent(Event event)
{
if (event.button != 1) return;
Rectangle rect = new Rectangle(0, 0, buttonCanvas.getBounds().width,
buttonCanvas.getBounds().height);
if (!rect.contains(event.x, event.y)) return;
shell.setMaximized(false);
}
});
break;
case ThemeConstants.BUTTON_MIN:
buttonCanvas.addListener(SWT.MouseUp, new Listener()
{
public void handleEvent(Event event)
{
if (event.button != 1) return;
Rectangle rect = new Rectangle(0, 0, buttonCanvas.getBounds().width,
buttonCanvas.getBounds().height);
if (!rect.contains(event.x, event.y)) return;
shell.setMinimized(true);
}
});
break;
case ThemeConstants.BUTTON_CLOSE:
buttonCanvas.addListener(SWT.MouseUp, new Listener()
{
public void handleEvent(Event event)
{
if (event.button != 1) return;
Rectangle rect = new Rectangle(0, 0, buttonCanvas.getBounds().width,
buttonCanvas.getBounds().height);
if (!rect.contains(event.x, event.y)) return;
shell.close();
}
});
break;
case ThemeConstants.BUTTON_HELP:
buttonCanvas.addListener(SWT.MouseUp, new Listener()
{
public void handleEvent(Event event)
{
if (event.button != 1) return;
Rectangle rect = new Rectangle(0, 0, buttonCanvas.getBounds().width,
buttonCanvas.getBounds().height);
if (!rect.contains(event.x, event.y)) return;
help(event);
}
});
break;