Index: /trunk/src/org/openstreetmap/josm/gui/SideButton.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/SideButton.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/SideButton.java	(revision 2710)
@@ -20,4 +20,13 @@
     {
         super(action);
+        fixIcon();
+        doStyle();
+    }
+
+    public SideButton(Action action, boolean usename)
+    {
+        super(action);
+        if(!usename)
+            setText(null);
         fixIcon();
         doStyle();
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 2710)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager;
 import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetHeaderDownloadTask;
@@ -184,12 +185,9 @@
 
     protected JPanel buildButtonPanel() {
-        JPanel pnl = new JPanel(new FlowLayout(FlowLayout.LEFT));
-
-        JToolBar tp = new JToolBar(JToolBar.HORIZONTAL);
-        tp.setFloatable(false);
+        JPanel tp = getButtonPanel(5);
 
         // -- select objects action
         selectObjectsAction = new SelectObjectsAction();
-        tp.add(selectObjectsAction);
+        tp.add(new SideButton(selectObjectsAction, false));
         cbInSelectionOnly.addItemListener(selectObjectsAction);
         lstInActiveDataLayer.getSelectionModel().addListSelectionListener(selectObjectsAction);
@@ -198,5 +196,5 @@
         // -- read changesets action
         readChangesetAction = new ReadChangesetsAction();
-        tp.add(readChangesetAction);
+        tp.add(new SideButton(readChangesetAction, false));
         cbInSelectionOnly.addItemListener(readChangesetAction);
         lstInActiveDataLayer.getSelectionModel().addListSelectionListener(readChangesetAction);
@@ -205,5 +203,5 @@
         // -- close changesets action
         closeChangesetAction = new CloseOpenChangesetsAction();
-        tp.add(closeChangesetAction);
+        tp.add(new SideButton(closeChangesetAction, false));
         cbInSelectionOnly.addItemListener(closeChangesetAction);
         lstInActiveDataLayer.getSelectionModel().addListSelectionListener(closeChangesetAction);
@@ -212,5 +210,5 @@
         // -- show info action
         showChangsetInfoAction = new ShowChangesetInfoAction();
-        tp.add(showChangsetInfoAction);
+        tp.add(new SideButton(showChangsetInfoAction, false));
         cbInSelectionOnly.addItemListener(showChangsetInfoAction);
         lstInActiveDataLayer.getSelectionModel().addListSelectionListener(showChangsetInfoAction);
@@ -219,11 +217,10 @@
         // -- launch changeset manager action
         launchChangesetManagerAction = new LaunchChangesetManagerAction();
-        tp.add(launchChangesetManagerAction);
+        tp.add(new SideButton(launchChangesetManagerAction, false));
         cbInSelectionOnly.addItemListener(launchChangesetManagerAction);
         lstInActiveDataLayer.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
         lstInSelection.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
 
-        pnl.add(tp);
-        return pnl;
+        return tp;
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 2710)
@@ -8,5 +8,4 @@
 import java.awt.Color;
 import java.awt.Graphics;
-import java.awt.GridLayout;
 import java.awt.Point;
 import java.awt.event.ActionEvent;
@@ -106,5 +105,5 @@
         lstConflicts.getSelectionModel().addListSelectionListener(actSelect);
 
-        JPanel buttonPanel = new JPanel(new GridLayout(1,2));
+        JPanel buttonPanel = getButtonPanel(2);
         buttonPanel.add(btnResolve);
         buttonPanel.add(btnSelect);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 2710)
@@ -63,5 +63,5 @@
 
     protected JPanel buildButtonRow() {
-        JPanel pnl = new JPanel(new GridLayout(1, 4));
+        JPanel pnl = getButtonPanel(5);
 
         addButton = new SideButton(marktr("Add"), "add", "SelectionList", tr("Add filter."),
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 2710)
@@ -6,5 +6,4 @@
 import java.awt.BorderLayout;
 import java.awt.Component;
-import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
@@ -72,5 +71,5 @@
      */
     protected JPanel buildButtonRow() {
-        JPanel buttons = new JPanel(new GridLayout(1,2));
+        JPanel buttons = getButtonPanel(2);
 
         SideButton btn = new SideButton(reloadAction = new ReloadAction());
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 2710)
@@ -5,5 +5,4 @@
 import java.awt.BorderLayout;
 import java.awt.Component;
-import java.awt.FlowLayout;
 import java.awt.Point;
 import java.awt.Rectangle;
@@ -29,5 +28,4 @@
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
 import javax.swing.ListModel;
@@ -43,4 +41,5 @@
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.io.SaveLayersDialog;
@@ -98,8 +97,5 @@
 
     protected JPanel createButtonPanel() {
-        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT,0,0));
-
-        JToolBar tb = new JToolBar(JToolBar.HORIZONTAL);
-        tb.setFloatable(false);
+        JPanel buttonPanel = getButtonPanel(5);
 
         // -- move up action
@@ -107,5 +103,5 @@
         adaptTo(moveUpAction, model);
         adaptTo(moveUpAction,selectionModel);
