diff --git a/examples/Gallery.qml b/examples/Gallery.qml
index 7d8b67bd462ff1cbf6df9d8fd618ad5ad2b34e92..b332e280dd3ef8e7e531a332c1fc525bfbee8552 100644
--- a/examples/Gallery.qml
+++ b/examples/Gallery.qml
@@ -208,7 +208,6 @@ ApplicationWindow {
             Controls { id: controlPage }
         }
         Tab {
-            id:mytab
             title: "Itemviews"
             ModelView { }
         }
diff --git a/examples/content/Styles.qml b/examples/content/Styles.qml
index d322bafb4dba82ade13f3b4815287c277be4dc74..3f3ea1fec327f1e20784f1e5245ed7756bea83ab 100644
--- a/examples/content/Styles.qml
+++ b/examples/content/Styles.qml
@@ -43,6 +43,7 @@ import QtDesktop 1.0
 import QtDesktop.Styles 1.0
 
 Item {
+    id: root
     width: 300
     height: 200
 
@@ -138,11 +139,13 @@ Item {
 
         Row {
             TabFrame {
-                width: 300
-                height: 60
-                Tab { title: "One" }
-                Tab { title: "Two" }
-                frame: false
+                width: 400
+                height: 30
+                Tab { title: "One" ; Item {}}
+                Tab { title: "Two" ; Item {}}
+                Tab { title: "Three" ; Item {}}
+                Tab { title: "Four" ; Item {}}
+                style: tabFrameStyle
             }
         }
     }
@@ -216,5 +219,38 @@ Item {
             radius: height/2
         }
     }
+    property Component tabFrameStyle: TabFrameStyle {
+        tabOverlap: 16
+        leftMargin: 12
+
+        frame: Item {
+            Rectangle {
+                gradient: Gradient{
+                    GradientStop { color: "#e5e5e5" ; position: 0 }
+                    GradientStop { color: "#e0e0e0" ; position: 1 }
+                }
+                anchors.fill: parent
+                anchors.topMargin: -4
+                border.color: "#898989"
+                 Rectangle { anchors.fill: parent ; anchors.margins: 1 ; border.color: "white" ; color: "transparent" }
+            }
+        }
+        tab: Item {
+            implicitWidth: image.sourceSize.width
+            implicitHeight: image.sourceSize.height
+            BorderImage {
+                id: image
+                anchors.fill: parent
+                source: tab.selected ? "../images/tab_selected.png" : "../images/tab.png"
+                border.left: 50
+                smooth: false
+                border.right: 50
+            }
+            Text {
+                text: tab.title
+                anchors.centerIn: parent
+            }
+        }
+    }
 }
 
diff --git a/examples/images/tab.png b/examples/images/tab.png
new file mode 100644
index 0000000000000000000000000000000000000000..74fefab78a719e4883756d2bcc1b968835dd4fa0
Binary files /dev/null and b/examples/images/tab.png differ
diff --git a/examples/images/tab_selected.png b/examples/images/tab_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..665400ccfd2da9264fa4cf0e653e2573a8f7daf7
Binary files /dev/null and b/examples/images/tab_selected.png differ
diff --git a/src/qtdesktop/TabFrame.qml b/src/qtdesktop/TabFrame.qml
index 7c8e7570692a12be92a00924215ad97ee615ca04..675e5bfcfa8e5efbe4c935916fefe659c19ee79f 100644
--- a/src/qtdesktop/TabFrame.qml
+++ b/src/qtdesktop/TabFrame.qml
@@ -40,26 +40,29 @@
 
 import QtQuick 2.0
 import QtDesktop 1.0
