Author: yradtsevich
Date: 2010-05-09 13:22:54 -0400 (Sun, 09 May 2010)
New Revision: 21981
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/toolbar/SplitToolBar.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-6262: Bottom border of comboboxes in the text
editing toolbar is not visible under Windows Vista and Windows 7.
- a workaround is used
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/toolbar/SplitToolBar.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/toolbar/SplitToolBar.java 2010-05-08
19:16:01 UTC (rev 21980)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/toolbar/SplitToolBar.java 2010-05-09
17:22:54 UTC (rev 21981)
@@ -48,8 +48,12 @@
*/
public abstract class SplitToolBar implements IVpeToolBar {
+ // The height of toolbar is computed wrong in some cases. See JBIDE-6262.
+ // It is SWT bug. To work around it, manually computed height is used.
+ private int maxItemHeight = 0;
+
protected CoolBar coolBar;
- public abstract void createItems(ToolBar bar);
+ protected abstract void createItems(ToolBar bar);
public void createToolBarControl(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
@@ -62,10 +66,12 @@
createItems(toolBar);
final CoolItem coolItem = new CoolItem(coolBar, SWT.DROP_DOWN);
coolItem.setControl(toolBar);
+
Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Point coolSize = coolItem.computeSize(size.x, size.y);
+ Point coolSize = coolItem.computeSize(size.x, getMaxItemHeight());
coolItem.setSize(coolSize);
+
coolItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
if (event.detail == SWT.ARROW) {
@@ -235,7 +241,8 @@
item = new ToolItem(bar, style);
item.setImage(image);
item.setToolTipText(toolTipText);
-
+ updateMaxItemHeight(item.getBounds().height);
+
return item;
}
@@ -249,6 +256,7 @@
toolTipText, comboItems, selectionIndex);
ToolItem sep = new ToolItem(bar, SWT.SEPARATOR);
sep.setWidth(combo.getSize().x);
+ updateMaxItemHeight(combo.getSize().y);
sep.setControl(combo);
return combo;
@@ -398,4 +406,12 @@
}
return i;
}
+
+ private void updateMaxItemHeight(int oneOfHeights) {
+ maxItemHeight = Math.max(maxItemHeight, oneOfHeights);
+ }
+
+ private int getMaxItemHeight() {
+ return maxItemHeight;
+ }
}