diff --git a/src/FloatingWidgetTitleBar.cpp b/src/FloatingWidgetTitleBar.cpp
new file mode 100644
index 0000000..43551bd
--- /dev/null
+++ b/src/FloatingWidgetTitleBar.cpp
@@ -0,0 +1,187 @@
+/*******************************************************************************
+** Qt Advanced Docking System
+** Copyright (C) 2017 Uwe Kindler
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License as published by the Free Software Foundation; either
+** version 2.1 of the License, or (at your option) any later version.
+**
+** This library is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** Lesser General Public License for more details.
+**
+** You should have received a copy of the GNU Lesser General Public
+** License along with this library; If not, see .
+******************************************************************************/
+
+
+//============================================================================
+/// \file FloatingWidgetTitleBar.cpp
+/// \author Uwe Kindler
+/// \date 13.05.2019
+/// \brief Implementation of CFloatingWidgetTitleBar class
+//============================================================================
+
+//============================================================================
+// INCLUDES
+//============================================================================
+#include "FloatingWidgetTitleBar.h"
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "ads_globals.h"
+#include "ElidingLabel.h"
+#include "FloatingDockContainer.h"
+
+namespace ads
+{
+
+using tTabLabel = CElidingLabel;
+using tCloseButton = QPushButton;
+
+
+/**
+ * @brief Private data class of public interface CFloatingWidgetTitleBar
+ */
+struct FloatingWidgetTitleBarPrivate
+{
+ CFloatingWidgetTitleBar* _this; ///< public interface class
+ QLabel* IconLabel = nullptr;
+ tTabLabel* TitleLabel;
+ tCloseButton* CloseButton = nullptr;
+ CFloatingDockContainer* FloatingWidget = nullptr;
+ eDragState DragState = DraggingInactive;
+
+ FloatingWidgetTitleBarPrivate(CFloatingWidgetTitleBar* _public) : _this(_public) {}
+
+ /**
+ * Creates the complete layout including all controls
+ */
+ void createLayout();
+};
+
+
+//============================================================================
+void FloatingWidgetTitleBarPrivate::createLayout()
+{
+ TitleLabel = new tTabLabel();
+ TitleLabel->setElideMode(Qt::ElideRight);
+ TitleLabel->setText("DockWidget->windowTitle()");
+ TitleLabel->setObjectName("floatingTitleLabel");
+ TitleLabel->setAlignment(Qt::AlignLeft);
+
+ CloseButton = new tCloseButton();
+ CloseButton->setObjectName("floatingTitleCloseButton");
+ CloseButton->setFlat(true);
+ //CloseButton->setAutoRaise(true);
+ // The standard icons do does not look good on high DPI screens
+ QIcon CloseIcon;
+ QPixmap normalPixmap = _this->style()->standardPixmap(QStyle::SP_TitleBarCloseButton, 0, CloseButton);
+ CloseIcon.addPixmap(normalPixmap, QIcon::Normal);
+ CloseIcon.addPixmap(internal::createTransparentPixmap(normalPixmap, 0.25), QIcon::Disabled);
+ CloseButton->setIcon(_this->style()->standardIcon(QStyle::SP_TitleBarCloseButton));
+ CloseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ CloseButton->setVisible(true);
+ CloseButton->setFocusPolicy(Qt::NoFocus);
+ _this->connect(CloseButton, SIGNAL(clicked()), SIGNAL(closeRequested()));
+
+ QFontMetrics fm(TitleLabel->font());
+ int Spacing = qRound(fm.height() / 4.0);
+
+ // Fill the layout
+ QBoxLayout* Layout = new QBoxLayout(QBoxLayout::LeftToRight);
+ Layout->setContentsMargins(6,0,0,0);
+ Layout->setSpacing(0);
+ _this->setLayout(Layout);
+ Layout->addWidget(TitleLabel, 1);
+ Layout->addSpacing(Spacing);
+ Layout->addWidget(CloseButton);
+ Layout->setAlignment(Qt::AlignCenter);
+
+ TitleLabel->setVisible(true);
+}
+
+
+//============================================================================
+CFloatingWidgetTitleBar::CFloatingWidgetTitleBar(CFloatingDockContainer *parent)
+ : QWidget(parent),
+ d(new FloatingWidgetTitleBarPrivate(this))
+{
+ d->FloatingWidget = parent;
+ d->createLayout();
+}
+
+
+//============================================================================
+CFloatingWidgetTitleBar::~CFloatingWidgetTitleBar()
+{
+ delete d;
+}
+
+
+//============================================================================
+void CFloatingWidgetTitleBar::mousePressEvent(QMouseEvent* ev)
+{
+ if (ev->button() == Qt::LeftButton)
+ {
+ d->DragState = DraggingFloatingWidget;
+ d->FloatingWidget->startDragging(ev->pos(), d->FloatingWidget->size(), this);
+ return;
+ }
+ Super::mousePressEvent(ev);
+}
+
+
+//============================================================================
+void CFloatingWidgetTitleBar::mouseReleaseEvent(QMouseEvent* ev)
+{
+ d->DragState = DraggingInactive;
+ Super::mouseReleaseEvent(ev);
+}
+
+
+//============================================================================
+void CFloatingWidgetTitleBar::mouseMoveEvent(QMouseEvent* ev)
+{
+ if (!(ev->buttons() & Qt::LeftButton) || DraggingInactive == d->DragState)
+ {
+ d->DragState = DraggingInactive;
+ Super::mouseMoveEvent(ev);
+ return;
+ }
+
+ // move floating window
+ if (DraggingFloatingWidget == d->DragState)
+ {
+ d->FloatingWidget->moveFloating();
+ Super::mouseMoveEvent(ev);
+ return;
+ }
+ Super::mouseMoveEvent(ev);
+}
+
+
+//============================================================================
+void CFloatingWidgetTitleBar::enableCloseButton(bool Enable)
+{
+ d->CloseButton->setEnabled(Enable);
+}
+
+
+//============================================================================
+void CFloatingWidgetTitleBar::setTitle(const QString& Text)
+{
+ d->TitleLabel->setText(Text);
+}
+
+
+} // namespace ads
diff --git a/src/stylesheets/default_linux.css b/src/stylesheets/default_linux.css
new file mode 100644
index 0000000..696ef3e
--- /dev/null
+++ b/src/stylesheets/default_linux.css
@@ -0,0 +1,96 @@
+
+/*
+ * Default style sheet on Windows Platforms
+ * Note: Always use CSS-classes with and without "ads--" namespace to support Qt4 & Qt5
+ */
+
+ads--CDockContainerWidget
+{
+ background: palette(dark);
+}
+
+ads--CDockContainerWidget QSplitter::handle
+{
+ background: palette(dark);
+}
+
+ads--CDockAreaWidget
+{
+ background: palette(window);
+ border: 1px solid white;
+}
+
+ads--CDockAreaWidget #tabsMenuButton::menu-indicator
+{
+ image: none;
+}
+
+
+ads--CDockWidgetTab
+{
+ background: palette(window);
+ border-color: palette(light);
+ border-style: solid;
+ border-width: 0 1px 0 0;
+ padding: 0 0px;
+}
+
+ads--CDockWidgetTab[activeTab="true"]
+{
+ background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.5, stop:0 palette(window), stop:1 palette(light));
+ /*background: palette(highlight);*/
+}
+
+ads--CDockWidgetTab QLabel
+{
+ color: palette(dark);
+}
+
+ads--CDockWidgetTab[activeTab="true"] QLabel
+{
+ color: palette(foreground);
+}
+
+ads--CDockWidget
+{
+ background: palette(light);
+ border-color: palette(light);
+ border-style: solid;
+ border-width: 1px 0 0 0;
+}
+
+#tabsMenuButton,
+#closeButton,
+#undockButton
+{
+ padding: 0px -2px;
+}
+
+
+QScrollArea#dockWidgetScrollArea
+{
+ padding: 0px;
+ border: none;
+}
+
+
+#tabCloseButton
+{
+ margin-top: 2px;
+ background: none;
+ border: none;
+ padding: 0px -2px;
+}
+
+#tabCloseButton:hover
+{
+ border: 1px solid rgba(0, 0, 0, 32);
+ background: rgba(0, 0, 0, 16);
+}
+
+#tabCloseButton:pressed
+{
+ background: rgba(0, 0, 0, 32);
+}
+
+