-        tb.add(moveUpAction);
+        buttonPanel.add(new SideButton(moveUpAction));
 
         // -- move down action
@@ -113,5 +109,5 @@
         adaptTo(moveDownAction, model);
         adaptTo(moveDownAction,selectionModel);
-        tb.add(moveDownAction);
+        buttonPanel.add(new SideButton(moveDownAction));
 
         // -- activate action
@@ -119,10 +115,10 @@
         adaptTo(activateLayerAction, selectionModel);
         MapView.addLayerChangeListener(activateLayerAction);
-        tb.add(activateLayerAction);
+        buttonPanel.add(new SideButton(activateLayerAction));
 
         // -- show hide action
         ShowHideLayerAction showHideLayerAction = new ShowHideLayerAction();
         adaptTo(showHideLayerAction, selectionModel);
-        tb.add(showHideLayerAction);
+        buttonPanel.add(new SideButton(showHideLayerAction));
 
         // -- merge layer action
@@ -130,5 +126,5 @@
         adaptTo(mergeLayerAction, model);
         adaptTo(mergeLayerAction,selectionModel);
-        tb.add(mergeLayerAction);
+        buttonPanel.add(new SideButton(mergeLayerAction));
 
 
@@ -140,7 +136,6 @@
         layerList.getActionMap().put("deleteLayer", deleteLayerAction);
         adaptTo(deleteLayerAction, selectionModel);
-        tb.add(deleteLayerAction);
-
-        buttonPanel.add(tb);
+        buttonPanel.add(new SideButton(deleteLayerAction, false));
+
         return buttonPanel;
     }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 2710)
@@ -24,5 +24,5 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
-import javax.swing.JToolBar;
+import javax.swing.JPanel;
 import javax.swing.KeyStroke;
 import javax.swing.ListSelectionModel;
@@ -49,4 +49,5 @@
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
+import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask;
@@ -100,10 +101,9 @@
         // create the panel with buttons
         //
-        JToolBar tp = new JToolBar(JToolBar.HORIZONTAL);
-        tp.setFloatable(false);
+        JPanel tp = getButtonPanel(5);
         // the new action
         //
         newAction = new NewAction();
-        tp.add(newAction);
+        tp.add(new SideButton(newAction, false));
 
         // the edit action
@@ -111,5 +111,5 @@
         editAction = new EditAction();
         displaylist.addListSelectionListener(editAction);
-        tp.add(editAction);
+        tp.add(new SideButton(editAction, false));
 
         // the duplicate action
@@ -117,5 +117,5 @@
         DuplicateAction duplicateAction = new DuplicateAction();
         displaylist.addListSelectionListener(duplicateAction);
-        tp.add(duplicateAction);
+        tp.add(new SideButton(duplicateAction, false));
 
         // the delete action
@@ -123,5 +123,5 @@
         deleteAction = new DeleteAction();
         displaylist.addListSelectionListener(deleteAction);
-        tp.add(deleteAction);
+        tp.add(new SideButton(deleteAction, false));
 
         // the select action
@@ -129,5 +129,5 @@
         SelectAction selectAction = new SelectAction();
         displaylist.addListSelectionListener(selectAction);
-        tp.add(selectAction);
+        tp.add(new SideButton(selectAction, false));
 
         add(tp, BorderLayout.SOUTH);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 2710)
@@ -8,5 +8,4 @@
 import java.awt.BorderLayout;
 import java.awt.Color;
-import java.awt.GridLayout;
 import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
@@ -111,5 +110,5 @@
         add(new JScrollPane(displaylist), BorderLayout.CENTER);
 
-        JPanel buttonPanel = new JPanel(new GridLayout(1, 2));
+        JPanel buttonPanel = getButtonPanel(2);
 
         selectButton = new SideButton(marktr("Select"), "select", "SelectionList",
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 2710)
@@ -8,4 +8,6 @@
 import java.awt.Dimension;
 import java.awt.Graphics;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
 import java.awt.GridBagLayout;
 import java.awt.Image;
@@ -562,10 +564,17 @@
      * and the toggle dialogs themself are discared, for instance because no layer is
      * left in JOSM and  the main screen turns from the map editor to the MOTD panel.
-     * 
+     *
      * Override in subclasses to unregister as listener. After tearDown() is invoked
      * the dialog should be registered as listener.
-     * 
+     *
      * The default implementation is empty.
      */
     public void tearDown() {}
+
+    protected JPanel getButtonPanel(int columns) {
+        JPanel pnl = new JPanel();
+        pnl.setLayout(Main.pref.getBoolean("dialog.align.left", false)
+        ? new FlowLayout(FlowLayout.LEFT) : new GridLayout(1,columns));
+        return pnl;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 2709)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 2710)
@@ -6,5 +6,4 @@
 
 import java.awt.BorderLayout;
-import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
@@ -79,6 +78,5 @@
 
     protected JPanel buildButtonRow() {
-        JPanel pnl = new JPanel();
-        pnl.setLayout(new FlowLayout(FlowLayout.LEFT));
+        JPanel pnl = getButtonPanel(2);
 
         // -- select users primitives action