+import "private"
 import "Styles/Settings.js" as Settings
 
 /*!
     \qmltype TabFrame
     \inqmlmodule QtDesktop 1.0
-    \brief TabFrame is doing bla...bla...
+    \brief Represents a control that contains multiple items that share the same space on the screen.
+
 */
 
 Item {
     id: tabWidget
     width: 100
     height: 100
+
     property int current: 0
     property int count: stack.children.length
     property bool frame: true
     property bool tabsVisible: true
     property string position: "North"
     default property alias tabs : stack.children
-    property Item tabBar: tabbarItem
-    property Component delegate: Qt.createComponent(Settings.THEME_PATH + "/TabFrameStyle.qml")
+    property Component style: Qt.createComponent(Settings.THEME_PATH + "/TabFrameStyle.qml")
+    property var __styleItem: loader.item
 
     onCurrentChanged: __setOpacities()
     Component.onCompleted: __setOpacities()
@@ -93,10 +96,19 @@ Item {
 
     Loader {
         id: loader
+        sourceComponent: style
+        property var control: tabWidget
+    }
+
+    Loader {
+        id: frameLoader
+
         anchors.fill: parent
         anchors.topMargin: tabbarItem && tabsVisible && position == "North" ? Math.max(0, tabbarItem.height - stack.baseOverlap) : 0
         anchors.bottomMargin: tabbarItem && tabsVisible && position == "South" ? Math.max(0, tabbarItem.height - stack.baseOverlap) : 0
-        sourceComponent: frame ? delegate : null
+        sourceComponent: frame && loader.item ? loader.item.frame : null
+        property var control: tabWidget
+
         Item {
             id: stack
             anchors.fill: parent
@@ -107,12 +119,13 @@ Item {
             property string style
             property int baseOverlap
         }
-        onLoaded: item.z = -1
+        onLoaded: { item.z = -1 }
     }
 
     TabBar {
         id: tabbarItem
         tabFrame: tabWidget
+        style: loader.item
         anchors.top: parent.top
         anchors.left: tabWidget.left
         anchors.right: tabWidget.right
diff --git a/src/qtdesktop/TabBar.qml b/src/qtdesktop/private/TabBar.qml
similarity index 73%
rename from src/qtdesktop/TabBar.qml
rename to src/qtdesktop/private/TabBar.qml
index 0c92050b90a95b622e5c92e64c085417e944c410..adde6c73a238c59b2c6a1259bea5d102f685165a 100644
--- a/src/qtdesktop/TabBar.qml
+++ b/src/qtdesktop/private/TabBar.qml
@@ -40,18 +40,12 @@
 
 import QtQuick 2.0
 import QtDesktop 1.0
-import "Styles/Settings.js" as Settings
-
-/*!
-    \qmltype TabBar
-    \inqmlmodule QtDesktop 1.0
-    \brief TabBar is doing bla...bla...
-*/
 
 Item {
     id: tabbar
-    property int tabHeight: tabrow.height
-    property int tabWidth: tabrow.width
+    height: tabrow.height
+    width: tabrow.width
+
 
     Keys.onRightPressed: {
         if (tabFrame && tabFrame.current < tabFrame.count - 1)
@@ -62,20 +56,19 @@ Item {
             tabFrame.current = tabFrame.current - 1
     }
 
-    height: tabHeight
+    onTabFrameChanged: parent = tabFrame
+    visible: tabFrame ? tabFrame.tabsVisible : true
 
 
     property Item tabFrame
-    onTabFrameChanged: parent = tabFrame
-    visible: tabFrame ? tabFrame.tabsVisible : true
+    property var style
+    property var styleItem: tabFrame.__styleItem ? tabFrame.__styleItem : null
 
-    property int __overlap :  loader.item ? loader.item.__overlap : 0
+    property string tabBarAlignment: styleItem ? styleItem.tabBarAlignment : "center"
     property string position: tabFrame ? tabFrame.position : "North"
-    property string tabBarAlignment: loader.item ? loader.item.tabBarAlignment : "Center"
-    property int tabOverlap: loader.item ? loader.item.tabOverlap : 0
-    property int tabBaseOverlap: loader.item ? loader.item.tabBaseOverlap : 0
-    property int tabHSpace: loader.item ? loader.item.tabHSpace : 0
-    property int tabVSpace: loader.item ? loader.item.tabVSpace : 0
+
+    property int tabOverlap: styleItem ? styleItem.tabOverlap : 0
+    property int tabBaseOverlap: styleItem ? styleItem.tabBaseOverlap : 0
 
     function tab(index) {
         for (var i = 0; i < tabrow.children.length; ++i) {
@@ -86,33 +79,37 @@ Item {
         return null;
     }
 
-    property Component style: Qt.createComponent(Settings.THEME_PATH + "/TabBarStyle.qml")
-
-    Loader {
-        id: loader
-        sourceComponent: style
-        property alias control: tabbar
-    }
-
     Row {
         id: tabrow
         Accessible.role: Accessible.PageTabList
-        states:
+        spacing: -tabOverlap
+
+        states: [
+            State {
+                name: "center"
+                AnchorChanges { target:tabrow ; anchors.horizontalCenter: tabbar.horizontalCenter }
+            },
             State {
-            when: tabBarAlignment == "center"
-            name: "centered"
-            AnchorChanges {
-                target:tabrow
-                anchors.horizontalCenter: tabbar.horizontalCenter
+                name: "left"
+                when: tabBarAlignment == "left"
+                AnchorChanges { target:tabrow ; anchors.left: parent.left }
+                PropertyChanges { target:tabrow ; anchors.leftMargin: styleItem ? styleItem.leftMargin : 0 }
+            },
+            State {
+                name: "right"
+                when: tabBarAlignment == "right"
+                AnchorChanges { target:tabrow ; anchors.right: parent.right }
+                PropertyChanges { target:tabrow ; anchors.rightMargin: styleItem ? styleItem.rightMargin : 0 }
             }
-        }
+        ]
+
 
         Repeater {
             id: repeater
             focus: true
             model: tabFrame ? tabFrame.tabs.length : null
             delegate: Item {
-                id: tab
+                id: tabitem
                 focus: true
 
                 property int tabindex: index
@@ -120,20 +117,24 @@ Item {
                 property bool selected : tabFrame.current == index
                 property bool hover: mousearea.containsMouse
                 property bool first: index === 0
+                property string title: tabFrame.tabs[index].title
 
-                z: selected ? 1 : -1
+                z: selected ? 1 : -index
                 implicitWidth: Math.min(tabloader.implicitWidth, tabbar.width/tabs.length) + 1
                 implicitHeight: tabloader.implicitHeight
 
                 Loader {
                     id: tabloader
+
                     sourceComponent: loader.item ? loader.item.tab : null
                     anchors.fill: parent
 
-                    property alias control: tab
+                    property Item control: tabFrame
+                    property Item tab: tabitem
                     property int index: tabindex
                     property bool nextSelected: tabFrame.current === index + 1
                     property bool previousSelected: tabFrame.current === index - 1
+                    property string title: tab.title
                 }
 
                 MouseArea {
@@ -141,6 +142,7 @@ Item {
                     anchors.fill: parent
                     hoverEnabled: true
                     onPressed: tabFrame.current = index
+                    onPressAndHold: tabitem.parent = null
                 }
                 Accessible.role: Accessible.PageTab
                 Accessible.name: tabFrame.tabs[index].title
diff --git a/src/qtdesktop/qmldir b/src/qtdesktop/qmldir
index 19df0c8268e188e973b4b2b6839bf76198bf1b31..dca36d6aba1dc8dba886d29b687e93db6e72f3a3 100644
--- a/src/qtdesktop/qmldir
+++ b/src/qtdesktop/qmldir
@@ -26,7 +26,6 @@ SplitterRow 1.0 SplitterRow.qml
 SplitterColumn 1.0 SplitterColumn.qml
 StatusBar 1.0 StatusBar.qml
 Tab 1.0 Tab.qml
-TabBar 1.0 TabBar.qml
 TabFrame 1.0 TabFrame.qml
 TableView 1.0 TableView.qml
 TableColumn 1.0 TableColumn.qml
diff --git a/src/qtdesktop/qtdesktop.pro b/src/qtdesktop/qtdesktop.pro
index 8395ec1ecd2e58296b1343e13d6370ea37c87d62..3c85616d63813e7dde03fd17b911a990243b5ccf 100644
--- a/src/qtdesktop/qtdesktop.pro
+++ b/src/qtdesktop/qtdesktop.pro
@@ -33,7 +33,6 @@ QML_FILES = \
     SplitterRow.qml \
     StatusBar.qml \
     Tab.qml \
-    TabBar.qml \
     TabFrame.qml \
     TableColumn.qml \
     TableView.qml \
@@ -44,6 +43,7 @@ QML_FILES = \
 
 # private qml files
 QML_FILES += \
+    private/TabBar.qml \
     private/BasicButton.qml \
     private/ButtonBehavior.qml \
     private/ButtonGroup.js \
diff --git a/src/styles/Desktop/TabBarStyle.qml b/src/styles/Desktop/TabBarStyle.qml
deleted file mode 100644
index 4dedbfc6330edcdd1e533a46c97f15d631f77f28..0000000000000000000000000000000000000000
--- a/src/styles/Desktop/TabBarStyle.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Components project.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-**     of its contributors may be used to endorse or promote products derived
-**     from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-import QtDesktop 1.0
-
-Item {
-    property int __overlap : styleitem.pixelMetric("tabvshift");
-    property string position: tabFrame ? tabFrame.position : "North"
-    property string tabBarAlignment: styleitem.styleHint("tabbaralignment");
-    property int tabOverlap: styleitem.pixelMetric("taboverlap");
-    property int tabBaseOverlap: styleitem.pixelMetric("tabbaseoverlap");
-    property int tabHSpace: styleitem.pixelMetric("tabhspace");
-    property int tabVSpace: styleitem.pixelMetric("tabvspace");
-
-    StyleItem { id: styleitem }
-
-    property Component tab: StyleItem {
-        id: styleitem
-        elementType: "tab"
-        anchors.fill: parent
-
-        implicitWidth: Math.max(50, textitem.width) + styleitem.pixelMetric("tabhspace") + 2
-        implicitHeight: Math.max(styleitem.font.pixelSize + styleitem.pixelMetric("tabvspace") + 6, 0)
-
-        property string tabpos: tabFrame.count === 1 ? "only" : index === 0 ? "beginning" : index === tabFrame.count - 1 ? "end" : "middle"
-        property string selectedpos: nextSelected ? "next" : previousSelected ? "previous" : ""
-
-        hint: [tabFrame.position, tabpos, selectedpos]
-        anchors.leftMargin: (selected && style == "mac") ? -1 : 0
-
-        selected: control.selected
-        info: tabbar.position
-        text:  tabFrame.tabs[index].title
-        hover: control.hover
-        hasFocus: tabbar.focus && selected
-        anchors.margins: paintMargins
-
-        Text {
-            id: textitem
-            visible: false
-            text: styleitem.text
-        }
-    }
-}
diff --git a/src/styles/Desktop/TabFrameStyle.qml b/src/styles/Desktop/TabFrameStyle.qml
index e46fa6df9f4ed9b1d172d1d80b76c7c8d0d854a3..e681d0cb27dc6dd5555a9b61b3b865b33f0adf32 100644
--- a/src/styles/Desktop/TabFrameStyle.qml
+++ b/src/styles/Desktop/TabFrameStyle.qml
@@ -40,14 +40,26 @@
 import QtQuick 2.0
 import QtDesktop 1.0
 
-Item {
+QtObject {
+    id: root
+
+    property int leftMargin: 0
+    property int rightMargin: 0
+
+    property string tabBarAlignment: __barstyle.styleHint("tabbaralignment");
+
+    property var __framestyle: StyleItem { elementType: "tabframe" ; visible: false }
+    property var __barstyle: StyleItem { elementType: "tabbar" ; visible: false }
+
     property rect contentRect
-    property int margins: frame ? stack.frameWidth : 0
-    property int __baseOverlap: frameitem.pixelMetric("tabbaseoverlap") // add paintmargins;
-    contentRect: Qt.rect(margins, margins, 8 + margins + (frameitem.style == "mac" ? 6 : 0), margins + (frameitem.style =="mac" ? 6 : 0))
+    property int margins: control.frame ? stack.frameWidth : 0
+    property int tabOverlap: __barstyle.pixelMetric("taboverlap");
+    property int tabBaseOverlap: __barstyle.pixelMetric("tabbaseoverlap");
+    property int tabHSpace: __barstyle.pixelMetric("tabhspace");
+    property int tabVSpace: __barstyle.pixelMetric("tabvspace");
 
-    StyleItem {
-        id: frameitem
+    property Component frame: StyleItem {
+        id: styleitem
         anchors.fill: parent
         anchors.topMargin: 1//stack.baseOverlap
         z: style == "oxygen" ? 1 : 0
@@ -55,22 +67,42 @@ Item {
         info: position
         value: tabbarItem && tabsVisible && tabbarItem.tab(current) ? tabbarItem.tab(current).x : 0
         minimum: tabbarItem && tabsVisible && tabbarItem.tab(current) ? tabbarItem.tab(current).width : 0
-        maximum: tabbarItem && tabsVisible ? tabbarItem.tabWidth : width
+        maximum: tabbarItem && tabsVisible ? tabbarItem.width : width
         Component.onCompleted: {
-            stack.frameWidth = pixelMetric("defaultframewidth")
-            stack.style = style
-            stack.baseOverlap = pixelMetric("tabbaseoverlap")// add paintmargins;
+            stack.frameWidth = styleitem.pixelMetric("defaultframewidth");
+            stack.style = style;
+            stack.baseOverlap = root.tabBaseOverlap;
         }
-        states: [
-            State {
-                name: "South"
-                when: position == "South" && tabbarItem!= undefined
-                PropertyChanges {
-                    target: frameitem
-                    anchors.topMargin: 0
-                    anchors.bottomMargin: 1//stack.baseOverlap
-                }
+    }
+
+    property Component tab: Item {
+        property string tabpos: control.count === 1 ? "only" : index === 0 ? "beginning" : index === control.count - 1 ? "end" : "middle"
+        property string selectedpos: nextSelected ? "next" : previousSelected ? "previous" : ""
+        implicitWidth: Math.max(50, textitem.width) + tabHSpace + 2
+        implicitHeight: Math.max(styleitem.font.pixelSize + tabVSpace + 6, 0)
+
+        StyleItem {
+            id: styleitem
+
+            elementType: "tab"
+
+            anchors.fill: parent
+            anchors.leftMargin: (selected && style == "mac") ? -1 : 0
+
+            hint: [control.position, tabpos, selectedpos]
+
+            selected: tab.selected
+            info: control.position
+            text:  title
+            hover: tab.hover
+            hasFocus: tab.focus && selected
+            anchors.margins: paintMargins
+
+            Text {
+                id: textitem
+                visible: false
+                text: styleitem.text
             }
-        ]
+        }
     }
 }
diff --git a/src/styles/TabBarStyle.qml b/src/styles/TabBarStyle.qml
deleted file mode 100644
index 644a2730b69dffa068f50a4d73c0377a691ae792..0000000000000000000000000000000000000000
--- a/src/styles/TabBarStyle.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Components project.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-**     of its contributors may be used to endorse or promote products derived
-**     from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-import QtDesktop 1.0
-
-/*!
-    \qmltype TabBarStyle
-    \inqmlmodule QtDesktop.Styles 1.0
-    \brief TabBarStyle is doing bla...bla...
-*/
-
-Item {
-    width: textitem.implicitWidth + 20
-    height: textitem.implicitHeight + 4
-
-    property Component background: Rectangle {
-        anchors.fill: parent
-        gradient: Gradient{
-            GradientStop{color: control.selected ? "lightgray" : "white" ; position: 0}
-            GradientStop{color: control.selected ? "lightgray" : "lightgray" ; position: 1}
-        }
-        border.color: "#aaa"
-
-    }
-
-    Loader {
-        id: backgorundLoader
-        sourceComponent: background
-        anchors.fill: parent
-    }
-
-    Text {
-        id: textitem
-        anchors.centerIn: parent
-        // Used for size hint
-        text: tabFrame.tabs[index].title
-        renderType: Text.NativeRendering
-    }
-}
diff --git a/src/styles/TabFrameStyle.qml b/src/styles/TabFrameStyle.qml
index 84d55f1a0de0076c889aa829921cfdce813d0b89..d205736570a3ddae9744c0e4ea0b5c5f24796f65 100644
--- a/src/styles/TabFrameStyle.qml
+++ b/src/styles/TabFrameStyle.qml
@@ -45,13 +45,61 @@ import QtQuick 2.0
     \brief TabFrameStyle is doing bla...bla...
 */
 
-Item {
-    property rect contentRect
-
-    Rectangle {
-        anchors.fill: parent
-        anchors.topMargin: -10
-        color: "lightgray"
-        border.color: "gray"
+QtObject {
+
+    /*! This property holds the base alignment of the tab bar.
+      The default value is "left". Supporeted alignments are
+      "left", "center" or "right".
+    */
+    property string tabBarAlignment: "left"
+
+    /*! This property holds the left margin of the tab bar.
+      It will only affect tabs \l tabBarAligment set to "right".
+    */
+    property int leftMargin: 0
+
+    /*! This property holds the right margin of the tab bar.
+      It will only affect tabs \l tabBarAligment set to "right".
+    */
+    property int rightMargin: 0
+
+    /*! This property holds the amount of overlap there are between
+      individual tab buttons. The default value is 0
+    */
+    property int tabOverlap: 0
+
+    property int tabvshift : 0
+    property int tabBaseOverlap: 0
+
+    property Component frame: Item {
+        Rectangle {
+            anchors.fill: parent
+            anchors.topMargin: -10
+            color: "lightgray"
+            border.color: "gray"
+        }
     }
+
+    property Component tab: Item {
+        implicitWidth: textitem.implicitWidth + 20
+        implicitHeight: textitem.implicitHeight + 4
+
+        Rectangle {
+            anchors.fill: parent
+            gradient: Gradient{
+                GradientStop { color: tab.selected ? "lightgray" : "white" ; position: 0}
+                GradientStop { color: tab.selected ? "lightgray" : "lightgray" ; position: 1}
+            }
+            border.color: "#aaa"
+
+        }
+
+        Text {
+            id: textitem
+            anchors.centerIn: parent
+            text: tab.title
+            renderType: Text.NativeRendering
+        }
+    }
+
 }
diff --git a/src/styles/styles.pro b/src/styles/styles.pro
index b00372d7eac6b56abc477917793a969231619231..fa4105578df66bb34d78257bd9d5d9415a0ec03f 100644
--- a/src/styles/styles.pro
+++ b/src/styles/styles.pro
@@ -13,7 +13,6 @@ QML_FILES = \
     Settings.js \
     SliderStyle.qml \
     SpinBoxStyle.qml \
-    TabBarStyle.qml \
     TabFrameStyle.qml \
     TextFieldStyle.qml \
     ToolBarStyle.qml \
@@ -32,7 +31,6 @@ QML_FILES += \
     Desktop/ScrollBarStyle.qml \
     Desktop/SliderStyle.qml \
     Desktop/SpinBoxStyle.qml \
-    Desktop/TabBarStyle.qml \
     Desktop/TabFrameStyle.qml \
     Desktop/TextFieldStyle.qml \
     Desktop/ToolBarStyle.qml \