Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp	(revision 35415)
@@ -21,4 +21,10 @@
 #include "UIImageTools.h"
 
+/* Qt includes */
+#include <QPainter>
+
+/* System includes */
+#include <math.h>
+
 /* Todo: Think about the naming convention and if the images should be
  * processed in place or return changed copies. Make it more uniform. Add
@@ -142,4 +148,5 @@
     }
 }
+
 void blurImageVertical(const QImage &source, QImage &dest, int r)
 {
@@ -197,2 +204,51 @@
 }
 
+QPixmap betaLabel()
+{
+    /* Beta label */
+    QSize ls(80, 16);
+    QColor bgc(246, 179, 0);
+    QImage i(ls, QImage::Format_ARGB32);
+    i.fill(Qt::transparent);
+    QPainter p(&i);
+    p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
+    p.setPen(Qt::NoPen);
+    /* Background */
+    p.setBrush(bgc);
+    p.drawRect(0, 0, ls.width(), ls.height());
+    /* The black stripes */
+    p.setPen(QPen(QColor(70, 70, 70), 3));
+    int c = 6;
+    float g = (ls.width() / (c - 1));
+    for (int i = 0; i < c; ++i)
+        p.drawLine(-g / 2 + g * i, ls.height(), -g / 2 + g * (i + 1), 0);
+    /* The text */
+    QFont f = p.font();
+    f.setBold(true);
+    QPainterPath tp;
+    tp.addText(0, 0, f, "BETA");
+    QRectF r = tp.boundingRect();
+    /* Center the text path */
+    p.translate((ls.width() - r.width()) / 2, ls.height() - (ls.height() - r.height()) / 2);
+    QPainterPathStroker pps;
+    QPainterPath pp = pps.createStroke(tp);
+    p.setPen(QPen(bgc.darker(80), 2, Qt::SolidLine, Qt::RoundCap));
+    p.drawPath(pp);
+    p.setBrush(Qt::black);
+    p.setPen(Qt::NoPen);
+    p.drawPath(tp);
+    p.end();
+    /* Create a secondary image which will contain the rotated banner. */
+    int w = sqrt(pow(ls.width(), 2) / 2);
+    QImage i1(w, w, QImage::Format_ARGB32);
+    i1.fill(Qt::transparent);
+    QPainter p1(&i1);
+    p1.setRenderHints(QPainter::SmoothPixmapTransform);
+    p1.translate(0, w);
+    p1.rotate(-45);
+    p1.drawImage(0, 0, i);
+    p1.end();
+
+    return QPixmap::fromImage(i1);
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.h	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.h	(revision 35415)
@@ -29,4 +29,6 @@
 void blurImageVertical(const QImage &source, QImage &dest, int r);
 
+QPixmap betaLabel();
+
 #endif /* !__UIImageTools_h__ */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 35415)
@@ -362,4 +362,9 @@
            (ct_ver_str.section ('.', 1, 1).toInt() << 8) +
            ct_ver_str.section ('.', 2, 2).toInt();
+}
+
+bool VBoxGlobal::isBeta() const
+{
+    return mVBox.GetVersion().contains("BETA", Qt::CaseInsensitive);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 35415)
@@ -128,5 +128,6 @@
     static uint qtCTVersion();
 
