Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp	(revision 74592)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp	(revision 74593)
@@ -24,4 +24,7 @@
 # include <QMainWindow>
 # include <QResizeEvent>
+# ifdef VBOX_WS_MAC
+#  include <QPainter>
+# endif
 
 /* GUI includes: */
@@ -37,4 +40,7 @@
     : QToolBar(pParent)
     , m_pMainWindow(qobject_cast<QMainWindow*>(pParent))
+#ifdef VBOX_WS_MAC
+    , m_fEmulateUnifiedToolbar(false)
+#endif
 {
     /* Prepare: */
@@ -62,4 +68,10 @@
 }
 
+void UIToolBar::emulateMacToolbar()
+{
+    /* Remember request, to be used in paintEvent: */
+    m_fEmulateUnifiedToolbar = true;
+}
+
 void UIToolBar::setShowToolBarButton(bool fShow)
 {
@@ -71,5 +83,5 @@
     // WORKAROUND:
     // There is a bug in Qt Cocoa which result in showing a "more arrow" when
-    // the necessary size of the toolbar is increased. Also for some languages
+    // the necessary size of the tool-bar is increased. Also for some languages
     // the with doesn't match if the text increase. So manually adjust the size
     // after changing the text.
@@ -92,4 +104,30 @@
 }
 
+#ifdef VBOX_WS_MAC
+void UIToolBar::paintEvent(QPaintEvent *pEvent)
+{
+    /* Call to base-class: */
+    QToolBar::paintEvent(pEvent);
+
+    /* If we have request to emulate unified tool-bar: */
+    if (m_fEmulateUnifiedToolbar)
+    {
+        /* Acquire rectangle: */
+        const QRect rectangle = pEvent->rect();
+
+        /* Prepare gradient: */
+        const QColor backgroundColor = palette().color(QPalette::Active, QPalette::Mid);
+        QLinearGradient gradient(rectangle.topLeft(), rectangle.bottomLeft());
+        gradient.setColorAt(0,   backgroundColor.lighter(125));
+        gradient.setColorAt(.65, backgroundColor.lighter(130));
+        gradient.setColorAt(1,   backgroundColor.lighter(135));
+
+        /* Fill background: */
+        QPainter painter(this);
+        painter.fillRect(rectangle, gradient);
+    }
+}
+#endif /* VBOX_WS_MAC */
+
 void UIToolBar::prepare()
 {
@@ -109,3 +147,2 @@
     setContextMenuPolicy(Qt::NoContextMenu);
 }
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h	(revision 74592)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.h	(revision 74593)
@@ -27,7 +27,11 @@
 /* Forward declarations: */
 class QMainWindow;
+class QResizeEvent;
+class QWidget;
+#ifdef VBOX_WS_MAC
+class QPaintEvent;
+#endif
 
-/** QToolBar extension
-  * with few settings presets. */
+/** QToolBar extension with few settings presets. */
 class SHARED_LIBRARY_STUFF UIToolBar : public QToolBar
 {
@@ -48,11 +52,14 @@
 
 #ifdef VBOX_WS_MAC
-    /** Mac OS X: Defines whether native tool-bar should be used. */
+    /** Mac OS X: Defines whether native tool-bar should be enabled. */
     void enableMacToolbar();
+    /** Mac OS X: Defines whether native tool-bar should be emulated. */
+    void emulateMacToolbar();
+
     /** Mac OS X: Defines whether native tool-bar button should be shown. */
     void setShowToolBarButton(bool fShow);
     /** Mac OS X: Updates native tool-bar layout. */
     void updateLayout();
-#endif /* VBOX_WS_MAC */
+#endif
 
 protected:
@@ -60,4 +67,9 @@
     /** Handles resize @a pEvent. */
     virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
+
+#ifdef VBOX_WS_MAC
+    /** Handles paint @a pEvent. */
+    virtual void paintEvent(QPaintEvent *pEvent) /* override */;
+#endif
 
 private:
@@ -68,6 +80,10 @@
     /** Holds the parent main-window isntance. */
     QMainWindow *m_pMainWindow;
+
+#ifdef VBOX_WS_MAC
+    /** Holds whether unified tool-bar should be emulated. */
+    bool  m_fEmulateUnifiedToolbar;
+#endif
 };
 
 #endif /* !___UIToolBar_h___ */
-