-    QString versionString() { return mVerString; }
+    QString versionString() const { return mVerString; }
+    bool isBeta() const;
 
     CVirtualBox virtualBox() const { return mVBox; }
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm	(revision 35415)
@@ -94,4 +94,23 @@
 {
     [pWindow setShowsToolbarButton:fEnabled];
+}
+
+void darwinLabelToolbar(NativeNSWindowRef pWindow, NativeNSImageRef pImage)
+{
+    NSToolbar *tb = [pWindow toolbar];
+    if ([tb respondsToSelector:@selector(_toolbarView)])
+    {
+        NSView *tbv = [tb performSelector:@selector(_toolbarView)];
+        if (tbv)
+        {
+            NSSize s = [pImage size];
+            NSSize s1 = [tbv frame].size;
+            NSImageView *iv = [[NSImageView alloc] initWithFrame:NSMakeRect(s1.width - s.width, s1.height - s.height - 1, s.width, s.height)];
+            [iv setImage:pImage];
+            [iv setAutoresizesSubviews:true];
+            [iv setAutoresizingMask:NSViewMinXMargin | NSViewMaxYMargin];
+            [tbv addSubview:iv positioned:NSWindowBelow relativeTo:nil];
+        }
+    }
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp	(revision 35415)
@@ -65,4 +65,9 @@
     if (parent)
         ::darwinSetShowsToolbarButtonImpl(::darwinToNativeWindow(parent), fEnabled);
+}
+
+void darwinLabelToolbar(QWidget *pWidget, QPixmap *pPixmap)
+{
+    ::darwinLabelToolbar(::darwinToNativeWindow(pWidget), ::darwinToNSImageRef(pPixmap));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h	(revision 35415)
@@ -59,4 +59,5 @@
 void darwinSetShowsResizeIndicatorImpl(NativeNSWindowRef pWindow, bool fEnabled);
 void darwinSetHidesAllTitleButtonsImpl(NativeNSWindowRef pWindow);
+void darwinLabelToolbar(NativeNSWindowRef pWindow, NativeNSImageRef pImage);
 void darwinSetShowsWindowTransparentImpl(NativeNSWindowRef pWindow, bool fEnabled);
 void darwinSetMouseCoalescingEnabled(bool fEnabled);
@@ -174,4 +175,5 @@
  ********************************************************************************/
 void darwinSetShowsToolbarButton(QToolBar *aToolBar, bool fEnabled);
+void darwinLabelToolbar(QWidget *pWidget, QPixmap *pPixmap);
 void darwinSetShowsResizeIndicator(QWidget *pWidget, bool fEnabled);
 void darwinSetHidesAllTitleButtons(QWidget *pWidget);
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp	(revision 35415)
@@ -1358,5 +1358,9 @@
         pToolBar->addWidget(m_pHeaderBtn);
         QWidget *pSpace = new QWidget(this);
-        pSpace->setFixedSize(10, 1);
+        /* We need a little bit more space for the beta label. */
+        if (vboxGlobal().isBeta())
+            pSpace->setFixedSize(28, 1);
+        else
+            pSpace->setFixedSize(10, 1);
         pToolBar->addWidget(pSpace);
         pToolBar->updateLayout();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp	(revision 35415)
@@ -49,4 +49,5 @@
 # include "VBoxUtils.h"
 # include "UIWindowMenuManager.h"
+# include "UIImageTools.h"
 #endif
 
@@ -221,5 +222,5 @@
     pLeftVLayout->setSpacing(0);
 # ifdef BIG_TOOLBAR
-    m_pBar = new UIBar(this);
+    m_pBar = new UIMainBar(this);
     m_pBar->setContentWidget(mVMToolBar);
     pLeftVLayout->addWidget(m_pBar);
@@ -488,4 +489,10 @@
 #ifdef Q_WS_MAC
     UIWindowMenuManager::instance()->addWindow(this);
+    /* Beta label? */
+    if (vboxGlobal().isBeta())
+    {
+        QPixmap betaLabel = ::betaLabel();
+        ::darwinLabelToolbar(this, &betaLabel);
+    }
 #endif /* Q_WS_MAC */
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h	(revision 35415)
@@ -36,5 +36,5 @@
 /* Local forward declarations */
 class QISplitter;
-class UIBar;
+class UIMainBar;
 class UIVMDesktop;
 class UIVMItem;
@@ -149,5 +149,5 @@
     /* Main toolbar */
 #ifndef Q_WS_MAC
-    UIBar *m_pBar;
+    UIMainBar *m_pBar;
 #endif /* !Q_WS_MAC */
     UIToolBar *mVMToolBar;
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp	(revision 35415)
@@ -20,4 +20,6 @@
 /* Local includes */
 #include "UIBar.h"
+#include "UIImageTools.h"
+#include "VBoxGlobal.h"
 
 /* Global includes */
@@ -25,4 +27,5 @@
 #include <QPainter>
 #include <QVBoxLayout>
+#include <QPixmapCache>
 
 UIBar::UIBar(QWidget *pParent /* = 0 */)
@@ -107,2 +110,31 @@
 #endif /* !Q_WS_MAC */
 
+UIMainBar::UIMainBar(QWidget *pParent /* = 0 */)
+  : UIBar(pParent)
+  , m_fShowBetaLabel(false)
+{
+    /* Check for beta versions */
+    if (vboxGlobal().isBeta())
+        m_fShowBetaLabel = true;
+}
+
+void UIMainBar::paintEvent(QPaintEvent *pEvent)
+{
+    UIBar::paintEvent(pEvent);
+    QPainter painter(this);
+    painter.setClipRect(pEvent->rect());
+
+    if (m_fShowBetaLabel)
+    {
+        QPixmap betaLabel;
+        const QString key("vbox:betaLabel");
+        if (!QPixmapCache::find(key, &betaLabel))
+        {
+            betaLabel = ::betaLabel();
+            QPixmapCache::insert(key, betaLabel);
+        }
+        QSize s = size();
+        painter.drawPixmap(s.width() - betaLabel.width(), s.height() - betaLabel.height() - 1, betaLabel);
+    }
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.h	(revision 35414)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.h	(revision 35415)
@@ -51,4 +51,22 @@
 };
 
+class UIMainBar: public UIBar
+{
+    Q_OBJECT;
+
+public:
+
+    UIMainBar(QWidget *pParent = 0);
+
+protected:
+
+    void paintEvent(QPaintEvent *pEvent);
+
+private:
+
+    /* Private member vars */
+    bool m_fShowBetaLabel;
+};
+
 #endif /* !__UIBar_h__ */
 
